mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
- New test
This commit is contained in:
parent
d49b4fa597
commit
91841e0987
51
Zend/tests/bug48770_3.phpt
Normal file
51
Zend/tests/bug48770_3.phpt
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user