3v4l.org

run code in 300+ PHP versions simultaneously
<?php class namedClass{ protected $prop; public function __construct($value){ $this->prop = $value; } public function returnProperty($propName){ if( !empty($this->$propName) ){ return $this->$prop; }else{ return null; } } } $standardObject = new namedCLass('The named class'); echo $standardObject->returnProperty('prop')."\n"; class namedExtension extends namedClass{ public function returnProperty($propName){ if( !empty($this->$propName) ){ return $this->$prop.' from standard extenstion'; }else{ return null; } } } $extObject = new namedExtension('The named extension'); echo $extObject->returnProperty('prop')."\n"; $anonObj = new class('The anonymous class') extends namedClass{ public function returnProperty($propName){ if( !empty($this->$propName) ){ return $this->$prop.' from anonymous class'; }else{ return null; } } }; echo $newObj->returnProperty();
Output for git.master, git.master_jit, rfc.property-hooks
Warning: Undefined variable $prop in /in/YXMYd on line 16 Warning: Undefined property: namedClass::$ in /in/YXMYd on line 16 Warning: Undefined variable $prop in /in/YXMYd on line 38 Warning: Undefined property: namedExtension::$ in /in/YXMYd on line 38 from standard extenstion Warning: Undefined variable $newObj in /in/YXMYd on line 72 Fatal error: Uncaught Error: Call to a member function returnProperty() on null in /in/YXMYd:72 Stack trace: #0 {main} thrown in /in/YXMYd on line 72
Process exited with code 255.

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:
55.65 ms | 401 KiB | 8 Q