在php中调有自定义函数,经常会用到call_user_func函数、call_user_func_array函数、call_user_func函数。

1,call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:<?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操作,在一定程度上节省了资源:<?php

class a {

function b($c)

{

echo $c;

}

}

call_user_func(array("a", "b"),"111");

//显示 111

?>

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

例如:<?php

//call_user_func_array 调用自定义函数

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

?>

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

//call_user_func函数 调用自定义函数

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类和自定义函数实例,php中三个调用用户自定义函数实例详解相关推荐

  1. linux中sort命令实例,Linux中文本处理工具之sort命令详解

    前言 sort命令将每一行作为一个单位进行比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按一定的顺序进行输出,实际上,sort命令可以被认为是一个非常强大的数据治理工具,用来治 ...

  2. crashdumpandroid_Android 中Crash时如何获取异常信息详解及实例

    Android 中Crash时如何获取异常信息详解 前言: 大家都知道,Android应用不可避免的会发生crash,无论你的程序写的多完美,总是无法完全避免crash的发生,可能是由于Android ...

  3. 父类指针指向子类实例,用父类指针调用虚函数,调用的是子类的函数还是父类的函数...

    父类指针指向子类实例,用父类指针调用虚函数,调用的是子类的函数还是父类的函数 以下程序的显示结果是什么,为什么 #include <iostream> using namespace st ...

  4. 为什么构造函数不能声明为虚函数,析构函数可以,构造函数中为什么不能调用虚函数?

    为什么构造函数不能声明为虚函数,析构函数可以,构造函数中为什么不能调用虚函数 构造函数中为什么不能调用虚函数? 第一个理由是概念上的 第二个理由是机械上的. 构造函数不能声明为虚函数的原因是 1 构造 ...

  5. lisp调用qleader端点_[分享]lisp中可用command调用的函数全集!!!!

    [分享]lisp中可用command调用的函数全集!!!! [em21] [em16] lisp中command命令可以调用的函数全集: 3D 创建三维多边形网格对象 3DARRAY 创建三维阵列 3 ...

  6. pandas使用replace函数替换dataframe中的值:replace函数对dataframe中的多个值进行替换、即一次性同时对多个值进行替换操作

    pandas使用replace函数替换dataframe中的值:replace函数对dataframe中的多个值进行替换.即一次性同时对多个值进行替换操作 目录

  7. pandas使用replace函数替换dataframe中的值:replace函数对dataframe中指定数据列的值进行替换、替换具体数据列的相关值

    pandas使用replace函数替换dataframe中的值:replace函数对dataframe中指定数据列的值进行替换.替换具体数据列的相关值 目录

  8. mysql去重函数的使用方法_MySQL中使用去重distinct方法的示例详解

    一 distinct 含义:distinct用来查询不重复记录的条数,即distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而 ...

  9. c语言常用数学函数大全查询,C语言数学函数 C语言中全部可用的数学函数有哪些?...

    导航:网站首页 > C语言数学函数 C语言中全部可用的数学函数有哪些? C语言数学函数 C语言中全部可用的数学函数有哪些? 相关问题: 匿名网友: /*--------------------- ...

最新文章

  1. ruby简单的基础 4
  2. SSIS中字符串转日期格式导入数据库
  3. iphone静音键失灵_你知道iPhone手机中哪些一般人不知道的功能?
  4. python getattr函数_Python中的getattr()函数详解
  5. 作者:熊赟,复旦大学计算机科学技术学院副教授。
  6. 一步步学习微软InfoPath2010和SP2010--第十一章节--创建批准流程(8)--提交表单操作...
  7. 基于 PostgreSQL 的 EMQ X Auth ACL
  8. nginx上传目录配置,禁止执行权限
  9. C++ 链表结构的常用操作(单链表)
  10. AWSS3文件断点下载,分片上传,断点续传
  11. 网络转型中的设备硬件形态选择初探
  12. 为什么要使用虚拟机?
  13. sql server 审核
  14. Oracle中MONTHS_BETWEEN函数的使用
  15. 贸然的对音乐版权进行维护,这种激进的方式将如何收场?
  16. 基于MITRE ATTCK的Red Teaming行动实践
  17. Java产生的历史与现状
  18. 简帛企业云智库介绍(企业知识管理系统)
  19. Scratch图形化编程等级考试简介
  20. AutoJs学习-悬浮按钮

热门文章

  1. 设计模式系列之九:职责链模式
  2. 张敬富审计百度云资源_钟平逻辑英语资源百度云
  3. Tip:创建SCOM 2012 R2报表服务器时的报错
  4. 如何分析竟争网站和优秀网站的设计风格
  5. Oracle数据库使用Navicat premium创建用户时遇到的坑
  6. 加强网站安全、重构公司的门户网站项目(C# VS2003)
  7. java基础------多线程(转)
  8. 2019-04-01
  9. OpenOCD 依赖的deb包
  10. 网页版简书界面优化小建议