PHP - 单个数组项作为方法的参数

时间:2016-04-26 06:48:09

标签: php arrays multidimensional-array methods parameters

是否可以轻松地将数组的各个项目作为参数传递给方法?

像这样:

EDIT2:

我将代码更改为显示解决方案',此解决方案的问题是自PHP 4.1以来已弃用并在PHP 7中删除。

certificate_check

编辑:

我使用一个简单的例子犯了一个错误。我想知道这是否可能的原因不是一个返回类似字符串的函数。它是创建一个类似MVC的框架。解决方案必须全面。

3 个答案:

答案 0 :(得分:2)

使用implode()方法。

<?php
    $builder = new Builder;
    $params = array('This is number: ', 4);

    echo $builder->add($params); //returns 'This is number: 4'

    class Builder {
        public function add($params) {
            return implode('', $params);
        }
    }
?>

<强>输出

This is number: 4 

查看在线演示:Click Here

传递2个参数$params[0],$params[1]

<?php
    $builder = new Builder;
    $params = array('This is number: ', 4);

    echo $builder->add($params[0],$params[1]); //returns 'This is number: 4'

    class Builder {
        public function add($string1 ,$number1) {

            return $string1 . $number1;
        }
    }
?>

在线演示:Click Here

答案 1 :(得分:2)

如果您想坚持使用常规解决方案,只需使用正确的不推荐的方法:

echo call_user_func_array([$builder, 'add'], $params);

参考:callable

演示:https://3v4l.org/4VFi6

答案 2 :(得分:0)

这是一种更通用的方法:

只需将数组传递给函数,然后使用foreach-loop

迭代
<?php
    $builder = new Builder;
    $params = array('This is number: ', 4);

    $builder->add($params); //returns 'This is number: 4'

    class Builder {
        public function add($array) {
            foreach($array as $key => $value){
                //Do something with your values here if you want
                return $key . $value;
            }
        }
    }
?>