|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2011-06-11 00:46 UTC] felipe@php.net
-Status: Open
+Status: Feedback
[2011-06-11 00:46 UTC] felipe@php.net
[2013-02-18 00:34 UTC] php-bugs at lists dot php dot net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Nov 04 12:00:01 2025 UTC |
Description: ------------ Creating a working example failed. And we have a codebase of >10MB phpcode. But these are the exact conditions of the failure: We have a class B that extends A. Both have a method f() but they differ such that a syntaxcheck would say this: Strict Standards: Declaration of B::f() should be compatible with that of A::f(). However B is loaded using __autoload('B'), normally. Now we say (without B loaded) $a = new ReflectionClass('B'); And php exits with code 0. No logging, no error, no Exception, no SEGV. some added debugprints in reflection_class_object_ctor() show this: ARA: reflection_class_object_ctor entry ARA: calling getThis ARA: name:'MO_KieskeurigExporter', calling zend_lookup_class And I never return from zend_lookup_class! Unfortunately putting a print in there probably floods the system here. Working around the bug is much easier than debugging it. But maybe someone more knowledgeable than me knows where that exit(0); call is parked?? Test script: --------------- Not reproducable. Expected result: ---------------- I accept an ReflectionException to be thrown. This does happen if I change the classname, so it truly cannot be found. Also, if I fix the method to match the superclass' one, everything is fine as well. Actual result: -------------- php exits with code 0. However a minimal example attempt worked perfectly ok.