微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过引用分配失败,语法错误

如何解决通过引用分配失败,语法错误

|                                                                                                                       

解决方法

当你做
$var = new stdClass();
$var2 = $var; 
$var2
实际上是对ѭ2a的引用。这是因为PHP通过引用传递类。因此,您实际上并没有制作新副本。因此,您可以将其分配给较短的变量并减少输入。     ,执行以下操作会将相同的对象分配给
$obj1->obj2->obj3
$var
$obj1->obj2->obj3 = new class;
$var = $obj1->obj2->obj3;
    ,从PHP 5开始,对象总是通过引用传递。实际上,在PHP 4中,“ 6”将复制对象,一次是在创建过程中,另一次是在分配给“ 7”的过程中,而现在不再如此。 PHP中的常规变量是在写入时复制的,因此即使
$a = \'fred\'; $b = $a;
也没有使内存使用量翻倍(还) 通常,在使用PHP之前,除非遇到问题,否则最好只让该语言来完成工作,而不是尝试让它陷入困境:)     ,字段初始化应在构造函数或其他类方法中完成。 您可以像平常一样进行初始化(这是一次)
$this->obj2->obj3 = new Class();
之后,您可以在外部代码中执行
$var = $obj1->obj2->obj3;
$var->method;
还请注意,使用嵌套对象会使系统复杂化,因此不建议嵌套太深。     ,为了回答有关语法错误的问题,您收到语法错误的原因是因为您试图将引用分配给不是变量的内容。 这段代码:
$var =& $obj1->obj2->obj3 = new class
得到这样的评估(因为=运算符具有正确的关联性):
$var =& ($obj1->obj2->obj3 = new class)
这不起作用,因为您无法创建对表达式的引用。 至于创建对对象的引用而不是对副本的引用,这取决于您正在运行的PHP版本。在PHP5中,对象总是(有效地)通过引用传递。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。