3v4l.org

run code in 300+ PHP versions simultaneously
<?php class AnalyzerContainer{ public function analyze(iData $data) { switch (true) { case $data instanceof Data1: $this->_getAnalyzer1()->ananlyzeData($data); break; case $data instanceof Data2: $this->_getAnalyzer2()->ananlyzeData($data); break; default: break; }; } protected function _getAnalyzer1(/*some dependencies*/) { return new Analyzer1(); } protected function _getAnalyzer2(/*some dependencies*/) { return new Analyzer2(); } } interface iData{}; class Data1 implements iData{ public $x = 'x'; } class Data2 implements iData{ public $y = 'y'; } class Analyzer1 { public function ananlyzeData(Data1 $data){ echo $data->x; } } class Analyzer2 { public function ananlyzeData(Data2 $data){ echo $data->y; } } $container = new AnalyzerContainer(); $data1 = new Data1(); $container->analyze($data1);
Output for git.master, git.master_jit, rfc.property-hooks
x

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