--TEST-- ZE2 A private constructor cannot be called --FILE-- <?php class Test { function __construct() { echo __METHOD__ . "()\n"; } } class Derived extends Test { function __construct() { echo __METHOD__ . "()\n"; parent::__construct(); } static function f() { new Derived; } } Derived::f(); class TestPriv { private function __construct() { echo __METHOD__ . "()\n"; } static function f() { new TestPriv; } } TestPriv::f(); class DerivedPriv extends TestPriv { function __construct() { echo __METHOD__ . "()\n"; parent::__construct(); } static function f() { new DerivedPriv; } } DerivedPriv::f(); ?> ===DONE=== --EXPECTF-- Derived::__construct() Test::__construct() TestPriv::__construct() DerivedPriv::__construct() Fatal error: Cannot call private TestPriv::__construct() in %sctor_visibility.php on line %d