ID: 44141 Updated by: [EMAIL PROTECTED] Reported By: B dot Steinbrink at gmx dot de -Status: Open +Status: Closed Bug Type: Class/Object related Operating System: Debian Linux PHP Version: 5.2.5 -Assigned To: +Assigned To: dmitry 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: ------------------------------------------------------------------------ [2008-02-17 15:12:55] [EMAIL PROTECTED] I think that the parent ctor/dtor private shouldn't be called. Hence, here's a patch (5_3): http://felipe.ath.cx/diff/bug44141.diff It doesn't issue error message, only isn't inherited. ------------------------------------------------------------------------ [2008-02-17 06:09:31] B dot Steinbrink at gmx dot de Description: ------------ A class that is derived from a class with a private constructor and which does not provide its own constructor, can call the private parent constructor through a static function. Reproduce code: --------------- <?php class X { public $x; private function __construct($x) { $this->x = $x; } } class Y extends X { static public function cheat($x) { return new Y($x); } } $y = Y::cheat(5); echo $y->x, PHP_EOL; Expected result: ---------------- Fatal error: Call to private X::__construct() from invalid context ... Actual result: -------------- 5 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=44141&edit=1
