3v4l.org

run code in 300+ PHP versions simultaneously
<?php interface Additive { public function getSigma($rSigma); } class Sigma { protected $_fValue = null; public function __construct($fValue) { $this->_fValue = (double)$fValue; } public static function __callStatic($sName, $rgArgs) { if(count($rgArgs)!=count(array_filter($rgArgs, function($mArg) { return is_object($mArg) && $mArg instanceof self; }))) { throw new Exception('Can not call method "'.$sName.'": invalid arguments'); } if(!count($rgArgs)) { return null; } $rResult = array_shift($rgArgs); foreach($rgArgs as $mArg) { $rResult = $rResult->$sName($mArg); } return $rResult; } public function getValue() { return $this->_fValue; } public function getSigma($rSigma) { return new self($this->getValue()+$rSigma->getValue()); } }

preferences:
39.21 ms | 402 KiB | 5 Q