2012-11-04 25 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()}"; 
相关问题