1. ホーム
  2. php

[解決済み] PHP のメンバ変数の中括弧構文

2023-08-24 07:27:51

質問

SO に関する最初の質問で、本当の RTM 候補です。しかし、私は探したが見つからないようであることを約束します。私が見逃している単純なものであることが判明したら、喜んで #headpalm をします。

Zend Frameworkを理解しようとして、次の構文に出くわしました。

$this->_session->{'user_id'}

メンバ変数と思われるものにアクセスするために中括弧の構文が使われているのを見たことがありません。これは

$this->_session->user_id

私は_sessionは関係ないと思っていますが、関係ないかもしれないので、質問に含めています。

中括弧は、複合変数名user_idを包むことを試みる単なるクリーンネス規則ですか?または、それはある種の特別なアクセサーですか?

私が R アップできるように TFM へのどんなポインタでも、謙虚に感謝されます。

ありがとうございます。お手柔らかにお願いします。

どのように解決するのですか?

中括弧は、変数名の末尾を明示的に指定するために使用します。例えば

echo "This square is {$square->width}00 centimeters broad."; 

つまり、あなたのケースは2つの特別なケースの組み合わせです。中括弧を使って、このようにクラス変数にアクセスすることが許されているのです。

$class->{'variable_name'} // Same as $class->variable_name
$class->{'variable' . '_name'} // Dynamic values are also allowed

で、あなたの場合は、中括弧の構文で囲んでいるだけです。

を参照してください。 PHP マニュアル , "複雑な(curly)構文."を参照してください。