zoukankan      html  css  js  c++  java
  • call_user_func

    mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )

    调用第一个参数$callback,$callback为用户自定义方法,同时可选的向该方法传递任意多个$callback方法可接受的参数$parameter

    该方法会返回$callback方法的返回值,或者执行失败时返回false

     1 <?php
     2 error_reporting(E_ALL);
     3 function increment(&$var)
     4 {
     5     $var++;
     6 }
     7 
     8 $a = 0;
     9 call_user_func('increment', $a);
    10 echo $a."\n";
    11 
    12 call_user_func_array('increment', array(&$a)); // You can use this instead before PHP 5.3
    13 echo $a."\n";
    14 /**
    15 结果
    16 0
    17 1
    18 */
    19 ?>
     1 <?php
     2 
     3 namespace Foobar;
     4 
     5 class Foo {
     6     static public function test() {
     7         print "Hello world!\n";
     8     }
     9 }
    10 
    11 call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0
    12 call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // As of PHP 5.3.0
    13 
    14 /**
    15 Hello world!
    16 Hello world!
    17 */
    18 ?>

    该函数第一个参数也可以是数组形式,数组第一个元素为$callback所在累,第二个元素为$callback

     1 <?php   
     2 class myclass {   
     3      function say_hello($name)   
     4      {   
     5          echo "Hello!$name";   
     6      }   
     7 }   
     8   
     9 $classname = "myclass";   
    10   
    11 //调用类内部的函数需要使用数组方式 array(类名,方法名)   
    12 call_user_func(array($classname, 'say_hello'), 'dain_sun');   
    13   
    14 //print Hello! dain_sun   
    15   
    16 ?>  

    call_user_func_array 函数和 call_user_func 很相似,只是 使用了数组 的传递参数形式,让参数的结构更清晰: 

    call_user_func_array callback $function array $param_arr ) 
    调用用户定义的函数,参数为数组形式。
    返回值:返回调用函数的结果,或FALSE。

     1 <?php   
     2   
     3 function debug($var, $val)   
     4 {   
     5      echo "variable: $var <br> value: $val <br>";   
     6      echo "<hr>";   
     7 }   
     8   
     9   
    10 $host = $_SERVER["SERVER_NAME"];   
    11 $file = $_SERVER["PHP_SELF"];   
    12   
    13 call_user_func_array('debug', array("host", $host));   
    14 call_user_func_array('debug', array("file", $file));   
    15   
    16   
    17 ?> 
  • 相关阅读:
    知识管理系统
    小强地狱(Bug Hell)——优先级和缺陷修改的平衡
    搜索引擎中用到的一些拆词方式解析
    TPLINK TLWR841N 路由变无线交换机设置
    .iso与.mdx(mds)格式的区别
    关于“小米盒子”等的被喷
    刚开通了博客园,以后就在这里安家吧
    温故而知新,算法在我心
    silverlight应用图片新闻展示效果
    jquery应用实现博客个性主页布局拖拽功能
  • 原文地址:https://www.cnblogs.com/gbyukg/p/2442206.html
Copyright © 2011-2022 走看看