12345678910111213141516171819202122232425262728293031323334353637 |
- --TEST--
- Bug #63111 (is_callable() lies for abstract static method)
- --FILE--
- <?php
- abstract class Foo {
- abstract static function bar();
- }
- interface MyInterface {
- static function bar();
- }
- abstract class Bar {
- static function foo() {
- echo "ok\n";
- }
- }
- var_dump(is_callable(array("Foo", "bar")));
- var_dump(is_callable("Foo::bar"));
- var_dump(is_callable(array("MyInterface", "bar")));
- var_dump(is_callable("MyInterface::bar"));
- var_dump(is_callable(array("Bar", "foo")));
- var_dump(is_callable("Bar::foo"));
- Bar::foo();
- Foo::bar();
- ?>
- --EXPECTF--
- bool(false)
- bool(false)
- bool(false)
- bool(false)
- bool(true)
- bool(true)
- ok
- Fatal error: Uncaught Error: Cannot call abstract method Foo::bar() in %sbug63111.php:20
- Stack trace:
- #0 {main}
- thrown in %sbug63111.php on line 20
|