ID: 50806
Updated by: [email protected]
Reported By: kominbhai at gmail dot com
Status: Open
-Bug Type: Documentation problem
+Bug Type: Scripting Engine problem
Operating System: Windows Vista
PHP Version: 5.3.1
-Assigned To:
+Assigned To: dmitry
New Comment:
There are several other ways to also re-assign $this, e.g.:
class Test {
public function __construct() {
var_dump($this);
/* Quirk comes in here by using the concation operator */
/* ${'this'} is not possible and results in an E_ERROR */
${'t' . 'his'} = 'Hello';
var_dump($this);
}
}
If any whether this should be fixed within the Engine, then Dmitry
would know so I'm re-assigning it to him for him to decide. As for a
documentation issue, I really don't belive we should document such
quirks in the official documentation else people will rely on such buggy
"features".
Previous Comments:
------------------------------------------------------------------------
[2010-01-20 15:48:54] kominbhai at gmail dot com
Description:
------------
$this can be assigned using variable casting
Reproduce code:
---------------
<?php
$a="this";
$$a="abc";
echo $this; //works when it should not be
?>
Expected result:
----------------
Error: $this cannot be re-assigned
Actual result:
--------------
echoes abc
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=50806&edit=1