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>