我的网络托管提供商说他们从5.2.17改为php 5.4,我试图用php 5.4在本地运行我的网站,我得到了很多问题
像这个
严格标准:非静态方法JError::isError()不应静态调用,假设$this来自第721 行D:\examplep\htdocs\interior\libraries\joomla\application\application.php中的不兼容上下文
所以我需要升级我的joomla版本,它接近1.5,目前我使用的是1.5.24
严格标准模式是一种PHP设置,当代码做某些技术上不正确的事情时,告诉它抛出警告消息。
然而,PHP可以处理这些问题——根据问题中的消息,PHP可以对这种情况下的代码进行假设并继续
这些严格的模式警告一直存在;你在5.4中得到它们而不是在5.2中得到它们的原因是,在5.4中它们是默认启用的,而在5.2中它们默认关闭
基本上,随着每一个新版本的出现,PHP对过时或糟糕的编程实践都会慢慢变得更加严格。这通常是一件好事,但在升级时确实会给旧代码带来问题。
但严格模式并不是强制性的;它可以被禁用。因此,如果你得到的只是关于严格模式的警告,那么处理这个问题的最快方法就是关闭它
您可以在PHP.ini
或.htaccess
文件中执行此操作,也可以在PHP本身中使用ini_set()
执行此操作。
- PHP.ini:
error_reporting=30719
- .hta访问:
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版本。
希望能有所帮助。
这是静态调用全局函数时出现的内部joomla错误。使用调试器并在调试模式下运行页面。
是的,现在最好升级您的joomla版本,因为joomla 1.5没有安全更新。还要记住,所有开发的新扩展都与joomla2.5兼容,不能将其用于1.5。
PHP严格标准:
"Non-static method JTable::getInstance() should not be called statically, assuming $this from incompatible context"
来源:http://mytecharticle.com/?p=1484