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");

preferences:
93.87 ms | 1579 KiB | 5 Q