3v4l.org

run code in 500+ PHP versions simultaneously
<?php trait TraitName{ public function check(){ $parent = get_parent_class($this); if($parent && array_key_exists(__TRAIT__, class_uses($parent))){ echo 'Rodzic mówi: '.parent::sayHello().'.'; }else{ echo 'Rodzic nie posiada cechy '.__TRAIT__; } echo ' Obecna klasa to: '.__CLASS__; echo '. To jest działanie cechy '.__TRAIT__; } abstract public function sayHello(); } class Base{ use TraitName; protected function sayHello(){ return "'Witaj świecie!'"; } } class MyClass extends Base{ use TraitName; public function sayHello(){ return " 'Dobrze Cię widzieć stary przyjacielu!'"; } } $objBase = new Base(); $objBase->check(); $objMyClass = new MyClass(); $objMyClass->check();
Output for rfc.property-hooks, git.master, git.master_jit
Rodzic nie posiada cechy TraitName Obecna klasa to: Base. To jest działanie cechy TraitNameRodzic mówi: 'Witaj świecie!'. Obecna klasa to: MyClass. To jest działanie cechy TraitName

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
49.62 ms | 2022 KiB | 4 Q