php 函数call_user_func() 使用方法
墨初 后端开发 2955阅读
php中有一个特别调用函数的函数call_user_func(),此函数用起来非常的绕弯,下面就针对此函数来详细的说一下吧。
php call_user_func() 使用方法

1、call_user_func() 调用普通函数的方法
示例1:直接调用一个无传入参数的函数
<?php function a(){ return 'feiniaomy.com'; } echo call_user_func('a'); // feiniaomy.com ?>
示例2:调用一个带入传入参数的函数
<?php //单个参数 function b($v){ return $v; } echo call_user_func('b','mochu'); //多个参数 function c($v,$y){ return $v.$y; } echo call_user_func('c','11','22'); ?>
示例3:调一个预定义的函数
<?php //调用函数 time() echo call_user_func('time'); ?>
示例4:调用一个匿名函数
<?php call_user_func(function($v){ echo $v; },'2222'); ?>
2、call_user_func() 调用类内的方法
示例1:
call_user_func() 调用类内的方法,使用的为 array,非常的奇特!
<?php class a{ function b($c){ return $c; } } echo call_user_func(array('a','b'),'mochu'); ?>
示例2:
<?php class Person{ public $name = "mochu"; public static function say(){ return "ok"; } public static function say2($words){ return $words; } public function name(){ return $this->name; } public function call($num){ return $num; } } $jack = new Person; //调用类的方法 echo call_user_func([$jack,"name"]); //调用类的方法带参数 echo call_user_func([$jack,"call"],'119'); //类的静态方法 echo call_user_func(['Person',"say"]); //类的静态方法带参数 echo call_user_func(['Person',"say2"],'hello world'); ?>
