self::$Arg6 = 6; self::$Arg7 = 7; self::$Arg8 = 8; self::$Arg9 = 9; } private $number; private function __construct($number) { $this->number = $number; } public static function GetArgumentNumber($arg) { return $arg - 1; } } Argument::Init(); interface IDelegate { function Call(); function CallFromArray($argumentsArray); function Bind($rules); } class Delegate implements IDelegate { private $phpDelegate; private function __construct($phpDelegate) { $this->phpDelegate = $phpDelegate; } public static function CreateFromFunction($name) {