好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP函数call_user_func和call_user_func_array的使用 - php函

PHP函数call_user_func和call_user_func_array的使用

本文章介绍的call_user_func是PHP的内置函数,该函数允许用户调用直接写的函数并传入一定的参数,而call_user_func_array用一个数组作为参数调用一个回调函数,返回值为回调函数执行的结果或者为false,要传递参数给函数,作为一个索引数组.

call_user_func() 函数类似于一种特别的调用函数的方法,使用方法如下:

function  test( $a ,  $b ) {       echo   $a * $b ;  }  call_user_func( 'test' , 4, 5);  //---- echo 20 ----//  

函数第一个参数为用户自定义函数,第二个参数为自定义函数中的参数,调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的,代码如下:

class  test {       function  demo( $param ) {           echo   $param ;      }  }  call_user_func( array ( "test" ,  "demo" ),  "this is output result!" );  //--- echo this is output result! ---//   

call_user_func_array()函数和call_user_func()很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰,代码如下:

function  test( $b ,  $c ) {       echo   $b ;       echo   $c ;  }  call_user_func_array( 'test' ,  array ( "a" ,  "b" ));  //------echo ab ---------//   

call_user_func_array()函数也可以调用类内部的方法的,代码如下:

class  class_demo {       function  fun_demo( $param1 ,  $param2 ) {           echo   $param1  +  $param2 ;      }  }  call_user_func_array( array ( 'class_demo' ,  'fun_demo' ),  array ( "1" ,  "2" ));  //---- echo 3 -----//   

这里只是说了函数的使用方法,具体的事例可以在网上找找,代码如下:

<?php  function  debug( $var ,  $val )   {       echo   "***DEBUGGINGnVARIABLE: $varnVALUE:" ;       if  ( is_array ( $val ) ||  is_object ( $val ) ||  is_resource ( $val )) {          print_r( $val );      }  else  {           echo   "n$valn" ;      }       echo   "***n" ;  }  //开源代码phpfensi测试数据   $c  = mysql_connect();  $host  =  $_SERVER [ "SERVER_NAME" ];    call_user_func_array( 'debug' ,  array ( "host" ,  $host ));  call_user_func_array( 'debug' ,  array ( "c" ,  $c ));  call_user_func_array( 'debug' ,  array ( "_POST" ,  $_POST ));  ?>

查看更多关于PHP函数call_user_func和call_user_func_array的使用 - php函的详细内容...

  阅读:39次