PHP成员变量的大括号语法
关于SO的第一个问题,它是一个真正的RTM候选人。 但我向你保证我看起来似乎无法找到它。 如果事实证明我错过了一件简单的事情,我会很乐意做一个#headpalm。
试图找出Zend Framework并遇到以下语法:
$this->_session->{'user_id'}
我从来没有见过花括号语法来访问看起来是一个成员变量。 它和它有什么不同
$this->_session->user_id
我假设_session是无关紧要的,但将它包括在问题中,因为它可能不是。
花括号只是一个试图包装复合变量名称user_id的清洁约定? 或者它是某种特殊的访问者?
任何指向TFM的指针都会被虚心地赞赏。
非常感谢。 请温柔。
大括号用于明确指定变量名称的结尾。 例如:
echo "This square is {$square->width}00 centimeters broad.";
所以,你的情况实际上是两种特殊情况的组合。 您可以使用大括号访问类变量,如下所示:
$class->{'variable_name'} // Same as $class->variable_name
$class->{'variable' . '_name'} // Dynamic values are also allowed
而就你而言,你只是用大括号语法来包围它们。
请参阅PHP手册,“复杂(卷曲)语法”。
我知道使用变量变量时的语法:
$userProp = 'id';
$this->_session->{'user_'.$userProp};
Theres可能是该语法的一大优点,但是,它通常在毛茸茸的东西领域,以及您可能想要避免的事情。
它允许您在变量名称中使用不允许的字符。
即:
$this->object->{"hello world n"}
$this->object->{"function(){ this is a truely awful name for a variable }"}
链接地址: http://www.djcxy.com/p/10191.html
上一篇: PHP curly brace syntax for member variable
下一篇: PHP Comments # vs //