I have a script on a server that had php version 4. Now it is changed to php5 and the script does not function any more. I get this error:
Fatal error: Cannot re-assign $this in URL database.php line 88
In the file is a class that has a function. Inside is the line 88:
$this = new $db( $serv, $user, $pass, $dbName );
What does the error mean and how can I change it?
$this is a predefined variable in PHP.
Here's the reference in the PHP manual: Classes and Objects: The Basics. It describes how, inside a method, $this points to "this object" that is being operated upon. It is still reserved outside a method, though.
Change the identifier to another word.
$this
is a special "variable" that always refers to the object the current function is executing in. It only makes sense inside functions that belong to a class; however, you are not allowed to use it anywhere else, and you may never assign to it. The solution is simply to rename the variable.The class is attempting to re-define itself ($
this
in php is the same asthis
in C#) and it can't be done. You should change$this
to something else and the error should be gone then.$this
is a reserved variable name and cannot manually be assigned a value.You can use refrences trick:
You can reassign $this value by variable variable
// this will result stack