解析php中如何调用用户自定义函数

yipeiwu_com6年前PHP代码库

先放上来别人的例子吧:
call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:   

复制代码 代码如下:

function a($b,$c)   
{   
echo $b;   
echo $c;   
}   
call_user_func('a', "111","222");   
call_user_func('a', "333","444");   
//显示 111 222 333 444   
?>   
  
调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:   
复制代码 代码如下:

class a {   
function b($c)   
{   
echo $c;   
}   
}   
call_user_func(array("a", "b"),"111");   
//显示 111   
?>   
  
call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰:   
复制代码 代码如下:

function a($b, $c)   
{   
echo $b;   
echo $c;   

}   
call_user_func_array('a', array("111", "222"));   
//显示 111 222   
?>   
  
call_user_func_array函数也可以调用类内部的方法的   
复制代码 代码如下:

Class ClassA   
{   

function bc($b, $c) {   
     $bc = $b + $c;   
echo $bc;   
}   
}   
call_user_func_array(array('ClassA','bc'), array("111", "222"));   

//显示 333   
?>   
 
call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:   
复制代码 代码如下:

function a($b)   
{   
$b++;   
}   
$c = 0;   
call_user_func('a', $c);   
echo $c;//显示 1   
call_user_func_array('a', array($c));   
echo $c;//显示 2  

另:call_user_func函数和call_user_func_array函数都支持引用。
复制代码 代码如下:

<?php
function increment(&$var)
{
    $var++;
}
$a = 0;
call_user_func('increment', $a);
echo $a; // 0
call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>

相关文章

PHP 开发者该知道的 5 个 Composer 小技巧

Composer 是新一代的PHP依赖管理工具。其介绍和基本用法可以看这篇《Composer PHP依赖管理的新时代》。本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带...

PHP单例模式实例分析【防继承,防克隆操作】

本文实例讲述了PHP单例模式。分享给大家供大家参考,具体如下: <?php //单列模式 // //1.普通类 // class singleton{ // } //...

php用户注册时常用的检验函数实例总结

本文实例总结了php用户注册时常用的检验函数。分享给大家供大家参考。具体分析如下: php用户注册时常用的一些常用检验函数总结,包括有检测提交的数据是否符合用户名格式,检测参数的值是否相...

PHP弹出对话框技巧详细解读

许多程序员们运用PHP语言进行WEB开发。那么在网站中通常都会遇到对话框弹出等功能需求。下面我们就为大家详细介绍PHP弹出对话框的相关实现方法。 1. PHP弹出对话框 < &...

PHP魔术方法__GET、__SET使用实例

__get()  - 读取不可访问属性的值时,__get() 会被调用。 __set()  - 在给不可访问属性赋值时,__set() 会被调用。 复制代码 代码如下: <?...