我很难使用$ this在php类中创建一个get函数:
public function getFxRate($currencyInputCode, $currencyOutputCode) {
//Getting the currency
return $this->fxRates[$currencyOutputCode][array_search(1.0, $this->fxRates[$currencyInputCode])];
}
$ fxRates数组在此处指定:
public function __construct() {
$this->ini = parse_ini_file(FXCALC);
$handle = fopen($this->getIniArray()[self::RATESFILE], 'r');
$this->fxCurriences = fgetcsv($handle);
$k = 0;
for ($i = 0; !feof($handle); $i++) {
$tempMultiArray[$i] = fgetcsv($handle);
}
fclose($handle);
foreach ($this->getCurrencies() as $value) {
for ($i = 0; $i < count($this->getCurrencies()); $i++) {
$this->fxRates[$value][$i] = $tempMultiArray[$i][$k];
}
$k++;
}
echo $this->fxRates['CAD'][0];
}
并在此处初始化:
private $fxRates = array();
我不明白为什么$这会显示上面的get函数的错误,但这两个函数运行正常:
public function getIniArray() {
return $this->ini;
}
public function getCurrencies() {
return $this->fxCurriences;
}
以下是我收到的错误:
致命错误:在第65行的C:\ xampp \ htdocs \ PhpMidtermBP \ FxDataModel.php中不在对象上下文中时使用$ this
答案 0 :(得分:1)
$ this指的是你看到你正在静态调用该方法的错误的实例。
您需要实例化该类,然后运行getFxRate方法以使$ this起作用。
例如:
$fx = new MyFxClass();
$fx->getFxRate( $arg1, $arg2 );