public static function factory($function)
    {
        $function = (string)$function;
        if (!isset(self::$functions[$function]))
            self::$functions[$function] = new self($function);
        return self::$functions[$function];
    }
public static function factory($function)
    {
        $function = (string)$function;
        if (!isset(self::$functions[$function]))
            self::$functions[$function] = new self($function);
        return self::$functions[$function];
    }
public static function factory ( $ function ) { $ function = ( string ) $ function ; if ( ! isset ( self :: $ functions [ $ function ] ) ) self :: $ functions [ $ function ] = new self ( $ function ) ; return self :: $ functions [ $ function ] ; }
Constructs a new ReflectionFunction object from function name and store it in cache.
If object already exists in cache it will taken from there instead of creating
new object

@param string $class
@return ReflectionFunction
Constructs a new ReflectionFunction object from function name and store it in cache . If object already exists in cache it will taken from there instead of creating new object