php函数 call_user_func
UCenter源代码里有一个函数call_user_func,开始以为是自己定义的函数,结果到处都找不到。后来才知道call_user_func是PHP的内置函数,该函数允许用户调用直接写的函数并传入一定的参数,下面总结下这个函数的使用方法。
call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:
<?php
function nowamagic($a,$b)
{ echo $a; echo $b;
}
call_user_func('nowamagic', "111","222");
call_user_func('nowamagic', "333","444");
//显示 111 222 333 444
?>
调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也挺有新意的:
<?php
class a { function b($c) { echo $c; }
}
call_user_func(array("a", "b"),"111");
//显示 111
?>
call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰:
<?php
function a($b, $c)
{ echo $b; echo $c;
}
call_user_func_array('a', array("111", "222"));
//显示 111 222
?>
call_user_func_array函数也可以调用类内部的方法的:
<?php
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函数都支持引用,这让他们和普通的函数调用更趋于功能一致:
<?php
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
?>
转自:http://www.nowamagic.net/librarys/veda/detail/1509/
转载于:https://www.cnblogs.com/mljun/p/5557170.html
php函数 call_user_func相关推荐
- PHP函数call_user_func和call_user_func_array详解
今天在群里面,有个叫lewis的在问call_user_func_array的用法,因为之前一直没有用过,也不能说什么,于是看一下手册,发现是这么写的: call_user_func_array (P ...
- 【PHP注入01】PHP语言常见可注入函数(eval、assert、preg_replace、call_user_func、$a($b)等)
目录 1 PHP注入概述 2 相关函数与语言结构 2.1 eval()函数 2.2 assert()函数 2.3 preg_replace()函数 2.4 call_user_func()函数 2.5 ...
- php调用字符串函数参数,如何从包含参数的变量中存储的字符串调用PHP函数
我从这里找到了问题.但我需要用参数调用函数名.我需要能够调用一个函数,但是函数名存储在一个变量中,这是可能的吗?例如: function foo ($argument) { //code here } ...
- PHP中处理函数的函数(Function Handling Functions)
2019独角兽企业重金招聘Python工程师标准>>> call_user_func_array - 让参数以数组的形式调用一个函数 call_user_func - 调用一个存在的 ...
- php强大的函数,PHP中一些功能强大却很少使用的函数
本文主要介绍了PHP中功能强大却很少使用的函数,结合实例形式总结分析了php中非常实用的几个函数,包括函数的调用.注册.调用.判断等操作技巧.需要的朋友可以参考下,希望对大家有所帮助. 具体如下: c ...
- PHP中功能强大却少使用的函数 -- 为你提供更多的思路
call_user_func_array - 让参数以数组的形式调用一个函数 call_user_func - 调用一个存在的函数 create_function - 建立一个函数 func_get_ ...
- php的内置函数strrpos_PHP函数用法详解【初始化、嵌套、内置函数等】
本文实例讲述了PHP函数用法.分享给大家供大家参考,具体如下: 初始函数 函数:封装一段用于完成特定功能的代码. 通俗理解函数:可以完成魔鬼工作的代码块,就像积木一样,可以反复使用,在使用的时候,拿来 ...
- PHP常用系统函数帅哥特供版
[TOC] PHP常用系统函数帅哥特供版 常用操作 定界符 <<<EOF内容EOF; 1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西: 2.在PHP定界符 ...
- php绕过d盾,巧用匿名函数绕过D盾
之前看了smile大佬的webshell绕过,跟着smile大佬的思路,自己来挖掘了一下绕过D盾的方式 这篇文章中,smile大佬提到了非常多的绕过D盾方式,我就不重复了,我在这里主要是利用了匿名函数 ...
- thinkphp学习笔记13-15集
13集: ThinkPHP3.1.3使用视频教程--后台登录验证与自动运行方法_标清.flv 14集: ThinkPHP3.1.3使用视频教程--自定义SESSION处理DB驱动与添加Redis处理驱 ...
最新文章
- easyui动态增加datagrid列_多工作表动态合并,其实很简单
- 公开处刑:PapersWithCode上线“论文复现报告”,遏制耍流氓行为!
- 传iPhone 4S下月初开卖
- 实战篇 | 基于freeRTOS的多任务事件传输demo(附代码)
- 【Java】生成UUID
- Report20201016 benchmark vs袁颖 PANTHER初步模拟结果
- Eclipse没有server 配置Tomcat
- 2012年1月份第2周51Aspx源码发布详情
- mysql以user1登录_在mysql中创建用户后不能本地登录的解决方法
- GLTF格式——关系描述
- Linux怎么添加交换空间,如何在Ubuntu上增加swap交换空间
- React Native 系列(三) -- 项目结构介绍
- 使用微信机器人实现华为OLT和中兴OLT挂测的简单功能
- 传统IT架构转型,从云原生平台到微服务应用构建
- 易语言文件夹加密解密助手
- 实战项目-小说网站开发过程中难点记录(1)
- python实现爬取网易云音乐评论,并且将评论信息存储到pymysql
- JS逆向加密——AES加密解密
- java 英文字符占几个字节_Java的字符串里的字符到底占几个字节?
- html字体加粗且变色,简单的html代码 加粗 加亮 字型加大 变色 分别是写什么`