线
$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/