2012-11-04 73 views
0

我在想以下是什麼{}。這裏{}在做什麼? $ this - > {$ key} = $ value;在PHP中,圍繞成員變量的大括號是什麼意思?

在此先感謝。

在一個文件

$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; 
    } 
} 

回答

1

他們在這種情況下可選的,但它是使它更清楚,你指的是可變的讀者(和解析器)的一種方式。

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

爲了使用可變的變量與數組,必須解決一個 模糊問題。也就是說,如果你寫$$ a [1],那麼解析器需要 來知道你是否打算使用$ a [1]作爲變量,或者如果你想$$ $$ 作爲變量,然後[1]來自該變量的索引。用於解決這種歧義的語法 是:第一種情況下爲$ {$ a [1]},第二種情況下爲 $ {$ a} [1]。

此語法有用的另一種情況是在字符串中擴展函數調用時。

這不工作(或者更確切地說,它會評估$someObj爲一個字符串,然後追加->someFunc()

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

但這你所期望:

$myString = "{$someObj->someFunc()}"; 
相關問題