3v4l.org

run code in 300+ PHP versions simultaneously
<?php class GrandPa { protected $elements = array( 'a' => 1, 'b' => 2, ); public function mergeElements($childElements = null) { $elements = $this->elements; $parentClassName = get_parent_class($this); if($parentClassName){ $parentClass = new $parentClassName(); if($childElements){ $elements = array_merge($elements, $childElements); } return $parentClass->mergeElements($elements); } else { return array_merge($elements, $childElements); } } } class Father extends GrandPa { protected $elements = array( 'c' => 3, ); } class Me extends Father{ protected $elements = array( 'd' => 4, ); } $stime=microtime(true); for ($i=1;$i<=100000;$i++){ $me = new Me(); $me->mergeElements(); } $etime=microtime(true); echo $etime-$stime;

preferences:
33.62 ms | 402 KiB | 5 Q