PHP函数详解:call_user_func()使用方法

来源:互联网 发布:淘宝宝贝违规下架工商 编辑:程序博客网 时间:2024/06/01 07:43

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

01<?php
02function nowamagic($a,$b)  
03{  
04    echo $a;  
05    echo $b;  
06}  
07call_user_func('nowamagic'"111","222");  
08call_user_func('nowamagic'"333","444");  
09//显示 111 222 333 444  
10?>

调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也挺有新意的:

01<?php
02class a {  
03    function b($c)  
04    {  
05        echo $c;  
06    }  
07}  
08call_user_func(array("a""b"),"111");  
09//显示 111  
10?>  

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

1<?php
2function a($b$c)  
3{  
4    echo $b;  
5    echo $c;  
6}  
7call_user_func_array('a'array("111""222"));  
8//显示 111 222  
9?> 

call_user_func_array函数也可以调用类内部的方法的:

01<?php
02Class ClassA  
03{  
04   
05function bc($b$c) {  
06     $bc $b $c;  
07echo $bc;  
08}  
09}  
10call_user_func_array(array('ClassA','bc'), array("111""222"));  
11   
12//显示 333  
13?>  

call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:

01<?php
02function a($b)  
03{  
04    $b++;  
05}  
06$c = 0;  
07call_user_func('a'$c);  
08echo $c;//显示 1  
09call_user_func_array('a'array($c));  
10echo $c;//显示 2 
11?>

另外,call_user_func函数和call_user_func_array函数都支持引用。

01<?php
02function increment(&$var)
03{
04    $var++;
05}
06$a = 0;
07call_user_func('increment'$a);
08echo $a// 0
09call_user_func_array('increment'array(&$a)); // You can use this instead
10echo $a// 1
11?>
原创粉丝点击