$object>$attribute属性和$object>属性有什么区别?



有一个迭代属性的foreach循环。如果对象具有next属性,则代码将为该属性分配一个值:

foreach ($record as $attribute=>$value) {
    if ($object->has_attribute($attribute)) {
        $object->$attribute = $value;
    }
}

我不明白为什么我们必须用$object->$attribute而不是$object->attribute ?对我来说,后者似乎更符合逻辑,因为它看起来像基本的OOP,但在这种情况下,脚本不起作用。

我只是想知道为什么。

这是一个叫做可变变量的特性:

类属性也可以使用变量属性名访问。变量属性名将在from的作用域内解析电话就打了。例如,如果您有这样一个表达式如$foo->$bar,则检查$bar及其局部作用域value将用作$foo的属性名。这也是如果$bar是数组访问,则为true。

基本上,这是一个动态属性:

$attribute = 'toto'; 
$object->$attribute = 'tata';
echo $object->toto; // will display 'tata'

最新更新