无法重新分配$ this?

时间:2013-10-08 08:24:14

标签: php message php4

我在服务器上有一个php版本4的脚本。现在它改为php5,脚本不再运行了。我收到这个错误:

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

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

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

错误的含义是什么?如何更改?

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

您可以通过变量

重新分配$ this
$name = 'this';
$$name = 'stack';
echo $this;

//这将导致堆栈

答案 2 :(得分:0)

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

答案 3 :(得分:0)

$this是保留的变量名称,无法手动为其分配值。

答案 4 :(得分:0)

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

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

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

答案 5 :(得分:0)

你可以使用引用技巧:

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