3v4l.org

run code in 300+ PHP versions simultaneously
<?php trait aTrait { public static function build($x) { return new static($x); } } class A { public function __construct($x) { $this->x = $x; } use aTrait; } class B { public function __construct($x) { $this->x = $x * 2; } use aTrait; } $a = A::build(2); $b = B::build(2); var_dump($a); var_dump($b);
Output for 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
Deprecated: Creation of dynamic property A::$x is deprecated in /in/BogSt on line 12 Deprecated: Creation of dynamic property B::$x is deprecated in /in/BogSt on line 20 object(A)#1 (1) { ["x"]=> int(2) } object(B)#2 (1) { ["x"]=> int(4) }
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33
object(A)#1 (1) { ["x"]=> int(2) } object(B)#2 (1) { ["x"]=> int(4) }

preferences:
155.53 ms | 408 KiB | 5 Q