diff options
author | Dmitry Stogov <dmitry@zend.com> | 2012-09-21 13:07:14 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2012-09-21 13:07:14 +0400 |
commit | 4db74b7f1981bf19805e815f983c50d93df2c26a (patch) | |
tree | 352a3e86012d4e57920b96e2cbdddc7b5c0cf383 /Zend/tests/bug63111.phpt | |
parent | fd0b3ea663431b7adaedde11668fbc0b6ba07494 (diff) | |
download | php-git-4db74b7f1981bf19805e815f983c50d93df2c26a.tar.gz |
Fixed bug #63111 (is_callable() lies for abstract static method)
Diffstat (limited to 'Zend/tests/bug63111.phpt')
-rw-r--r-- | Zend/tests/bug63111.phpt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Zend/tests/bug63111.phpt b/Zend/tests/bug63111.phpt new file mode 100644 index 0000000000..3f19068668 --- /dev/null +++ b/Zend/tests/bug63111.phpt @@ -0,0 +1,36 @@ +--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-- +Strict Standards: Static function Foo::bar() should not be abstract in %sbug63111.php on line 3 +bool(false) +bool(false) +bool(false) +bool(false) +bool(true) +bool(true) +ok + +Fatal error: Cannot call abstract method Foo::bar() in %sbug63111.php on line 20 + |