|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #63111 is_callable() lies for abstract static method
Submitted: 2012-09-18 15:07 UTC Modified: 2012-09-18 16:09 UTC
From: vovan-ve at yandex dot ru Assigned: dmitry
Status: Closed Package: Class/Object related
PHP Version: Irrelevant OS:
Private report: No CVE-ID:
 [2012-09-18 15:07 UTC] vovan-ve at yandex dot ru
The function is_callable() says, that abstract static method _IS_ callable. But it is abstract, it has no body.

    abstract class Foo {
        abstract static function bar();
    # PHP Strict Standards: Static function Foo::bar() should not be abstract
    # is Foo::bar() callable?
    var_dump( is_callable(array("Foo", "bar")) );
    # bool(true)
    # O_o Ok, let's try...
    # Fatal error: Cannot call abstract method Foo::bar()

Yes, I see a Strict. Anyway, is_callable() lies. I have checked this in 5.3.10, 5.3.6 and 5.2.17.

Test script:
abstract class Foo {
    abstract static function bar();

var_dump( is_callable(array("Foo", "bar")) );

Expected result:
Fatal error

Actual result:
Fatal error


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2012-09-18 15:57 UTC]
-Assigned To: +Assigned To: dmitry
 [2012-09-18 15:57 UTC]
hmm, dmitry could you please look at this? thanks
 [2012-09-18 16:09 UTC]
seems similar with #36635
 [2012-09-21 11:17 UTC]
-Status: Assigned +Status: Closed
 [2012-09-21 11:17 UTC]
Automatic comment on behalf of
Log: Fixed bug #63111 (is_callable() lies for abstract static method)
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Sat Apr 19 04:01:55 2014 UTC