3v4l.org

run code in 500+ 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.34, 8.2.28 - 8.2.30, 8.3.5 - 8.3.30, 8.4.5 - 8.4.18, 8.5.0 - 8.5.3
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:
52.59 ms | 885 KiB | 4 Q