【问题标题】:Give arguments to function in a dynamic way以动态方式为函数提供参数
【发布时间】:2015-05-13 19:11:20
【问题描述】:

我目前正在寻找一种方法来动态地为函数提供参数。 一些代码来解释:

//Class: ClassXY
PUBLIC function function1($arg1, $arg2, $arg3);
PUBLIC function function2($arg1);

我现在这样称呼它:

// $method = 'function1' or 'function2'
echo ClassXY :: {$method}($parameter_string);   

我的问题是,parameter_string 要么是一个简单的字符串,它包含参数,要么是一个数组,其中包含我想给函数的所有参数。例如:

$parameter_string: array(3) {[0] => 'arg1', [1] => 'arg2', [2] => 'arg3' }

到目前为止一切顺利。我的问题是,该调用仅适用于 ClassXY :: function2(),因为它只需要一个参数。如果我调用ClassXY :: function2(),它将不起作用,因为它需要三个参数,但只给出一个参数(具有三个元素的数组,应该是三个参数)。我需要一种方法让 php 意识到数组的每个元素都应该是一个参数。有什么想法吗?

提前致谢!

【问题讨论】:

  • 看看可变参数函数(如果您使用的是 php 5.6):PHP 5.6 news

标签: php dynamic


【解决方案1】:

看起来call_user_func_array 是您所需要的。

http://php.net/manual/en/function.call-user-func-array.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-09
    • 2018-05-15
    • 2021-09-22
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多