我在服务器上有一个php版本4的脚本。现在它改为php5,脚本不再运行了。我收到这个错误:
致命错误:无法在URL database.php第88行重新分配$ this
在文件中是一个具有功能的类。里面是第88行:
$this = new $db( $serv, $user, $pass, $dbName );
错误的含义是什么?如何更改?
答案 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);