`

call_user_func_array调用实例

阅读更多
在你引进某个类文件的情况下,想调用这个类文件的时call_user_func_array函数,下面根据参数不同,贴两个实例:
PHP代码
<?php  
$func = function($arg1, $arg2) {  
return $arg1 * $arg2;  
};  
var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.0 */  
?>  
将输出:  
int(8) [1]‍  

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_array这个函数在什么情况下用?当调用某个函数时,直接new调用就行了,不是多此一举吗?

call_user_func_array和new 类名不同的区别在于:all_user_func_array的第一个参数为array('类名','方法名')的话,系统会自动为该类创建对象来直行方法,但是却不会执行__construct构造方法,相当于调用静态方法 类名::函数名(参数)调用,而new 类名的时候,会先执行构造函数。
分享到:
评论

相关推荐

    php自定义函数call_user_func和call_user_func_array详解

    `call_user_func_array`函数与`call_user_func`功能类似,但不同的是它接收一个数组作为参数,数组的每个元素依次作为回调函数的参数。这种方式比`call_user_func`更灵活,特别是当参数数量较多或者参数需要从数组中...

    PHP call_user_func和call_user_func_array函数的简单理解与应用分析

    在PHP编程语言中,`call_user_func` 和 `call_user_func_array` 是两个非常重要的函数,它们用于动态地调用用户定义的函数或方法。这两个函数允许开发者在运行时根据需求执行不同的操作,增强了代码的灵活性和可扩展...

    解析php中call_user_func_array的作用

    在第一种情况中,我们使用`call_user_func_array`直接调用一个全局函数。例如,假设有一个名为`test`的函数接收两个参数: ```php function test($a, $b) { echo '测试一:' . $a . $b; } // 使用 call_user_func...

    php中call_user_func函数使用注意事项

    最后,使用call_user_func或call_user_func_array时要确保传入的回调是有效的,并且当传入对象的方法时,对象实例必须已经创建。在使用call_user_func来调用方法时,如果方法不存在,或者传入的参数不正确,将会引发...

    PHP中call_user_func_array回调函数的用法示例

    在PHP编程中,`call_user_func_array` 是一个非常有用的函数,它允许我们动态地调用函数或类方法,同时将一个数组作为参数传递给这些可调用对象。这个函数对于处理灵活的代码结构和元编程场景特别有用,因为我们可以...

    PHP回调函数简单用法示例

    除了基本的函数调用,`call_user_func_array()` 还支持类方法的调用。类方法的调用有两种情况: - 非静态成员函数:需要先创建对象,然后将对象和方法名封装成数组传递给 `call_user_func_array()`。如果成员函数...

    php根据字符串类名生成动态对象类

    经常的需求是,由其他地方获取到一个类的名称,需要生成该类的...可以给目标类定义一个static的方法生成该对象的实例,然后通过call_user_func或call_user_func_array调用该方法。当然,也可以通过工厂类等方法来实现。

    php根据字符串类名生成动态对象类.zip

    经常的需求是,由其他地方获取到一个类的名称,需要生成... 可以给目标类定义一个static的方法生成该对象的实例,然后通过call_user_func或call_user_func_array调用该方法。当然,也可以通过工厂类等方法来实现。

    php使用字符串名称调用类.zip

    在某些情况下,可能还需要使用`call_user_func_array`函数来调用类的方法,特别是当方法需要传递动态参数时: ```php $methodName = 'myMethod'; $arguments = ['arg1', 'arg2']; if (method_exists($myInstance, ...

    PHP利用func_get_args和func_num_args函数实现函数重载实例

    首先,我们来看一个简单的例子,利用默认参数和`func_get_args()`及`call_user_func_array()`来实现函数重载: ```php function rewrite() { $args = func_get_args(); if (func_num_args() == 1) { func1($args...

    yii2行为的方法如何注入到组件类中详解

    假设有一个User类,它定义了一个__call方法,用于捕获对未定义方法的调用,并使用call_user_func_array调用其行为中的方法: ```php class User extends Component { // ...其它代码... // 定义__call方法 ...

    PHP中功能强大却很少使用的函数实例小结

    在这篇标题为“PHP中功能强大却很少使用的函数实例小结”的文章中,作者介绍了几个在PHP中可能很少被使用的函数,它们包括:call_user_func_array、call_user_func、create_function、func_get_arg、func_get_args、...

    PHP回调函数概念与用法实例分析

    首先定义了一个普通函数`f1`,然后使用`call_user_func()`和`call_user_func_array()`来调用这个函数。接着定义了一个类`A`,在类内部定义了普通方法、静态方法,并演示了如何将它们作为回调函数进行调用。特别是,...

    php中动态调用函数的方法

    此外,PHP还提供了其他与动态调用相关的特性,例如`call_user_func()`和`call_user_func_array()`函数,它们可以更直接地实现动态调用: ```php call_user_func($result, 3, 6); // 等同于上面的$result(3, 6); ...

    laravel5.1框架model类查询的实现方法

    laravel框架model类查询实现: User::where([‘uid’=8])-&gt;get(); User类继承自Model类:Illuminate\Database\Eloquent\Model 当User类静态调用where方法时,自动... return call_user_func_array([$instance, $meth

    PHP回调函数及匿名函数概念与用法详解

    这里定义了一个带有两个参数的`callback`函数,通过字符串名和`call_user_func`或`call_user_func_array`函数调用它。结果输出了两个参数的字符串。 实例1.3中演示了类方法和静态方法作为回调函数的使用。这里通过`...

    PHP callback函数使用方法和注意事项

    接着我们使用`call_user_func`函数演示了如何通过不同方式调用这些回调。类型1展示了如何通过字符串调用一个简单的函数;类型2演示了如何以数组形式调用静态类方法,数组中第一个元素是类名,第二个元素是方法名;...

Global site tag (gtag.js) - Google Analytics