资讯专栏INFORMATION COLUMN

PHP 中 call_user_func 的使用

cyqian / 2151人阅读

摘要:函数类似于一种特别的调用函数的方法,使用方法如下第一种情况结果为此时第一个参数作为的回调函数使用。省去了实例化的过程。说到这里就不得不再看看,其实跟类似使用如下结果比看起来直观一点。而对类里面方法的使用则如下结果同样为

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

第一种情况:

function set_max($a,$b)  
{
   if($a>$b)
     echo $a;
   else
    echo $b;
}
call_user_func("set_max", "111","222");//结果为222

此时 第一个参数 set_max 作为call_user_func 的回调函数使用,$a=111,$b=222

第二种情况

class a
{
    function b($c)
    {
        echo $c ;
    }
}
$num = 200 ;
call_user_func(array("a","b"),$num);//结果为200

此时第一个参数为一个数组 那么 回调就是 a类里面的b方法,num作为参数传到b方法里面。省去了实例化a的过程。
说到这里就不得不再看看 call_user_func_array, 其实call_user_func_arraycall_user_func 类似 使用如下:

function set_max($a,$b)
{ 
   if($a>$b) 
      echo $a;
   else 
      echo $b; 
}
 call_user_func_array("set_max",array(111,222));
 //结果222

call_user_func 看起来直观一点。 而call_user_func_array 对类里面方法的使用则如下:

class test
{
    function set_max($a,$b)
   {
       if($a>$b)
          echo $a;
       else 
         echo $b;
   }
}
call_user_func_array(array("test","set_max"),array(111,222));
//结果同样为222

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29378.html

相关文章

  • Laravel学习笔记之Middleware源码解析

    摘要:学习笔记之已经聊过使用了来设计,看源码发现其巧妙用了和的一些数组函数来设计。开发环境内置函数和看源码之前,先看下这几个内置函数的使用。学习笔记之实例化源码解析已经聊过的实例化,得到中的变量,即的实例化对象。后面再学习下的源码,到时见。 说明:本文主要学习Laravel的Middleware的源码设计思想,并将学习心得分享出来,希望对别人有所帮助。Laravel学习笔记之Decorato...

    _Dreams 评论0 收藏0
  • 通过几个栗子认识 PHP 闭包

    摘要:复制一个闭包,绑定指定的对象和类作用域。匿名函数目前是通过类来实现的。 通过几个栗子认识PHP闭包 一、栗子1 用作于回调 二、栗子2 用作于变量赋值 三、栗子3 从父作用域继承变量 四、栗子4的前提条件,简单理解call_user_func_array()和call_user_func()方法 1. call_user_func — 把第一个参数作为回调函数调用 2. ca...

    马忠志 评论0 收藏0
  • Laravel学习笔记之函数处理(Function Handling)

    摘要:提供了一些函数处理操作的内置函数,主要有开发环境是调用回调函数,并把一个数组作为参数传进去作为回调函数的参数也是调用回调函数,区别是并没有要求把数组作为参数传进回调函数做参数。 说明:Laravel中经常使用PHP的Function Handling来设计代码,本文主要学习PHP的Function Handling特性,来提高写代码时的设计质量。PHP提供了一些函数处理操作的内置函数,...

    Rindia 评论0 收藏0
  • [代码审计]yii2 反序列化漏洞分析

    摘要:前言漏洞存在版本框架搭建直接去下载,修改好的,然后就可以访问了漏洞分析先看里作者的提交可以发现在里面添加了方法我们就直奔这里去看了看到这里的入口方法会进去方法,但是进去可能就了,但是这个是可以控制的,到时候我们构造 ...

    jhhfft 评论0 收藏0
  • Decorator Pattern With Laravel 装饰者模式

    摘要:装饰对象包含一个真实对象的引用装饰对象接受所有来自客户端的请求。装饰对象可以在转发这些请求以前或以后增加一些附加功能。在面向对象的设计中,通常是通过继承来实现对给定类的功能扩展。 Decorator Pattern 装饰者模式 纲要: 1. 一个初学者的疑惑 2. 装饰者模式的特点 3. 简单case掌握装饰者模式 4. laravel中装饰者模式的应用 Con...

    roundstones 评论0 收藏0

发表评论

0条评论

cyqian

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<