• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • call_user_method_array()

    (PHP 4 >= 4.0.5, PHP 5)

    以参数列表的数组,调用用户方法

    Warning

    This function wasDEPRECATEDin PHP 4.1.0,andREMOVEDin PHP 7.0.0.

    Alternatives to this function include:

    说明

    call_user_method_array(string $method_name,object &$obj,array $params): mixed

    参数

    $method_name

    要调用的方法名称。

    $obj

    要调用的$method_name所在的对象object。

    $params

    数组形式的一组参数。

    范例

    代替call_user_method_array()

    <?php
    call_user_func_array(array($obj, $method_name), $params);
    ?>
    

    参见

    You don't have to write a new function, <?php call_user_func_array(array($obj, $method_name), $params); ?> works pretty fine! (to my mind, 'eval' fucntion should be avoided almost all the time)
    <?php
    class a{
      function b($a,$b,$c){
        echo $a." ".$b." ".$c;
      
      }
      
      function c(Array $a, Array $b){
      
        print_r($a);
        
        echo "<br />";
        
        print_r($b);
      
      }
      
      function cuf(Array $a, Array $b){
      
        print_r($a);
        
        echo "<br />";
        
        print_r($b);
      
      }
    }
    $a = new a;
    // ### Just String Params ###
    $array = array("Musa ATALAY",":","Software Developer");
    $str = NULL;
    foreach($array AS $v){
      if(is_string($v)){
        $str.="'".$v."',";
      }else{
        $str.=$v;
      }
    }
    $str = rtrim($str,",");
    $run = "echo \$a->b(".$str.");";
    echo "<br />";
    eval($run);
    $str = NULL;
    /* 
    OUTPUT : 
    Musa ATALAY : Software Developer 
    */
    // ### With Array Params ###
    $array = array(array("Musa ATALAY",":","Software Developer"),array("Musa ATALAY",":","Software Developer"));
    foreach($array AS $i => $v){
      if(is_string($v)){
        $str.="'".$v."',";
      }else{
        $str.="\$array[".$i."],";
      }
    }
    $str = rtrim($str,",");
    $run = "echo \$a->c(".$str.");";
    echo "<br />";
    eval($run);
    /*
     OUTPUT : 
    Musa ATALAY : Software Developer
    Musa ATALAY : Software Developer
    */
    ?>
    

    上篇:__autoload()

    下篇:call_user_method()