1--TEST-- 2SplFixedArray::setSize in offsetSet destructor (#81429) 3--FILE-- 4<?php 5$values = new SplFixedArray(1); 6$values->offsetSet(0, new HasDestructor()); 7$values->offsetSet(0, false); 8echo "Done\n"; 9 10class HasDestructor { 11 public function __destruct() { 12 global $values; 13 var_dump($values); 14 $values->setSize($values->getSize() - 1); 15 echo "After reducing size:\n"; 16 var_dump($values); 17 } 18} 19 20$values->setSize(5); 21$values->offsetSet(4, new HasDestructor()); 22echo "Done\n"; 23?> 24--EXPECT-- 25object(SplFixedArray)#1 (1) { 26 [0]=> 27 bool(false) 28} 29After reducing size: 30object(SplFixedArray)#1 (0) { 31} 32Done 33Done 34object(SplFixedArray)#1 (5) { 35 [0]=> 36 NULL 37 [1]=> 38 NULL 39 [2]=> 40 NULL 41 [3]=> 42 NULL 43 [4]=> 44 object(HasDestructor)#2 (0) { 45 } 46} 47After reducing size: 48object(SplFixedArray)#1 (4) { 49 [0]=> 50 NULL 51 [1]=> 52 NULL 53 [2]=> 54 NULL 55 [3]=> 56 NULL 57} 58