3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface GoAlgorithm { public function go(); } class GoByDrivingAlgorithm implements GoAlgorithm { public function go() { echo("Now I'm driving."); } } class GoByFlying implements GoAlgorithm { public function go() { echo("Now I'm flying."); } } class GoByFlyingFast implements GoAlgorithm { public function go() { echo("Now I'm flying fast"); } } abstract class Vehicle { private $goAlgorithm; public static function setGoAlgorithm($goAlgorithm = TRUE) { return $goAlgorithm = 'GoAlgorithm'; } } class StreetRacer extends Vehicle { public function StreetRacer($goAlgorithm=TRUE) { Vehicle::setGoAlgorithm($str=new GoByDrivingAlgorithm(), $str->go()); } } class FormulaOne extends Vehicle { public function FormulaOne() { Vehicle::setGoAlgorithm($for=new GoByDrivingAlgorithm(), $for->go()); } } class Helicopter extends Vehicle { public function Helicopter() { Vehicle::setGoAlgorithm($hel=new GoByFlying(), $hel->go()); } } class Jet extends Vehicle { public function Jet() { Vehicle::setGoAlgorithm($jet=new GoByFlyingFast(), $jet->go()); } } class StartTheRace { public static function main() { $streetRacer = new StreetRacer(); $formulaone = new FormulaOne(); $helicopter = new Helicopter(); $jets = new Jet(); } } StartTheRace::main();
Output for git.master, git.master_jit, rfc.property-hooks

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