1--TEST-- 2Modification of typed property during assignment must not leak 3--FILE-- 4<?php 5 6class A { 7 public string $prop = ""; 8} 9 10class B { 11 public function __toString() { 12 global $a; 13 $a->prop = "dont "; 14 $a->prop .= "leak "; 15 $a->prop .= "me!"; 16 return "test"; 17 } 18} 19 20$a = new A; 21$a->prop = new B; 22var_dump($a); 23 24$a = new A; 25$prop = &$a->prop; 26$a->prop = new B; 27var_dump($a); 28 29?> 30--EXPECTF-- 31object(A)#1 (1) { 32 ["prop"]=> 33 string(4) "test" 34} 35object(A)#%d (1) { 36 ["prop"]=> 37 &string(4) "test" 38} 39