php - 在 Joomla 中处理 E_STRICT

标签 php joomla strict

线

$db =& JFactory::getDBO();

E_STRICT 给我这个

Strict Standards: Only variables should be assigned by reference

这到底是什么意思?我正在使用 JFactory 就像它在文档中所说的那样。我应该担心吗?

谷歌搜索错误只会让我看到一群 Joomla 用户说我应该禁用 E_STRICT。我不想走捷径,因为我正在努力提高自己的技能。

最佳答案

这真的是 SO 的问题,因为这不是评论。但是,如果您在那里问这个问题,他们会很快否决这个问题,您的头会旋转。在寻求帮助之前,你真的应该用谷歌搜索这些东西,因为这有据可查。仅此警告就足以回答您的问题。

但是,这个错误的原因是因为那是类方法,不是变量。和一个静态的启动。那个严格的警告,任何警告或错误都应该始终听取,告诉你没有什么可引用的。引用会自动复制您对 $db 所做的任何更改,并将它们应用于它所引用的任何变量,从而有效地克隆它。所以现在你开始看到一个问题。你不是在引用一个变量,正如我所说,你是在引用一个方法的返回值,它只是内存的一部分,不能被引用。

所以,你可以这样做:

$temp = JFactory::getDBO();
$db =& $temp;

而且它会工作得很好。然而,这是完全没有必要的。这里完全没有必要引用。您真正想要做的只是将该方法的返回值设置为一个变量并在其余代码中使用它。通常,特别是对于刚开始编程的人来说,引用是没有必要的。您可以通过将先前的变量分配给新变量,进行更改,然后将新变量重新分配回旧变量来完成同样的事情。在您了解更多并且可以更好地理解它之前,不要管引用。即使经过多年的编程,我也很少使用它。

关于php - 在 Joomla 中处理 E_STRICT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11998606/

相关文章:

php - 如何将一个命名空间中的异常转换为另一个命名空间?

html - 使 joomla 模块跨越多列

php - 乔姆拉!模型覆盖

plugins - 在 joomla 组件中调用插件

javascript - 哪些(javascript)环境支持 ECMAscript 5 严格模式? (又名 "use strict")

PHP 表单无法正确更新 SQL 数据库

php - empty fields 在数据库中保存空值

php - Symfony2 - 数组到字符串的转换异常,并带有一条闪存消息

JavaScript:使用严格模式在 try/catch 中定义一个常量