diff options
author | Felipe Pena <felipe@php.net> | 2009-07-19 03:36:46 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2009-07-19 03:36:46 +0000 |
commit | 91841e0987d79a438217e8d4ccf117e4ed63111e (patch) | |
tree | b3a5e49e1066032a7004dc589b0a43d8f6a85c85 | |
parent | d49b4fa5978af70a270610f5e5ace5d61c646327 (diff) | |
download | php-git-91841e0987d79a438217e8d4ccf117e4ed63111e.tar.gz |
- New test
-rw-r--r-- | Zend/tests/bug48770_3.phpt | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Zend/tests/bug48770_3.phpt b/Zend/tests/bug48770_3.phpt new file mode 100644 index 0000000000..68fe84314d --- /dev/null +++ b/Zend/tests/bug48770_3.phpt @@ -0,0 +1,51 @@ +--TEST-- +Bug #48770 (call_user_func_array() fails to call parent from inheriting class) +--XFAIL-- +See Bug #48770 +--FILE-- +<?php + +class A { + public function func($str) { + var_dump(__METHOD__ .': '. $str); + } + private function func2($str) { + var_dump(__METHOD__ .': '. $str); + } + protected function func3($str) { + var_dump(__METHOD__ .': '. $str); + } + private function func22($str) { + var_dump(__METHOD__ .': '. $str); + } +} + +class B extends A { + public function func($str) { + call_user_func_array(array($this, 'self::func2'), array($str)); + call_user_func_array(array($this, 'self::func3'), array($str)); + call_user_func_array(array($this, 'self::inexistent'), array($str)); + } + private function func2($str) { + var_dump(__METHOD__ .': '. $str); + } + protected function func3($str) { + var_dump(__METHOD__ .': '. $str); + } +} + +class C extends B { + public function func($str) { + parent::func($str); + } +} + +$c = new C; +$c->func('This should work!'); + +?> +--EXPECTF-- +%unicode|string%(27) "B::func2: This should work!" +%unicode|string%(27) "B::func3: This should work!" + +Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'B' does not have a method 'inexistent' in %s on line %d |