4

我在具有 php 版本 4 的服务器上有一个脚本。现在它已更改为 php5,并且该脚本不再起作用。我收到此错误:

致命错误:无法在 URL database.php 第 88 行重新分配 $this

文件中有一个具有功能的类。里面是第88行:

$this = new $db( $serv, $user, $pass, $dbName );

错误是什么意思,我该如何更改?

4

5 回答 5

3

$this是一个特殊的“变量”,它总是引用当前函数正在执行的对象。它只在属于一个的函数内部才有意义;但是,您不得在其他任何地方使用它,并且您可能永远不会分配给它。解决方案只是重命名变量。

于 2013-10-08T08:25:42.650 回答
1

您可以通过变量变量重新分配 $this 值

$name = 'this';
$$name = 'stack';
echo $this;

// 这将导致堆栈

于 2016-11-23T06:53:05.610 回答
0

$this是一个保留的变量名,不能手动赋值。

于 2013-10-08T08:40:13.653 回答
0

该类正在尝试重新定义自己(thisphp 中的 $ 与 C# 中的相同this)并且无法完成。您应该更改$this为其他内容,然后错误应该消失。

于 2013-10-08T08:27:11.557 回答
0

$this是 PHP 中的预定义变量。

这是 PHP 手册中的参考:类和对象:基础知识。它描述了在方法内部,$this 如何指向正在被操作的“这个对象”。但是,它仍然保留在方法之外。

将标识符更改为另一个词。

于 2016-05-24T10:35:30.777 回答