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

1.1     ! misho       1: --TEST--
        !             2: ReflectionMethod::invoke()
        !             3: --FILE--
        !             4: <?php
        !             5: 
        !             6: class TestClass {
        !             7:     public $prop = 2;
        !             8: 
        !             9:     public function foo() {
        !            10:         echo "Called foo(), property = $this->prop\n";
        !            11:         var_dump($this);
        !            12:         return "Return Val";
        !            13:     }
        !            14: 
        !            15:     public function willThrow() {
        !            16:         throw new Exception("Called willThrow()");
        !            17:     }
        !            18: 
        !            19:     public function methodWithArgs($a, $b) {
        !            20:         echo "Called methodWithArgs($a, $b)\n";
        !            21:     }
        !            22: 
        !            23:     public static function staticMethod() {
        !            24:         echo "Called staticMethod()\n";
        !            25:         var_dump($this);
        !            26:     }
        !            27: 
        !            28:     private static function privateMethod() {
        !            29:         echo "Called privateMethod()\n";
        !            30:     }
        !            31: }
        !            32: 
        !            33: abstract class AbstractClass {
        !            34:     abstract function foo();
        !            35: }
        !            36: 
        !            37: $foo = new ReflectionMethod('TestClass', 'foo');
        !            38: $methodWithArgs = new ReflectionMethod('TestClass', 'methodWithArgs');
        !            39: $staticMethod = new ReflectionMethod('TestClass::staticMethod');
        !            40: $privateMethod = new ReflectionMethod("TestClass::privateMethod");
        !            41: $methodThatThrows = new ReflectionMethod("TestClass::willThrow");
        !            42: 
        !            43: $testClassInstance = new TestClass();
        !            44: $testClassInstance->prop = "Hello";
        !            45: 
        !            46: echo "Public method:\n";
        !            47: 
        !            48: var_dump($foo->invoke($testClassInstance));
        !            49: 
        !            50: var_dump($foo->invoke($testClassInstance, true));
        !            51: 
        !            52: echo "\nMethod with args:\n";
        !            53: 
        !            54: var_dump($methodWithArgs->invoke($testClassInstance, 1, "arg2"));
        !            55: var_dump($methodWithArgs->invoke($testClassInstance, 1, "arg2", 3));
        !            56: 
        !            57: echo "\nStatic method:\n";
        !            58: 
        !            59: var_dump($staticMethod->invoke());
        !            60: var_dump($staticMethod->invoke(true));
        !            61: var_dump($staticMethod->invoke(new stdClass()));
        !            62: 
        !            63: echo "\nMethod that throws an exception:\n";
        !            64: try {
        !            65:        var_dump($methodThatThrows->invoke($testClassInstance));
        !            66: } catch (Exception $exc) {
        !            67:        var_dump($exc->getMessage());
        !            68: }
        !            69: 
        !            70: ?>
        !            71: --EXPECTF--
        !            72: Public method:
        !            73: Called foo(), property = Hello
        !            74: object(TestClass)#%d (1) {
        !            75:   ["prop"]=>
        !            76:   string(5) "Hello"
        !            77: }
        !            78: string(10) "Return Val"
        !            79: Called foo(), property = Hello
        !            80: object(TestClass)#%d (1) {
        !            81:   ["prop"]=>
        !            82:   string(5) "Hello"
        !            83: }
        !            84: string(10) "Return Val"
        !            85: 
        !            86: Method with args:
        !            87: Called methodWithArgs(1, arg2)
        !            88: NULL
        !            89: Called methodWithArgs(1, arg2)
        !            90: NULL
        !            91: 
        !            92: Static method:
        !            93: 
        !            94: Warning: ReflectionMethod::invoke() expects at least 1 parameter, 0 given in %s on line %d
        !            95: NULL
        !            96: Called staticMethod()
        !            97: 
        !            98: Notice: Undefined variable: this in %s on line %d
        !            99: NULL
        !           100: NULL
        !           101: Called staticMethod()
        !           102: 
        !           103: Notice: Undefined variable: this in %s on line %d
        !           104: NULL
        !           105: NULL
        !           106: 
        !           107: Method that throws an exception:
        !           108: string(18) "Called willThrow()"

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