Browse Source

- Fixed bug #48899 (is_callable returns true even if method does not exist in parent class)

experimental/first_unicode_implementation
Felipe Pena 17 years ago
parent
commit
dd6e75c230
  1. 24
      Zend/tests/bug48899.phpt
  2. 2
      Zend/zend_API.c

24
Zend/tests/bug48899.phpt

@ -0,0 +1,24 @@
--TEST--
Bug #48899 (is_callable returns true even if method does not exist in parent class)
--FILE--
<?php
class ParentClass { }
class ChildClass extends ParentClass {
public function testIsCallable() {
var_dump(is_callable(array($this, 'parent::testIsCallable')));
}
public function testIsCallable2() {
var_dump(is_callable(array($this, 'static::testIsCallable2')));
}
}
$child = new ChildClass();
$child->testIsCallable();
$child->testIsCallable2();
?>
--EXPECT--
bool(false)
bool(true)

2
Zend/zend_API.c

@ -2907,7 +2907,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca
}
} else {
get_function_via_handler:
if (fcc->object_ptr) {
if (fcc->object_ptr && fcc->calling_scope == ce_org) {
if (Z_OBJ_HT_P(fcc->object_ptr)->get_method) {
zstr method = mname;
int method_len = mlen;

Loading…
Cancel
Save