2011-12-13 71 views
4

我见过很多人提到call_user_func()的用法来调试Grocery_CRUD回调中的问题,但不幸的是,没有人提供了一个完整的例子来实际地如何使用它,比如在何处发出呼叫到控制器中的测试功能[just_a_test()]我试图发现的一个例子是here调试Grocery_CRUD回调

我无法明白的地方我们称这个

  1. just_a_test()
  2. 我们如何能够通过使用call_user_func(array($this,'insert_coupon_codes'));所需的参数时,有没有对的被传递到just_a_test()
  3. insert_coupon_codes怎么能得到想要的段?

回答

1

Grocery CRUD从库中自动添加参数。你不能(直到现在在版本1.1.8)在你的回调中添加更多参数。

更新:在杂货店CRUD的最新版本,现在你需要,你可以通过许多参数。这是PHP从PHP 5.4或更高版本提供的功能。更具体地说与use关键字。更具体地讲,如果你有回调callback_after_insert: 通常你会使用这样的:

$crud->callback_after_insert(function ($post_array,$primary_key) { 
    // Your code here 
}); 

从PHP 5.4及以后的版本,你可以添加与use更多的参数,以便例如,你可以有:

$my_variable = 'test'; 
$another_variable = 'hello'; 
$crud->callback_after_insert(function ($post_array,$primary_key) use ($my_variable, $another_variable) { 
    // Now you can use the variables $my_variable and $another_variable at your callback 
}); 
+0

是否有可能在最新版本中这样做? – cMinor

+1

是的,你可以。查看更新的答案:) –