- microtime: documentation ( source)
- array_merge: documentation ( source)
- get_parent_class: documentation ( source)
<?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;