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; } var_dump(B::ClassConstant1); var_dump(B::ClassConstant2); var_dump(B::ClassConstant3); var_dump(B::ClassConstant4);
Output for 8.1.0 - 8.1.7
string(1) "1" string(1) "2" string(1) "3" string(1) "4"
Output for 7.4.0 - 7.4.30, 8.0.1 - 8.0.20
Fatal error: Constant expression contains invalid operations in /in/ZpJCG on line 10
Process exited with code 255.

preferences:
183.97 ms | 1395 KiB | 64 Q