3v4l.org

run code in 300+ PHP versions simultaneously
<?php class CustomerDTO { public function __construct( public string $name, public string $email, public string $role = 'NONE', ) {} } $a = new CustomerDTO('name', 'email'); $b = new CustomerDTO(name: 'name', email: 'email'); $c = new CustomerDTO(email: 'email', name: 'name'); $d = new CustomerDTO(...['name' => 'name', 'email' => 'email']); $e = new CustomerDTO(...['email' => 'email', 'name' => 'name']); $f = new CustomerDTO(...['name', 'email']); $g = new CustomerDTO('name', ...['role' => 'SOME ROLE', 'email' => 'email']); var_dump($a); var_dump($b); var_dump($c); var_dump($d); var_dump($e); var_dump($f); var_dump($g);
Output for 8.0.0, 8.1.23 - 8.1.33, 8.2.10 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
object(CustomerDTO)#1 (3) { ["name"]=> string(4) "name" ["email"]=> string(5) "email" ["role"]=> string(4) "NONE" } object(CustomerDTO)#2 (3) { ["name"]=> string(4) "name" ["email"]=> string(5) "email" ["role"]=> string(4) "NONE" } object(CustomerDTO)#3 (3) { ["name"]=> string(4) "name" ["email"]=> string(5) "email" ["role"]=> string(4) "NONE" } object(CustomerDTO)#4 (3) { ["name"]=> string(4) "name" ["email"]=> string(5) "email" ["role"]=> string(4) "NONE" } object(CustomerDTO)#5 (3) { ["name"]=> string(4) "name" ["email"]=> string(5) "email" ["role"]=> string(4) "NONE" } object(CustomerDTO)#6 (3) { ["name"]=> string(4) "name" ["email"]=> string(5) "email" ["role"]=> string(4) "NONE" } object(CustomerDTO)#7 (3) { ["name"]=> string(4) "name" ["email"]=> string(5) "email" ["role"]=> string(9) "SOME ROLE" }
Output for 7.3.0 - 7.3.25, 7.4.0 - 7.4.13
Parse error: syntax error, unexpected 'public' (T_PUBLIC), expecting variable (T_VARIABLE) in /in/u3Ig5 on line 6
Process exited with code 255.

preferences:
95.2 ms | 408 KiB | 5 Q