ID: 7455
Updated by: sniper
Reported By: [EMAIL PROTECTED]
Old-Status: Duplicate
Status: Closed
Bug Type: *General Issues
Assigned To:
Comments:
Previous Comments:
---------------------------------------------------------------------------
[2000-10-25 13:09:24] [EMAIL PROTECTED]
6529
I have been working on a very reference intensive project and have run into a number
of problems. This is one that I've been able to pin down to a fairly simple example.
The basic idea of the bug is that it appears $this is a different value in the
constructor of a class then it is outside of the constructor.
Take this example:
<?
global $GlobaBlow; //will hold the reference of $blow
class foobar {
var $State; //Holds the current state of an instanticated class
function foobar() {
$this->work(); //Sets GlobalBlow to the reference of the instanciated
class
$this->State = "In Constructor"; //Sets the state of the
instanciated class to "In Constructor"
}
function work() {
$GLOBALS["GlobalBlow"] =& $this; //Assigns the Global variable
the reference to this instanciated class
}
}
$blow = new foobar(); //creates a new foobar
//$blow->work();
$blow->State = "Global"; //sets the state of the instanciated foobar to
"Global"
echo $GlobalBlow->State; //should display "Global" but instead displays "In
Constructor"
?>
Whatever $this was pointing to when it was assigned to the global variable is
different then the $this assigned to the global variable outside of the constructor.
You can see this just by moving the call to $blow->work from within the constructor to
outside of the constructor.
If this is done then the correct value of "Global" is displayed.
Please don't hassle me on uselessness of the example. :) I know it's useless but
where we're using it in our project it is a must. Our project relies heavily on the
ability to assign $this to a variable from within constructors.
Thanks tons for your help,
Mike
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=7455&edit=2
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]