ID: 28817 Updated by: [EMAIL PROTECTED] Reported By: D dot Kingma at jool dot nl -Status: Open +Status: Closed Bug Type: Zend Engine 2 problem Operating System: * PHP Version: 5CVS-2004-06-17 (dev) New Comment:
This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2005-01-11 11:51:51] D dot Kingma at jool dot nl The fix in CVS is reverted ------------------------------------------------------------------------ [2004-12-04 12:42:21] [EMAIL PROTECTED] This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2004-12-04 10:09:02] [EMAIL PROTECTED] It's fixed in mysqli now (cvs). /Georg ------------------------------------------------------------------------ [2004-10-22 12:53:21] Jason at amp-design dot net This is much like the constructor bug in PHP4, because $this in the constructor doesn't properly reference the object being constructed. One way I normally get round this in PHP4 is to use the Factory pattern, where you do class A { static public function &Factory() { // Use this as a replacement to the constuctor $obj = &new A(); $obj->var = 'Foo Bar'; return $obj; } } you just need to construct classes using the static member function like ... $obj = &A::Factory(); instead of $obj = &new A(); e.g. class z extends domDocument{ /** variable can have name */ var $y=Array(); var $x; function __construct(){ $this->y['doh']='me'; $x='aaaaahhhh'; print_r($this->y); echo $x; } function &Factory() { $obj = new z(); $obj->y['doh2']='me2'; return $obj; } } $z= &z::Factory(); print_R($z); However this to me does seem like a PHP Bug. It's very hard with internal classes to know what behaviours are bugs and "features". A submitted http://bugs.php.net/29092 and apparantly it's not a bug, however there is no mentioning of this in the documentation. As a result the bug is really a documentation bug in my eyes. Regards Jason ------------------------------------------------------------------------ [2004-06-19 13:36:23] profic at kursknet dot ru php5.0RC3 the same problem. But I discovered, that the second assignment do things right e.g.: class a extends DOMDocument { private $prop = array (); public function __construct () {parent::__construct ()} public function func () { $this->prop[] = 'test'; $this->prop[] = 'test'; } } $o = new a (); $o->func (); var_dump ($o); ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/28817 -- Edit this bug report at http://bugs.php.net/?id=28817&edit=1