Annotation of embedaddon/php/tests/classes/ctor_visibility.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ZE2 A private constructor cannot be called
! 3: --FILE--
! 4: <?php
! 5:
! 6: class Test
! 7: {
! 8: function __construct()
! 9: {
! 10: echo __METHOD__ . "()\n";
! 11: }
! 12: }
! 13:
! 14: class Derived extends Test
! 15: {
! 16: function __construct()
! 17: {
! 18: echo __METHOD__ . "()\n";
! 19: parent::__construct();
! 20: }
! 21:
! 22: static function f()
! 23: {
! 24: new Derived;
! 25: }
! 26: }
! 27:
! 28: Derived::f();
! 29:
! 30: class TestPriv
! 31: {
! 32: private function __construct()
! 33: {
! 34: echo __METHOD__ . "()\n";
! 35: }
! 36:
! 37: static function f()
! 38: {
! 39: new TestPriv;
! 40: }
! 41: }
! 42:
! 43: TestPriv::f();
! 44:
! 45: class DerivedPriv extends TestPriv
! 46: {
! 47: function __construct()
! 48: {
! 49: echo __METHOD__ . "()\n";
! 50: parent::__construct();
! 51: }
! 52:
! 53: static function f()
! 54: {
! 55: new DerivedPriv;
! 56: }
! 57: }
! 58:
! 59: DerivedPriv::f();
! 60:
! 61: ?>
! 62: ===DONE===
! 63: --EXPECTF--
! 64: Derived::__construct()
! 65: Test::__construct()
! 66: TestPriv::__construct()
! 67: DerivedPriv::__construct()
! 68:
! 69: Fatal error: Cannot call private TestPriv::__construct() in %sctor_visibility.php on line %d
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>