diff options
Diffstat (limited to 'ext/reflection/tests/ReflectionMethod_invokeArgs_basic.phpt')
-rw-r--r-- | ext/reflection/tests/ReflectionMethod_invokeArgs_basic.phpt | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/ext/reflection/tests/ReflectionMethod_invokeArgs_basic.phpt b/ext/reflection/tests/ReflectionMethod_invokeArgs_basic.phpt new file mode 100644 index 0000000..24282cd --- /dev/null +++ b/ext/reflection/tests/ReflectionMethod_invokeArgs_basic.phpt @@ -0,0 +1,73 @@ +--TEST-- +ReflectionMethod::invokeArgs() +--FILE-- +<?php + +class TestClass { + public $prop = 2; + + public function foo() { + echo "Called foo(), property = $this->prop\n"; + var_dump($this); + return "Return Val"; + } + + public function willThrow() { + throw new Exception("Called willThrow()"); + } + + public function methodWithArgs($a, $b) { + echo "Called methodWithArgs($a, $b)\n"; + } +} + + +$testClassInstance = new TestClass(); +$testClassInstance->prop = "Hello"; + +$foo = new ReflectionMethod($testClassInstance, 'foo'); +$methodWithArgs = new ReflectionMethod('TestClass', 'methodWithArgs'); +$methodThatThrows = new ReflectionMethod("TestClass::willThrow"); + + +echo "Public method:\n"; + +var_dump($foo->invokeArgs($testClassInstance, array())); +var_dump($foo->invokeArgs($testClassInstance, array(true))); + +echo "\nMethod with args:\n"; + +var_dump($methodWithArgs->invokeArgs($testClassInstance, array(1, "arg2"))); +var_dump($methodWithArgs->invokeArgs($testClassInstance, array(1, "arg2", 3))); + +echo "\nMethod that throws an exception:\n"; +try { + $methodThatThrows->invokeArgs($testClassInstance, array()); +} catch (Exception $e) { + var_dump($e->getMessage()); +} + +?> +--EXPECTF-- +Public method: +Called foo(), property = Hello +object(TestClass)#%d (1) { + ["prop"]=> + string(5) "Hello" +} +string(10) "Return Val" +Called foo(), property = Hello +object(TestClass)#%d (1) { + ["prop"]=> + string(5) "Hello" +} +string(10) "Return Val" + +Method with args: +Called methodWithArgs(1, arg2) +NULL +Called methodWithArgs(1, arg2) +NULL + +Method that throws an exception: +string(18) "Called willThrow()" |