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]