Req #50806 [Asn->Wfx]: $this can be assigned using variable casting

[email protected]
Newsgroups php.bugs
Message-ID <[email protected]>
Edit report at http://bugs.php.net/bug.php?id=50806&edit=1

 ID:               50806
 Updated by:       [email protected]
 Reported by:      kominbhai at gmail dot com
 Summary:          $this can be assigned using variable casting
-Status:           Assigned
+Status:           Wont fix
 Type:             Feature/Change Request
-Package:          Feature/Change Request
+Package:          *General Issues
 Operating System: Windows Vista
 PHP Version:      5.*, 6, 7, 8, 9..
 Assigned To:      dmitry

 New Comment:

It's possible to do it even without dynamic tricks.

<?php
class Foo { 
  function bar() { 
    $x = &$this;
    $x = null;
    var_dump($this);
  }
} 
$x = new Foo();
$x->bar();
?>

I would say I don't like to fix all these issues, because the fixes
would slowdown absolutely legal PHP code.


Previous Comments:
------------------------------------------------------------------------
[2010-01-24 04:56:45] [email protected]

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".

------------------------------------------------------------------------
[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/bug.php?id=50806&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.