Annotation of embedaddon/php/ext/reflection/tests/ReflectionMethod_constructor_basic.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: ReflectionMethod::isConstructor()
        !             3: --FILE--
        !             4: <?php
        !             5: 
        !             6: class NewCtor {
        !             7:     function __construct() {
        !             8:         echo "In " . __METHOD__ . "\n";
        !             9:     }
        !            10: 
        !            11: }
        !            12: echo "New-style constructor:\n";
        !            13: $methodInfo = new ReflectionMethod("NewCtor::__construct");
        !            14: var_dump($methodInfo->isConstructor());
        !            15: 
        !            16: class ExtendsNewCtor extends NewCtor {
        !            17: }
        !            18: echo "\nInherited new-style constructor\n";
        !            19: $methodInfo = new ReflectionMethod("ExtendsNewCtor::__construct");
        !            20: var_dump($methodInfo->isConstructor());
        !            21: 
        !            22: class OldCtor {
        !            23:     function OldCtor() {
        !            24:         echo "In " . __METHOD__ . "\n";
        !            25:     }
        !            26: }
        !            27: echo "\nOld-style constructor:\n";
        !            28: $methodInfo = new ReflectionMethod("OldCtor::OldCtor");
        !            29: var_dump($methodInfo->isConstructor());
        !            30: 
        !            31: class ExtendsOldCtor extends OldCtor {
        !            32: }
        !            33: echo "\nInherited old-style constructor:\n";
        !            34: $methodInfo = new ReflectionMethod("ExtendsOldCtor::OldCtor");
        !            35: var_dump($methodInfo->isConstructor());
        !            36: 
        !            37: class X {
        !            38:     function Y() {
        !            39:         echo "In " . __METHOD__ . "\n";
        !            40:     }
        !            41: }
        !            42: echo "\nNot a constructor:\n";
        !            43: $methodInfo = new ReflectionMethod("X::Y");
        !            44: var_dump($methodInfo->isConstructor());
        !            45: 
        !            46: class Y extends X {
        !            47: }
        !            48: echo "\nInherited method of the same name as the class:\n";
        !            49: $methodInfo = new ReflectionMethod("Y::Y");
        !            50: var_dump($methodInfo->isConstructor());
        !            51: 
        !            52: class OldAndNewCtor {
        !            53:     function OldAndNewCtor() {
        !            54:         echo "In " . __METHOD__ . "\n";
        !            55:     }
        !            56: 
        !            57:     function __construct() {
        !            58:         echo "In " . __METHOD__ . "\n";
        !            59:     }
        !            60: }
        !            61: echo "\nOld-style constructor:\n";
        !            62: $methodInfo = new ReflectionMethod("OldAndNewCtor::OldAndNewCtor");
        !            63: var_dump($methodInfo->isConstructor());
        !            64: 
        !            65: echo "\nRedefined constructor:\n";
        !            66: $methodInfo = new ReflectionMethod("OldAndNewCtor::__construct");
        !            67: var_dump($methodInfo->isConstructor());
        !            68: 
        !            69: class NewAndOldCtor {
        !            70:     function __construct() {
        !            71:         echo "In " . __METHOD__ . "\n";
        !            72:     }
        !            73: 
        !            74:     function NewAndOldCtor() {
        !            75:         echo "In " . __METHOD__ . "\n";
        !            76:     }
        !            77: }
        !            78: echo "\nNew-style constructor:\n";
        !            79: $methodInfo = new ReflectionMethod("NewAndOldCtor::__construct");
        !            80: var_dump($methodInfo->isConstructor());
        !            81: 
        !            82: echo "\nRedefined old-style constructor:\n";
        !            83: $methodInfo = new ReflectionMethod("NewAndOldCtor::NewAndOldCtor");
        !            84: var_dump($methodInfo->isConstructor());
        !            85: 
        !            86: ?>
        !            87: --EXPECTF--
        !            88: Strict Standards: Redefining already defined constructor for class OldAndNewCtor in %s on line %d
        !            89: New-style constructor:
        !            90: bool(true)
        !            91: 
        !            92: Inherited new-style constructor
        !            93: bool(true)
        !            94: 
        !            95: Old-style constructor:
        !            96: bool(true)
        !            97: 
        !            98: Inherited old-style constructor:
        !            99: bool(true)
        !           100: 
        !           101: Not a constructor:
        !           102: bool(false)
        !           103: 
        !           104: Inherited method of the same name as the class:
        !           105: bool(false)
        !           106: 
        !           107: Old-style constructor:
        !           108: bool(false)
        !           109: 
        !           110: Redefined constructor:
        !           111: bool(true)
        !           112: 
        !           113: New-style constructor:
        !           114: bool(true)
        !           115: 
        !           116: Redefined old-style constructor:
        !           117: bool(false)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>