0

这是我的问题,我想要一个字符串来定义我的函数参数,如下所示:

 function blabla($param1, $param2){
  my cool code . $param1 . $param2;
 }

 $params = 'param1, param2';
 blabla($params);

问题是当我这样做时,他使用字符串'param1,param2'作为一个参数,而不是像我想要的那样两个

4

5 回答 5

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);

我会再次警告您,但是您可能选择了错误的解决方案来解决您的问题。

于 2013-04-12T03:19:00.437 回答
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));
于 2013-04-12T03:19:59.900 回答
0

使用explode()php函数

function blabla($param){
  $params = explode(',', $param);
  $param1 = $params[0];
  $param2 = $params[1]; 
 }

 $params = 'param1, param2';
 blabla($params);
于 2013-04-12T03:18:03.850 回答
0

PHP 将其解释为一个参数,因为您指定了一个字符串,该字符串恰好包含一个逗号;只是为了将来要记住的事情。

于 2013-04-12T03:32:00.957 回答
0

非常简单的事情是:

function blabla($param1, $param2){
  my_cool_code . $param1 . $param2;
}

blabla($param1, $param2);

首先,函数名不能有“$”。其次,你只有 2 个参数,你可以通过函数传递这两个参数,就像上面一样。

该代码现在很好用:)

于 2013-04-12T03:50:32.580 回答