PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
06 Aug 2015, PHP 7.0.0 Beta 3
-
+- Core:
+ . Fixed bug #70106 (Inheritance by anonymous class). (Bob)
23 Jul 2015, PHP 7.0.0 Beta 2
--- /dev/null
+--TEST--
+Ensure proper inheritance with get_class(anon class instance) used via class_alias (see also bug #70106)
+--FILE--
+<?php
+
+class_alias(get_class(new class { protected $foo = 1; }), "AnonBase");
+var_dump((new class extends AnonBase {
+ function getFoo() {
+ return $this->foo;
+ }
+})->getFoo());
+?>
+--EXPECT--
+int(1)
}
name = zend_new_interned_string(name);
- lcname = zend_new_interned_string(lcname);
} else {
name = zend_generate_anon_class_name(decl->lex_pos);
- lcname = zend_string_copy(name); /* this normally is an interned string, except with opcache. We need a proper copy here or opcache will fail with use after free. */
+ lcname = zend_string_tolower(name);
}
+ lcname = zend_new_interned_string(lcname);
ce->type = ZEND_USER_CLASS;
ce->name = name;