|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2017, PHP 7.1.5
+- Core:
+ . Fixed bug #74340 (Magic function __get has different behavior in php 7.1.x).
+ (Nikita)
+
- GD:
. Fixed bug #74343 (compile fails on solaris 11 with system gd2 library).
(krakjoe)
--- /dev/null
+--TEST--
+Bug #74340: Magic function __get has different behavior in php 7.1.x
+--FILE--
+<?php
+class Test
+{
+ public function __get($var)
+ {
+ static $first = true;
+ echo '__get '.$var.PHP_EOL;
+ if ($first) {
+ $first = false;
+ $this->$var;
+ $this->{$var.'2'};
+ $this->$var;
+ }
+ }
+}
+
+$test = new Test;
+$test->test;
+
+?>
+--EXPECTF--
+__get test
+
+Notice: Undefined property: Test::$test in %s on line %d
+__get test2
+
+Notice: Undefined property: Test::$test in %s on line %d
ALLOC_HASHTABLE(guards);
zend_hash_init(guards, 8, NULL, zend_property_guard_dtor, 0);
/* mark pointer as "special" using low bit */
- zend_hash_add_new_ptr(guards, member,
+ zend_hash_add_new_ptr(guards, str,
(void*)(((zend_uintptr_t)&zv->u2.property_guard) | 1));
zend_string_release(Z_STR_P(zv));
ZVAL_ARR(zv, guards);