--- /dev/null
+--TEST--
+Bug #52051 (handling of case sensitivity of old-style constructors changed in 5.3+)
+--FILE--
+<?php
+
+class AA {
+ function AA() { echo "foo\n"; }
+}
+class bb extends AA {}
+class CC extends bb {
+ function CC() { parent::bb(); }
+}
+new CC();
+
+class A {
+ function A() { echo "bar\n"; }
+}
+class B extends A {}
+class C extends B {
+ function C() { parent::B(); }
+}
+new C();
+
+?>
+--EXPECT--
+foo
+bar
/* Only change the method to the constructor if the constructor isn't called __construct
* we check for __ so we can be binary safe for lowering, we should use ZEND_CONSTRUCTOR_FUNC_NAME
*/
- if (!memcmp(lc_class_name, function_name_strval, function_name_strlen) && memcmp(ce->constructor->common.function_name, "__", sizeof("__") - 1)) {
+ if (!memcmp(lc_class_name, lc_function_name, function_name_strlen) && memcmp(ce->constructor->common.function_name, "__", sizeof("__") - 1)) {
fbc = ce->constructor;
}
efree(lc_class_name);