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

Reply via email to