0

次の { } が何なのか気になります。{ } はここで何をしていますか? $this->{$key} = $value;

前もって感謝します。

1つのファイルで

$config['field']['calendar'] = array('type'=>'boolean');
$config['field']['category'] = array('type'=>'boolean');
$config['field']['customers'] = array('type'=>'boolean');  
...
$this->preference_form->initalize($config);

そしてPreference_form.phpで

function initalize($config = array())
{
    foreach($config as $key => $value)
    {
        $this->{$key} = $value;
    }
}
4

2 に答える 2

1

この場合、それらはオプションですが、変数を参照していることをリーダー (およびパーサー) に明確にする方法です。

http://www.php.net/manual/en/language.variables.variable.php

可変変数を配列で使用するには、あいまいさの問題を解決する必要があります。つまり、$$a[1] と記述した場合、パーサーは、$a[1] を変数として使用するつもりだったのか、それとも変数として $$a を使用してから [1] インデックスを使用したかったのかを認識する必要があります。その変数。このあいまいさを解決するための構文は、最初のケースでは ${$a[1]}、2 番目のケースでは ${$a}[1] です。

この構文が役立つもう 1 つのケースは、関数呼び出しを文字列に展開する場合です。

これは機能しません (または$someObj、文字列として評価されてから追加されます->someFunc():

$myString = "$someObj->someFunc()";

しかし、これはあなたが期待することを行います:

$myString = "{$someObj->someFunc()}";
于 2012-11-04T07:09:45.127 に答える
0

メンバーを動的に設定できるように、変数式をエスケープしています。

こちらのドキュメントをご覧ください: http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex

于 2012-11-04T07:08:56.623 に答える