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函的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31097