• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ReflectionFunction::invoke()

    (PHP 5, PHP 7)

    Invokes function

    说明

    publicReflectionFunction::invoke([mixed$...]): mixed

    Invokes a reflected function.

    参数

    ...

    The passed in argument list. It accepts a variable number of arguments which are passed to the function much likecall_user_func()is.

    返回值

    Returns the result of the invoked function call.

    范例

    Example #1ReflectionFunction::invoke()example

    <?php
    function title($title, $name)
    {
        return sprintf("%s. %s\r\n", $title, $name);
    }
    $function = new ReflectionFunction('title');
    echo $function->invoke('Dr', 'Phil');
    ?>
    

    以上例程会输出:

    Dr. Phil
    

    注释

    Note:

    如果函数有参数需为引用,那么它们必须以引用方式传入。

    参见

    • ReflectionFunction::export() Exports function
    • __invoke()
    • call_user_func() 把第一个参数作为回调函数调用
    I know Reflections classes have a lot of power, but sometimes all we need is to store a annonymus function or even create a simple callback somewhere.
    so here it is, the Callback class:
    <?php
      class Callback{
        private $name = false;
        
        public function Callback($obj,$call=false){
          $name = array($obj);
          if($call) $name[] = $call;
          
          $this->name = $name;
        }
        public function invoke($params=array()){
          return call_user_func_array($this->name,$params);
        }
      }
    ?>
    Usage:
    <?php
      function sayName(){
        return "goku";
      }
      
      $myVar = new Callback("sayName");
      
      echo "Hi, I am ".$myVar->invoke()."!";
      
      //also works with methods: new Callback($obj,"method");
    ?>