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


PHP - Individual array items as parameters for method

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

这样:

编辑2:

我更改了我的代码以显示"解决方案",该解决方案的问题在于它自 PHP 4.1 起被弃用并在 PHP 7 中删除。

<?php
    $builder = new Builder;
    $params = array('This is number: ', 4);
    echo call_user_method_array('add', $builder, $params);
    class Builder {
        public function add($string1, $number1) {
            return $string1 . $number1;
        }
    }
?>

编辑:

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

如果你想坚持你的通用解决方案,只需使用正确的非弃用方法:

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

参考: callable

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

使用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 

查看在线演示 : 点击这里

传递 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;
        }
    }
?>

在线演示 : 点击这里

这是一个更通用的方法:

只需将数组传递给函数并使用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;
            }
        }
    }
?>