3v4l.org

run code in 300+ PHP versions simultaneously
<?php class A { private int $i = 1; public function __toString(): string { return (string)$this->i++; } } const CONSTANT = new A; class B { public const ClassConstant1 = '' . CONSTANT; public const ClassConstant2 = '' . CONSTANT; public const ClassConstant3 = '' . CONSTANT; public const ClassConstant4 = '' . CONSTANT; public const Constants = [ self::ClassConstant1, self::ClassConstant2, self::ClassConstant3, self::ClassConstant4, ]; } var_dump(B::ClassConstant4); var_dump(B::ClassConstant3); var_dump(B::ClassConstant2); var_dump(B::ClassConstant1); var_dump(B::Constants);
Output for 8.1.0 - 8.1.33, 8.2.28 - 8.2.29, 8.3.5 - 8.3.27, 8.4.5 - 8.4.14
string(1) "1" string(1) "2" string(1) "3" string(1) "4" array(4) { [0]=> string(1) "4" [1]=> string(1) "3" [2]=> string(1) "2" [3]=> string(1) "1" }
Output for 7.4.0 - 7.4.30, 8.0.1 - 8.0.20
Fatal error: Constant expression contains invalid operations in /in/dWAaW on line 10
Process exited with code 255.

preferences:
76.19 ms | 407 KiB | 5 Q