]> granicus.if.org Git - php/commitdiff
MFB: Fixed bug #38194 (ReflectionClass::isSubclassOf() returns TRUE for the
authorIlia Alshanetsky <iliaa@php.net>
Tue, 25 Jul 2006 12:36:29 +0000 (12:36 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 25 Jul 2006 12:36:29 +0000 (12:36 +0000)
class itself).

ext/reflection/php_reflection.c
ext/reflection/tests/bug38194.phpt [new file with mode: 0755]

index 7118bfbec86f20c5dc46226ce1d1809197b07e4e..3afd5275e6048acd11456b9a4b72c4f3de290f6b 100644 (file)
@@ -3574,8 +3574,7 @@ ZEND_METHOD(reflection_class, isSubclassOf)
                        return;
        }
 
-
-       RETURN_BOOL(instanceof_function(ce, class_ce TSRMLS_CC));
+       RETURN_BOOL((ce != class_ce && instanceof_function(ce, class_ce TSRMLS_CC)));
 }
 /* }}} */
 
diff --git a/ext/reflection/tests/bug38194.phpt b/ext/reflection/tests/bug38194.phpt
new file mode 100755 (executable)
index 0000000..5c888af
--- /dev/null
@@ -0,0 +1,13 @@
+--TEST--
+Reflection Bug #38194 (ReflectionClass::isSubclassOf() returns TRUE for the class itself)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
+--FILE--
+<?php
+class Object { }
+  
+$objectClass= new ReflectionClass('Object');
+var_dump($objectClass->isSubclassOf($objectClass));
+?>
+--EXPECT--
+bool(false)