将数组的所有值作为参数传递给函数

时间:2014-02-11 12:12:30

标签: php arrays function arguments range

如何将PHP数组的所有值作为参数传递给函数? 我尝试过range()函数但只返回一个整数:

$obj = new Test();
$arr = array("hello", "hi", "hello");
foreach(range($arr[0], $arr[sizeof($arr)]) as $args) {
    call_user_func_array(array($obj, 'func'), $args);
}

class Test {
    public function func() {
        $args = func_get_args();
        echo $args[0]; // I want that to print "hello"
    }
}

// Warning: call_user_func_array() expects parameter 2 to be array, integer given on line 4

3 个答案:

答案 0 :(得分:0)

$obj = new Test();
$arr = array("hello", "hi", "hello");
call_user_func_array(array($obj, 'func'), $arr);

class Test {
    public function func() {
        $args = func_get_args();
        echo $args[0]; // I want that to print "hello"
    }
}

答案 1 :(得分:0)

为什么不通过数组然后在func()方法中处理它。例如

$arr = array('hello','goodbye');

$test = new Test;
$test->func($arr);

class Test {
    public function func($args) {
        echo $args[0]; // I want that to print "hello"
    }
}

答案 2 :(得分:0)

$obj = new Test();
$arr = array("hello", "hi", "hello");
$obj ->func($arr);
class Test 
{
    public function func($arr) 
    {
        foreach ($arr as $key => $value) 
        {
        echo $value."</br>";// Output all the values in array
        }
    echo $arr[0];//To print first value of array  
    }
}