php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #708 assignment of a value to a one member variable of a class affects other vars.
Submitted: 1998-08-31 06:47 UTC Modified: 1998-08-31 11:04 UTC
From: hughm at idl dot net dot au Assigned:
Status: Closed Package: Other
PHP Version: 3.0 Final Release OS: linux 2.0.35
Private report: No CVE-ID: None
 [1998-08-31 06:47 UTC] hughm at idl dot net dot au
using apache 1.3.0 on a linux 2.0.35 libc5 setup.
(apache configure line)
./configure --prefix=/drives/web/apache_1.3.0 \
                --activate-module=src/modules/extra/mod_auth_mysql.o \
                --activate-module=src/modules/extra/mod_log_mysql.o \
                --activate-module=src/modules/php3/libphp3.a \
                --activate-module=src/modules/standard/mod_rewrite.o \
                --activate-module=src/modules/extra/mod_frontpage.o 


the following script gives un-expected results:

<--snip-->
<html>
<body>
<?
 class simple {
        var $somevar,$differvar;
        function init() {
          $this->$somevar=1;
          echo "this->somevar: ",$this->$somevar,"<BR>";
          $this->$differvar=2;
          echo "this->somevar: ",$this->$somevar,"<BR>";
          echo "this->differvar: ",$this->$differvar,"<BR>";
        }

}
 //main
$tester =new simple;
$tester->init();
?>
</body>
</html>
<--snip-->

<B>expected results:</B>
this->somevar: 1
this->somevar: 1
this->differvar: 2

<B>results obtained:</B>
this->somevar: 1
this->somevar: 2
this->differvar: 2

hashing problem ?
regex problem ?

Regards,
Hugh Madden


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [1998-08-31 11:04 UTC] zeev
c. none of the above - script problem

I think you could have figured that this was way too basic
to be a bug :)

Turn on error reporting all the way up by calling
error_reporting(E_ALL)
or, if you have the old 3.00,
error_reporting(13)
and I'm sure you'll figure where you were wrong.

Properties are not referenced like this:
$foo->$bar
but like this
$foo->bar

$foo->$bar has a totally different meaning.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 14:01:32 2024 UTC