2011-11-13 60 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 上找到雖然它仍然是測試版,但它已經非常穩定。許多棄用的功能被丟棄,核心被優化縮小。