3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Animal { protected $color; protected $length; private function __construct(){} public static function fromLength($length) { $animal = new self(); $animal->length = $length; return $animal; } public static function fromColor($color) { $animal = new static(); $animal->color = $color; return $animal; } } class Dog extends Animal { } class Snake extends Animal { } $myAnimal = Animal::fromColor('red'); $mySnake = Snake::fromLength(10); $myDog = Dog::fromColor('brown'); var_dump($myAnimal); var_dump($mySnake); var_dump($myDog);
Output for git.master, git.master_jit, rfc.property-hooks
object(Animal)#1 (2) { ["color":protected]=> string(3) "red" ["length":protected]=> NULL } object(Animal)#2 (2) { ["color":protected]=> NULL ["length":protected]=> int(10) } object(Dog)#3 (2) { ["color":protected]=> string(5) "brown" ["length":protected]=> NULL }

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:
52.81 ms | 402 KiB | 8 Q