PHP可変変数名

531 ワード

PHPerとして、このような書き方を見たことがあります.
return $this->{'get'.Str::studly($key).'Attribute'}($value);

怪しくもないが、この「対象->変数名」の書き方の根拠は分からない.理解しなければ記憶しにくく、記憶にはインデックスが必要で、インデックスがなければ忘れやすいが、インデックスとはこのような使い方の名前を指す.
この使い方をはっきりさせるには、まず可変変数名から始めましょう.可変変数の公式ドキュメントの説明を参照してください.公式ドキュメントの解釈を読み終えると、分かりやすくなります.カッコがデリミタであれば、カッコの内容は文字列変数と見なすことができます.すなわち、クラスのメソッドは、呼び出しの範囲内で解析される可変メソッド名によってアクセスすることができる.
結論:この使い方の名前は「可変メソッド名を使用してオブジェクトのメンバーメソッドを呼び出す」と呼ばれ、それに応じて「可変プロパティ名を使用してオブジェクトにアクセスするプロパティ」も当然あります.