call_user_func和call_user_func_array

PHP 函数call_user_func和call_user_func_array用法详解 call_user_func函数是当需要动态调用函数时,才使用的,这个函数有两种用法:第一种是调用孤独的函数:复制代码 代码如下:<?phpfunction funa($b,$c){    echo $b;    echo $c;}call_user_func(‘funa’, “111”,”222″);call_user_func(‘funa’, “333”,”444″);//显示 111 222 333 444//大家有没有发现,这个用法有点像javascript中的call方法,嘿嘿?>第二种是调用类内部的函数:复制代码 代码如下:<?phpclass a {    function b( 立即下载
常用的两个回调函数的:call_user_func和call_user_func_array
mixed call_user_func ( callback function [, mixed parameter [, mixed ...]] ):
利用第一个参数回调用户的函数

利用给定函数的参数来调用一个用户定义的函数:
Call a user defined function given by the function parameter. Take the following:
例子:
function barber($type)
{
   echo "You wanted a $type haircut, no problem";
}
call_user_func('barber', "mushroom");
call_user_func('barber', "shave");

类的方法也可以通过传递参数"array(类名,方法名)"的方式静态调用.
Class methods may also be invoked statically using this function by passing array($classname, $methodname) to the function parameter.
例如:
class myclass {
   function say_hello()
   {
       echo "Hello!\n";
   }
}

$classname = "myclass";

call_user_func(array($classname, 'say_hello'));

注意:
call_user_func()的参数不是以引用的方式传递的。(???????)
Note that the parameters for call_user_func() are not passed by reference.

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
//这个例子能说明什么问题??我只看到call_user_func_array也不是以引用的方式传递的。
//并且,如果类似的把call_user_func_array('increment', array(&$a));的第二个参数
//换成:array($a)的话,$a也是不改变的。同理,如果把 call_user_func('increment', $a);
//的第二个参数换成&$a的话,$a的值也是会+1的。



mixed call_user_func_array ( callback function, array param_arr )
:Call a user function given with an array of parameters

调用一个用户定义的函数,参数以('函数名','函数参数数组')的方式定义。
Call a user defined function given by function, with the parameters in param_arr. For example:

function debug($var, $val)
{
   echo "***DEBUGGING\nVARIABLE: $var\nVALUE:";
   if (is_array($val) || is_object($val) || is_resource($val)) {
       print_r($val);
   } else {
       echo "\n$val\n";
   }
   echo "***\n";
}

$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传reference引发的思考 由php的call_user_func传reference引发的思考,使用call_user_func传reference的朋友可以参考下。 立即下载

相关推荐

禾赛PandarXT-16/阿努比LpmsIG1运行lio-sam

课题是多传感器融合,将GNSS/INS/LIDAR做融合定位导航,故考虑使用lio-sam开源算法,在此记录一下我在适配传感器数据时遇到的一些问题;

qq_44705939的博客 2960

call_user_func和call_user_func_array的用法详解

call_user_func和call_user_func_array的用法详解

risingsun001的专栏 3673

ArcGIS天地图矢量化秘籍:用重分类+ArcScan高效提取建筑轮廓线

本文详细介绍了利用ArcGIS重分类和ArcScan技术高效提取天地图建筑轮廓线的半自动化流程。通过动态中断值计算、多级重分类策略和ArcScan高级矢量化技巧,显著提升城市规划中的矢量化效率与精度,适用于中级GIS用户。

weixin_30879169的博客 475

call_user_func、call_user_func_array回调函数

call_user_func 和 call_user_func_array实际上没啥区别,call_user_func比call_func_array运行速度快。前者传参数的形式是call_user_func('回调函数名','参数1','参数2'...)后者就是('回调函数',array) 后者更规范了一些  eg:function  a( $params1,$params2 ){       ...

weixin_38128784的博客 920

常见图像加密性能评价指标(详解加python实现)

前言 本文目的 介绍一些常见的用于图像加密的评价指标并予以代码实现,方便以后做实验时参考查阅。 图像加密领域所有常见的安全分析技术汇总如下图。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7N8tbKNx-1618308894314)(%E5%B8%B8%E8%A7%81%E5%9B%BE%E5%83%8F%E5%8A%A0%E5%AF%86%E6%80%A7%E8%83%BD%E8%AF%84%E4%BB%B7%E6%8C%87%E6%A0%87/1-s2.0-S0165

z2bns的博客 3万+

软件工程:数据字典

数据字典

永远怀着至诚之心拥抱世界 4273

PHP 中 call_user_func 函数 和 call_user_func_array 函数

PHP 中 call_user_func() 函数 和 call_user_func_array()函数都是回调函数 区别: call_user_func() 可以有多个参数,第一个参数为被调用的回调函数,除了第一个参数外,其他参数均为被调用函数的参数 call_user_func_array() 只有两个参数,第一个参数为被调用的回调函数,第二个参数是要被传入回调函数的数组,这个数组必须是...

努力升级中的凡人 950

三分钟解决RKNN-Toolkit2安装失败:从模块报错到成功验证的完整记录

本文详细记录了RKNN-Toolkit2安装失败的解决方案,从环境配置到模型转换实战,特别针对常见的'No module named 'rknn''报错提供了完整修复指南。通过YOLOv8模型转换示例,展示了从ONNX到RKNN格式的完整流程,并分享了在RK3588芯片上的部署优化技巧。

html8的博客 264

java call user func_简单理解call_user_func和call_user_func_array两个函数(示例代码)

简单理解call_user_func和call_user_func_array两个函数描述call_user_func():调用一个回调函数处理字符串,可以用匿名函数,可以用有名函数,可以传递类的方法,用有名函数时,只需传函数的名称用类的方法时,要传类的名称和方法名传递的第一个参数必须为函数名,或者匿名函数,或者方法其他参数,可传一个参数,或者多个参数,这些参数会自动传递到回调函数中而回调函数,可...

weixin_36304087的博客 347

VisionPro 9.0 QuickBuild里用C#脚本调用Halcon 23.11模型,保姆级图文配置流程

本文详细介绍了如何在VisionPro 9.0 QuickBuild环境中使用C#脚本调用Halcon 23.11深度学习模型,提供从环境配置到模型集成的保姆级图文教程。重点解决图像格式转换、许可证配置等工业视觉检测中的常见问题,帮助开发者快速实现高效、稳定的视觉检测流水线部署。

weixin_27027459的博客 432

为什么你的ESXI无法识别移动硬盘?一步步教你解决USB存储挂载问题

本文深入解析了ESXi无法识别移动硬盘的根本原因,并提供了从诊断到解决的完整方案。核心在于理解ESXi的USB Arbitrator服务机制,通过检查服务状态、内核设备识别及分区表,逐步定位问题。文章详细指导了如何禁用USB仲裁服务以在主机挂载USB存储,或将其直通给虚拟机,并针对大容量硬盘、USB 3.0兼容性等进阶问题给出了实用建议。

qq_27496129的博客 331

call_user_func和call_user_func_array的差别

很多开源的PHP框架和系统,均有使用到call_user_func和call_user_func_array这两个函数,如CI、TP、discuz等等。那么,这两个函数有什么作用呢?又有什么区别呢? 两个函数都是当需要动态调用函数时用到的,函数名不确定,参数不确定的情况下用到,至于区别下面会提到。 大部分PHP都知道,调用一个函数,直接写函数名并和括号就可以了,如 1、调用没有参数的函数

森森 2266

(五)激光线扫描-位移台标定

线激光属于主动测量方式,但是由于线激光的特性,我们只能通过提取激光中心线获取这一条线上的高度信息,那么要进行三维重建的话,就需要通过平移或者是旋转的方式,来让线激光扫描被测物体的完整轮廓,也就是整个表面。激光线的密度越高还原出来的物体越细腻,但由于数据量大,也会导致速度变慢。下面以位移台为例讲解,如何标定位移台。

FlyWine的博客 2888

php call_user_func_array和call_user_func函数

call_user_func_array (PHP 4 >= 4.0.4, PHP 5) call_user_func_array-- Call a user function given with an array of parameters Description mixedcall_user_func_array( callback function, array par...

mengzuchao的专栏 920

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

call_user_func函数和call_user_func_array函数

转http://www.skygq.com/2011/02/22/call_user_func%E5%87%BD%E6%95%B0%E5%92%8Ccall_user_func_array%E5%87%BD%E6%95%B0%EF%BC%88php%EF%BC%89/ 今天偶然的情况下在CodeIgniter的官方文档中再次看到了php中的call_user_func_array

u011549541的专栏 549

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

php自定义函数call_user_func和call_user_func_array详解

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

不只是写代码的程序员 1349

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

如何使用PHP的call_user_func()和call_user_func_array()函数?

想象一下,现在你不仅仅是一个小厨师,还是一个面包店的老板。想象一下,你现在是一个小厨师,你有很多食谱(也就是函数),但是你不想去一一记住每个食谱的做法(函数的调用方法),这个时候你就可以请一个小助手(有时候,你要调用的函数有很多参数,而且这些参数已经储存在一个数组里面了,这个时候,你就可以使用。是一个很有趣的函数,它可以帮助我们调用其他函数,就像是我们请一个小助手去帮我们做某件事情一样。会把数组中的每个元素作为函数的参数传入,而不是把整个数组作为一个参数。在实际使用中,请根据你的需求来调整代码。

长风破浪会有时的博客 1005

php学习之道:call_user_func和call_user_func_array的用法

call_user_func ( callback $function [, mixed $parameter [, mixed $... ]] )  调用第一个参数所提供的用户自定义的函数。 返回值:返回调用函数的结果,或FALSE。 example : Php代码   function eat($fruit) //参数可以为多个   {

Java小迷的专栏 1826

call_user_func和call_user_func_array的区别

1.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,不知...

ahb0293的博客 179

java call user func_php函数call_user_func和call_user_func_array详解

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,不知道开发者是如何...

weixin_35661850的博客 154

php call fun array,call_user_fun和 call_user_func_array的区别

call_user_func() 执行方法,以前认为此函数是没有返回值的。如果调用的函数中没有返回值,如若我们接收了返回结果,那么会是null//先引用后增加function_call($call){//通过传参获取call_user_func传过来的参数echo$call++,'';echo$call++,"";}//上面回调函数没有返回值,所以,这里就没有返回值,_call为上面的...

weixin_34093899的博客 279

php _call call_user_func_array,PHP call_user_func和call_user_func_array函数的简单理解与应用分析...

本文实例讲述了PHP call_user_func和call_user_func_array函数的简单理解与应用。分享给大家供大家参考,具体如下:call_user_func():调用一个回调函数处理字符串,可以用匿名函数,可以用有名函数,可以传递类的方法,用有名函数时,只需传函数的名称用类的方法时,要传类的名称和方法名传递的第一个参数必须为函数名,或者匿名函数,或者方法其他参数,可传一个参数,或...

weixin_33941859的博客 284

php _call call_user_func_array,php自定义函数call_user_func和call_user_func_array详解

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,不知道开发者是如何考虑...

weixin_39805924的博客 254

php7 call user func,PHP 中 call_user_func 函数 和 call_user_func_array 函数的区别

PHP 中 call_user_func() 函数 和 call_user_func_array() 函数都是回调函数,在写接口的时候经常会用到,但是他们有什么区别呢?它们的第一个参数都是被调用的回调函数,call_user_func() 还可以有多个参数,它们都是回调函数的参数,call_user_func_array() 只有两个参数,第二个参数是要被传入回调函数的数组,这个数组得是索引数组。...

weixin_34577766的博客 193
上一篇: 实例详解$_SERVER函数中QUERY_STRING和REQUEST_URI等四个变量区别
下一篇: 能把汉字转化为拼音的一个函数
chensong0708
博客等级 码龄17年 13粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值