3

我的网络托管服务提供商说他们正在从 5.2.17 更改为 php 5.4,我尝试使用 php 5.4 在本地运行我的网站,我遇到了很多问题

像这样

严格标准:不应静态调用非静态方法 JError::isError(),假设 $this 来自第 721 行 D:\xampp\htdocs\indoor\libraries\joomla\application\application.php 中的不兼容上下文

所以我需要升级我接近 1.5 的 joomla 版本,目前我使用的是 1.5.24

4

4 回答 4

2

严格标准模式是一种 PHP 设置,它告诉它在代码执行某些技术上不正确的事情时抛出警告消息。

然而,PHP 可以处理这些问题——根据问题中的消息,PHP 能够对这种情况下的代码做出假设并继续进行。

这些严格模式警告一直存在;您在 5.4 而不是 5.2 中获取它们的原因是因为在 5.4 中它们默认启用,而在 5.2 中它们默认为关闭。

基本上,随着每个新版本的发布,PHP 对过时或糟糕的编程实践逐渐变得更加严格。这通常是一件好事,但在升级时确实会给旧代码留下问题。

但是严格模式不是强制性的;它可以被禁用。因此,如果您得到的只是有关严格模式的警告,那么解决问题的最快方法就是将其关闭。

您可以在PHP.inior.htaccess文件中执行此操作,也可以在 PHP 本身中使用ini_set().

  • PHP.ini:error_reporting=30719
  • .ht 访问:php_value error_reporting 30719
  • 在您的 PHP 代码中:error_reporting(E_ALL & ~E_STRICT);

(30719 等价于E_ALL(32767) 减E_STRICT(2048),但名称 E_ALL 和 E_STRICT 在 ini 文件中无效,因此您必须使用数值)

一般来说,最好将系统升级到不会导致严格模式警告的软件;也许更新版本的 Joomla 会对此有所帮助。但在短期内,这将防止出现严格模式警告,并希望能帮助您过渡到新的 PHP 版本。

希望有帮助。

于 2013-02-14T10:14:34.243 回答
0

PHP 严格标准:

"Non-static method JTable::getInstance() should not be called statically, assuming $this from incompatible context"

来源:http://mytecharticle.com/?p=1484

于 2014-06-02T02:29:40.213 回答
0

这是您在静态调用全局函数时的内部 joomla 错误。使用调试器并在调试模式下运行您的页面。

于 2013-02-14T08:37:28.203 回答
0

是的,最好现在升级您的 joomla 版本,因为 joomla 1.5 没有安全更新。还要记住,所有开发的新扩展都与 joomla 2.5 兼容,您不能将它用于 1.5。

于 2013-02-19T07:55:25.803 回答