使用すると、コードでこのエラーが発生します$this->
致命的なエラー: 21 行目の /home/u506382626/public_html/s1/arrays.php の空のプロパティにアクセスできません
それが現在のオブジェクト変数にアクセスする方法だと思いますよね?
これは私のコードです。すべてのインデックスに対してより大きな値を持つ配列を作成しようとしていますが、インデックスの代わりに関数 at を使用しています。phpでoperator[]をオーバーロードすることは可能ですか?どのようにしますか?
誰かが何が問題なのか知っていることを願っています。
<?php
class zArray {
public $change = 1.165;
public $lenght;
private $vars = array();
public $name;
public $percent = false;
public function __construct($values) {
for ($i=0; $i < 5; $i++) {
$vars[$i] = $values[$i];
}
$lenght = $values[5];
$name = $values[6];
$percent = $values[7];
}
public function at($i) {
$newchange = $this->$change;
for ( $i-- ; $i; $i-- )
$newChange *= $this->$change;
$newVars = $this->$vars;
for ($i = 0; $i < 4; $i++) {
$newVars[$i] *= $newChange;
}
if ($percent) $newVars[4] /= $newChange;
else $newVars[4] *= $newChange;
return $newVars;
}
};
$buildings = array(
new zArray(85, 70, 65, 2, 100, 'Castle', true)
);
$try = $buildings[0]->at(3);
?>