文档使用按引用分配(=&),但这在PHP 5中是否必要?


12

我已经在Joomla文档(例如JFactory / getSession)中注意到,这些示例使用按引用=&分配(=)而不是简单的赋值()。

$session =& JFactory::getSession();

这只是过时的还是故意涵盖PHP 4的用户的?

在PHP 5下是否有必要?还是我忽略了一些与Joomla相关的东西?


好问题!我经常想知道我应该使用等号和&符还是仅使用等号。
TryHarder 2014年

一些文档未更新。当您发现某些内容时,只需点击“编辑”按钮,它便是一个Wiki。
Valentin Despa

Answers:


9

这用于PHP4次。从PHP5开始,对象是通过引用分配的,因此无需显式地进行操作。


1
在php 5中,它也会引起许多严格的标准警告,并且在Joomla核心中有很多警告,当您切换到开发错误报告时,有时会很有趣。PHP中的另一项更改使向后兼容变得困难。
Jordan Ramstad 2014年

在Joomla 1.5中,这是不好的,因为它是为支持PHP 4.3而编写的。使用2.5和3.x,E_STRICT如果有的话,核心中的错误量将降至最低。
2014年

1
谢谢,我有一个假设它必须是一个PHP4解酒,但与Joomla 1.6+ 需要 PHP5 +我开始怀疑。次要点,但对象实际上不是PHP5中的“按引用分配”。在大多数情况下,按引用分配运算符不是必需的,因为类实例在PHP5 中的存储方式不同。(类实例拥有一个“对象标识符”,而不是像PHP4中那样的值本身。)在PHP5中分配了一个“对象标识符” ,而不是对象值。最终结果是相似的,但是有所不同。
MrWhite 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.