2011-11-13 168 views
0

我在3个月前创建了一个网站。我上传到互联网,它的工作(它仍然在那里工作)。现在我将它安装在本地计算机上并尝试访问它。然而它打印以下错误消息多次:PHP奇怪的错误信息

不推荐使用:通过参考分配的新返回值被 弃用在C:\ XAMPP \ htdocs中\ PTR \ xajax的\ xajax_core \ xajax.inc.php上 线1258

严格的标准:只有变量应当参照在 C下分配:\ XAMPP \ htdocs中\ PTR \ xajax的\ xajax_core \ xajaxPluginManager.inc.php上 线269

我使用xajax的框架和错误与这个框架有关。由于我没有改变库文件中的任何内容,我不明白这个问题会是什么。请帮忙...我吓坏了

+0

你有不同的PHP版本,支持通过引用返回新值,而不再支持新值。如果您希望它像运行在您的Web服务器上那样运行,请使用相同的PHP版本。 – nickb

+3

我尝试过一次xajax。只有好东西...不,没有好东西。您应该使用“真正的”AJAX! – MatTheCat

回答

2

您正在使用的框架似乎有点过时,并用这种结构

$x = & new Classname(); 

new之前的&自PHP 5.0(现在已有几年)已弃用。随着E_DEPRECATED - 和E_STRICT-消息的推出,它现在会抛出这样的消息。

+0

我可以在不切换回PHP4的情况下解决这个问题吗? –

+0

确保您使用最新版本的框架,也许更新已经解决了您的问题。如果没有,当然你可以自己修复错误。查看消息:提供了文件名和行。另一方面'E_STRICT'和'E_DEPRECATED'是注意事项而不是错误,因此你甚至可以忽略它们。然而,我自己不会依赖一个框架,它不能与7年前的版本兼容。最新版本的Xajax本身已经有一年多了,并且标记为“beta”。不要以为会发生什么...... – KingCrunch

+0

谢谢你的帮助。我无法改变框架本身,因此需要做很多工作。 –

2

不幸的是,这种声明已从PHP 5中弃用。在你的本地机器上运行的版本是5.3,而你的服务器运行的是旧版本。因此,在你的机器上抛出了一个E_STRICT错误。为了避免这个问题,你必须改变般的线条:

$node_obj =& new someClass($somearg, $moreargs); 

$node_obj = new someClass($somearg, $moreargs); 
1

xajax的0.6目标,这和一对夫妇的其他问题。当xajax 0.5的开发开始时,许多用户仍然被困在PHP4 Web服务器上,并且这种语法有助于维持PHP4到5.2.x的兼容性。 Xajax 0.6可以在https://github.com/Xajax/Xajax-Project 上找到虽然它仍然是测试版,但它已经非常稳定。许多弃用的功能被丢弃,核心被优化缩小。