![]() |
1
10
传递对象的方式在php5中发生了根本性的改变。在php4中,它们总是按值传递的,这意味着返回对象的函数或方法实际上正在传递对象的副本。这导致使用“&”运算符,强制函数通过引用返回对象。在php5中,对象总是通过引用传递。要创建对象的副本,必须使用克隆运算符。 通过快速查看日志包的源代码,可以看出它与php4保持兼容。我认为你不需要符号。php5将返回对对象的引用。您对“$var==$var2”的测试已经证明该方法返回一个对象,并且该对象是对一个对象的引用。如果它们是一个对象的副本,那么身份比较的结果将是错误的。 |
![]() |
2
4
警告是正确的,API文档已过时,从php5开始通过引用返回对象。 |
![]() |
3
3
在php 5中,处理引用的方法在php中发生了一些变化。现在,他们希望被调用函数决定通过引用或值返回,而不是通过调用方返回。 但通常PHP可以自己解决这个问题——就像在您的例子中一样,它检测到这两个对象是相同的。 有关您的e_的更多信息,请严格阅读手册: http://www.php.net/manual/en/language.references.whatdo.php 以及如何实现PEAR功能: http://www.php.net/manual/en/language.references.return.php . (在我看来,梨的大部分已经过时了,Zend框架现在覆盖了梨的大部分。) 编辑:引用的大型示例:
如您所见,即使没有引用,getInstance也会作为引用处理。如果要使用引用,调用方和被调用函数都必须标记为引用。 警告:按引用返回可能会导致难以找到的错误:按引用返回允许我覆盖包含var的私有实例。PHP中的预期行为是$settings3是5,但不是私有静态$_实例;这可能导致非常不可预测的代码。 |
![]() |
Jacco · 未能格式化我的日期以在php中正确工作 1 年前 |
![]() |
jay ram · 如何在URL核心php中从API获取JSON? 1 年前 |
|
Ishwarya A · php电子表格在浏览器中显示多张excel 1 年前 |