1
0
mirror of https://github.com/php/php-src.git synced 2026-03-29 03:32:20 +02:00
Files
archived-php-src/Zend/tests/bug48770.phpt
Nikita Popov ee510eed68 Deprecate partially supported callables
This deprecates all callables that are accepted by
call_user_func($callable) but not by $callable(). In particular:

    "self::method"
    "parent::method"
    "static::method"
    ["self", "method"]
    ["parent", "method"]
    ["static", "method"]
    ["Foo", "Bar::method"]
    [new Foo, "Bar::method"]

RFC: https://wiki.php.net/rfc/deprecate_partially_supported_callables

Closes GH-7446.
2021-10-22 10:15:24 +02:00

36 lines
720 B
PHP

--TEST--
Bug #48770 (call_user_func_array() fails to call parent from inheriting class)
--FILE--
<?php
class A {
public function func($arg) {
echo "A::func called\n";
}
}
class B extends A {
public function func($arg) {
echo "B::func called\n";
}
public function callFuncInParent($arg) {
call_user_func_array(array($this, 'parent::func'), array($arg));
}
}
class C extends B {
public function func($arg) {
echo "C::func called\n";
parent::func($str);
}
}
$c = new C;
$c->callFuncInParent('Which function will be called??');
?>
--EXPECTF--
Deprecated: Callables of the form ["C", "parent::func"] are deprecated in %s on line %d
B::func called