1--TEST-- 2Typed property on overloaded by-ref property 3--SKIPIF-- 4<?php if (PHP_INT_SIZE == 4) die("SKIP: 64 bit test"); ?> 5--FILE-- 6<?php 7 8$a = new class { 9 public int $foo = 1; 10 11 function &__get($x) { 12 return $this->foo; 13 } 14 15 function __set($x, $y) { 16 echo "set($y)\n"; 17 } 18}; 19 20$a->_ += 1; 21var_dump($a->foo); 22 23$a->_ .= "1"; 24var_dump($a->foo); 25 26$a->_ .= "e50"; 27var_dump($a->foo); 28 29$a->_--; 30var_dump($a->foo); 31 32--$a->_; 33var_dump($a->foo); 34 35$a->foo = PHP_INT_MAX; 36 37$a->_++; 38var_dump($a->foo); 39 40++$a->_; 41var_dump($a->foo); 42 43?> 44--EXPECT-- 45set(2) 46int(1) 47set(11) 48int(1) 49set(1e50) 50int(1) 51set(0) 52int(1) 53set(0) 54int(1) 55set(9.2233720368548E+18) 56int(9223372036854775807) 57set(9.2233720368548E+18) 58int(9223372036854775807) 59