这是我的问题,我希望有一个字符串来定义我的函数参数,如下所示:
function blabla($param1, $param2){
my cool code . $param1 . $param2;
}
$params = 'param1, param2';
blabla($params);
问题在于,当我这样做时,他使用字符串'param1,param2'作为一个参数而不是TWO,就像我想要2
答案 0 :(得分:4)
这是一个非常倒退的事情,但你可能会通过将你的字符串扩展为一个值数组,并使用call_user_func_array
将这些值作为参数传递给函数来实现。
function blah($x, $y) {
echo "x: $x, y: $x";
}
$xy = "4, 5";
$params = explode(", ", $xy);
# Just like calling blah("4", "5");
call_user_func_array('blah', $params);
我会再次警告你,不管你的问题是什么,你都可能选择了错误的解决方案。
答案 1 :(得分:1)
你想要怎么做,你做不到。但是,请查看call_user_func_array
,因为它可能会解决您尝试执行的操作。演示如下:
function blabla($param1, $param2){
echo "my cool code $param1 $param2";
}
$params = 'does,work';
call_user_func_array('blabla', explode(',', $params));
答案 2 :(得分:0)
使用explode()
php函数
function blabla($param){
$params = explode(',', $param);
$param1 = $params[0];
$param2 = $params[1];
}
$params = 'param1, param2';
blabla($params);
答案 3 :(得分:0)
PHP将此解释为一个参数,因为您指定了一个字符串,恰好包含一个逗号;只是要记住未来的事情。
答案 4 :(得分:0)
非常简单的是:
function blabla($param1, $param2){
my_cool_code . $param1 . $param2;
}
blabla($param1, $param2);
首先,函数名称不能包含'$'。其次,你只有2个参数,你可以通过函数传递两个参数,就像上面一样。
代码现在很好用:)