将变量传递给codeigniter中的回调函数

时间:2014-02-03 08:49:22

标签: php codeigniter-2

在codeigniter中,将变量传递给回调函数的正确方法是什么? 我用过这个,

$var1 = 'some conditions';
$this->form_validation->set_rules("callback__is_value_unique[value, $var1]");

public function _is_value_unique($value, $var1){
echo $var1;
die;
}

这给了我如下所示的输出: -

值,某些条件

而不是

某些条件

2 个答案:

答案 0 :(得分:1)

你必须只设定你的价值!

$var1 = 'some conditions';
$this->form_validation->set_rules("callback__is_value_unique[value, $var1]");

public function _is_value_unique($value, $var1){
echo $var1;
die;
}

答案 1 :(得分:1)

来自文档..

  

如果您需要在回调函数中接收额外参数,   只需在方括号之间的函数名后添加它,   如:" callback_foo [bar]",然后它将作为第二个传递   你的回调函数的参数。

听起来你只能传递一个额外的参数。哪个应该是一个字符串。如果你想传递更多的参数,你可以将它们存储在其他地方,只需传递一个参数,该参数存储附加参数的位置。

$index = count($this->arguments);
$this->arguments[$index] = array('value', 'some conditions'/*, ...*/);
$this->form_validation->set_rules("callback__is_value_unique[$index]");

public function _is_value_unique($value, $index){
    $args = $this->argumts[$index];
    echo $args[1];
    die;
}