0
によって:getCalculated()
が計算されたプロパティを表しPHP魔法ゲッター参照することにより、価値
class Foo {
private $_data;
public function __construct(array $data){
$this->_data = $data;
}
public function __get($name){
$getter = 'get'.$name;
if(method_exists($this, $getter)){
return $this->$getter();
}
if(array_key_exists($name,$this->_data)){
return $this->_data[$name];
}
throw new Exception('Property '.get_class($this).'.'.$name.' is not available');
}
public function getCalculated(){
return null;
}
}
。
今、私は次のことをしようとした場合:
$foo = new Foo(['related' => []])
$foo->related[] = 'Bar'; // Indirect modification of overloaded property has no effect
$foo->calculated; // ok
しかし、私は&__get($name)
に__get()
署名を変更する場合、私は得る:
$foo = new Foo(['related' => []])
$foo->related[] = 'Bar'; // ok
$foo->calculated; // Only variables should be passed by reference
私はかなりの参照とゲッターで$data
の要素を返したいのですが私の__get()
に値でこれは可能ですか?エラーメッセージとして
マジック!ありがとう、私はこれを試みたと思った..しかし、明らかに何とかそれを台無しに。 – Arth