オーバーロードに関するPHPの仕様をよく読んだことがありますが、ほとんどの例は、カスタムフィールド(stdClassと同様)の定義を単純に許可することを目的としているようです。
しかし、私のクラスで定義されているプライベートフィールドはどうですか?これらはどのように取得/割り当てられる必要がありますか?可能な値を切り替えて、特定の値に基づいて行動することができます。
class A
{
private $name;
private $age;
public function __get( $var )
{
switch ( $var )
{
case 'name':
return $this->name;
break;
case 'age':
return $this->age+10; // just to do something different ;)
break;
default:
break;
}
}
}
これが最良の方法ですか、それとも一般的に受け入れられている別のベストプラクティスがありますか?(クラス内でクラス変数をループできるかどうかはわかりませんが、すべてを返したくないので、ほとんどの状況では適切ではありません。)