3v4l.org

run code in 300+ PHP versions simultaneously
<?php class ManagerSupervisorV1 { private string $name; private float $salary; public function __construct(string $name = 'Руководитель менеджеров', float $salary = 1.5) { $this->name = $name; $this->salary = $salary; } } var_dump(new ManagerSupervisorV1); class ManagerSupervisorV2 { private string $name = 'Руководитель менеджеров'; private float $salary = 1.5; public function __construct(string $name = null, float $salary = null) { $this->name = $this->name ?: $name; $this->salary = $this->salary ?: $salary; } } var_dump(new ManagerSupervisorV2); class ManagerSupervisorV3 { public function __construct( private string $name = 'Руководитель менеджеров', private float $salary = 1.5, ) {} } var_dump(new ManagerSupervisorV3);
Output for 8.4.1 - 8.4.12
Deprecated: ManagerSupervisorV2::__construct(): Implicitly marking parameter $name as nullable is deprecated, the explicit nullable type must be used instead in /in/SAXOb on line 19 Deprecated: ManagerSupervisorV2::__construct(): Implicitly marking parameter $salary as nullable is deprecated, the explicit nullable type must be used instead in /in/SAXOb on line 19 object(ManagerSupervisorV1)#1 (2) { ["name":"ManagerSupervisorV1":private]=> string(45) "Руководитель менеджеров" ["salary":"ManagerSupervisorV1":private]=> float(1.5) } object(ManagerSupervisorV2)#1 (2) { ["name":"ManagerSupervisorV2":private]=> string(45) "Руководитель менеджеров" ["salary":"ManagerSupervisorV2":private]=> float(1.5) } object(ManagerSupervisorV3)#1 (2) { ["name":"ManagerSupervisorV3":private]=> string(45) "Руководитель менеджеров" ["salary":"ManagerSupervisorV3":private]=> float(1.5) }
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25
object(ManagerSupervisorV1)#1 (2) { ["name":"ManagerSupervisorV1":private]=> string(45) "Руководитель менеджеров" ["salary":"ManagerSupervisorV1":private]=> float(1.5) } object(ManagerSupervisorV2)#1 (2) { ["name":"ManagerSupervisorV2":private]=> string(45) "Руководитель менеджеров" ["salary":"ManagerSupervisorV2":private]=> float(1.5) } object(ManagerSupervisorV3)#1 (2) { ["name":"ManagerSupervisorV3":private]=> string(45) "Руководитель менеджеров" ["salary":"ManagerSupervisorV3":private]=> float(1.5) }

preferences:
56.93 ms | 410 KiB | 5 Q