在整个网络[1] [2] [3]上,它说自从 PHP 5.0.0“通过引用分配 new 的返回值”给出一个E_DEPRECATED
或E_STRICT
取决于您的 php 版本(E_DEPRECATED
直到 5.3 才存在,所以它在E_STRICT
那之前)。
因此,我的理解是这段代码应该给出这样的警告:
error_reporting(E_ALL | E_STRICT);
class A
{
}
$a =& new A();
但是,我已经在两台完全不同的服务器(一台运行 PHP 5.3 和一台运行 PHP 5.2)上尝试过这个,但实际上都没有给出任何消息!这是怎么回事?我的理解是不正确的还是这两台服务器上发生了什么奇怪的事情?
(我也认为这被弃用很奇怪,因为它$a = null; $b =& $a; $b = new A();
与 不一样$a = null; $b =& $a; $b =& new A();
,但如果我误解了什么被弃用,那只是问题的一部分......)