3v4l.org

run code in 500+ PHP versions simultaneously
<?php trait PersonPL{ public function sayHello($name){ echo 'Witaj, nazywam się '.$name; } public function whereFrom($country){ echo 'Jestem z '.$country; } } trait PersonENG{ public function sayHello($name){ echo 'Hi, my name is '.$name; } public function whereFrom($country){ echo 'I am form '.$country; } } trait SayHello{ private $language = "PL"; private $listLanguages = ["PL", "ENG"]; use PersonPL, PersonENG{ PersonPL::sayHello as sayHelloPL; PersonPL::whereFrom as whereFromPL; PersonENG::sayHello as sayHelloENG; PersonENG::whereFrom as whereFromENG; } public function sayHello($name){ $this->{'sayHello'.$this->language}($name); } public function whereFrom($country){ $this->{'whereFrom'.$this->language}($country); } public function setLanguage($language){ if(in_array(strtoupper($language), $this->listLanguages)){ $this->language = $language; } } } class TestA{ use SayHello; } $objectA = new TestA(); $objectA->sayHello("Anna"); $objectA->whereFrom("Polski"); echo " Wersja ENG: "; $objectA->setLanguage("ENG"); $objectA->sayHello("Anna"); $objectA->whereFrom("Poland");
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.25, 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.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.21, 8.5.0 - 8.5.7
Witaj, nazywam się AnnaJestem z Polski Wersja ENG: Hi, my name is AnnaI am form Poland

preferences:
79.85 ms | 1580 KiB | 4 Q