我有一個PHP版本4的服務器上的腳本。現在它被更改爲php5,腳本不再工作。我得到這個錯誤:
致命錯誤:不能重新分配$這URL爲database.php線88
在該文件中是具有功能的類。裏面是線88:
$this = new $db($serv, $user, $pass, $dbName);
錯誤是什麼意思,我怎麼能改變它?
我有一個PHP版本4的服務器上的腳本。現在它被更改爲php5,腳本不再工作。我得到這個錯誤:
致命錯誤:不能重新分配$這URL爲database.php線88
在該文件中是具有功能的類。裏面是線88:
$this = new $db($serv, $user, $pass, $dbName);
錯誤是什麼意思,我怎麼能改變它?
$this
是一個特殊的「可變的」總是指對象當前功能在執行它僅使內屬於某個類函數感。然而,你不能在任何其他地方使用它,並且你可能永遠不會分配它。解決方法是簡單地重命名該變量。
好吧,我把它改名爲DBO,但只給了我一個新的錯誤: 致命錯誤:調用未定義功能:doquery()的URL QuizOperations.php上線524 線524 $這個 - > DB- > doQuery(.....); 有幾個功能類似的行。 如果我將這些變量更改爲dbo,則會得到相同的錯誤消息。 – Atha
@Atha:這是你自己的代碼或你從其他地方獲得的代碼嗎?它是爲PHP 4還是PHP 5編寫的?無論如何,這個問題的根源有點難以從這條線上得出,因爲它是一種不同的錯誤,所以最好把它作爲一個新問題發佈。 –
該班正試圖重新定義自己(在PHP中的$ this
與在C#中的this
相同)並且無法完成。您應該將$this
更改爲其他內容,然後錯誤應該消失。
$this
是一個保留的變量名稱,不能手動賦值。
$ this是PHP中的一個預定義變量。
以下是PHP手冊中的參考:類和對象:基礎知識。它描述了在一個方法內,$ this指向正在被操作的「this object」。不過,它仍然保留在方法之外。
將標識符更改爲另一個單詞。
您可以通過可變的變量
$name = 'this';
$$name = 'stack';
echo $this;
重新分配$這個值//這將導致堆棧
您可以使用refrences招:
$thisRef = &$this;
$thisRef = new $db($serv, $user, $pass, $dbName);
HTTP://us1.php。 net/manual/en/language.oop5.basic.php這裏有一個$ this的解釋。 – vascowhite