我想知道以下{}。 {}在这做什么? $ this-> {$ key} = $ value;
提前致谢。
在一个文件中
$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;
}
}
答案 0 :(得分:1)
在这种情况下,它们是可选的,但它是一种让读者(和解析器)更清楚你所指的变量。
http://www.php.net/manual/en/language.variables.variable.php
为了将变量变量与数组一起使用,您必须解析一个 歧义问题。也就是说,如果你编写$$ a [1],则解析器需要 要知道你是否打算使用$ a [1]作为变量,或者你想要使用$$ a 作为变量,然后是该变量的[1]索引。语法 解决这种歧义的原因是:第一个案例的$ {$ a [1]}和 $ {$ a} [1]为第二个。
此语法有用的另一种情况是在字符串中扩展函数调用时。
这不起作用(或者它会将$someObj
评估为字符串,然后附加->someFunc()
:
$myString = "$someObj->someFunc()";
但这符合您的期望:
$myString = "{$someObj->someFunc()}";
答案 1 :(得分:0)
它正在转义变量表达式,以便可以动态设置成员。
请查看此处的文档:http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex