PHP 手册的这一页说只有命名变量可以通过引用分配,http://www.php.net/manual/en/language.variables.basics.php 。它给出的示例是 $bar = &$foo;
是有效的赋值,但 $bar = &(24 * 7);
不是。
然而,在有关变量范围的页面中,http://www.php.net/manual/en/language.variables.scope.php ,它给出了 $obj = &new stdclass;
的示例。
怎么会这样呢? new stdclass
不是命名变量!
谢谢...
最佳答案
new
构造在引用方面有点特殊:
$obj = &new stdclass;
实际上不建议再这样做(那是PHP 4代码),你应该这样写:
$obj = new stdclass;
但是为了论证和你的问题,还有 return by referenceshy;Docs它将所述命名变量作为函数的返回值传递:
$obj = &someFunction();
正如您所想,这也适用于其他语言结构。重要的一点是,如果有引用,就必须有一些变量。如果没有变量,您就无法在 PHP 中获得引用。
关于php - 在 PHP 中, 'assign by reference' 如何与这个新的 stdclass 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9452690/