我已经尝试了几次,但似乎没有一个回调函数可以用于我的代码。
这是我称之为杂货店的方法
public function show_courses()
{
$crud = new grocery_CRUD();
$crud->set_table('course');
$crud->set_theme('datatables');
$crud->fields('course_id','course_name','course_cordinator');
$crud->callback_after_insert(array($this, '_myfunc'));
$output = $crud->render();
$this->output($output);
}
这是回调函数:
function _myfunc($post_array,$primary_key)
{
$q = array(
"notice" => $primary_key
);
$this->db->insert('notice', $q);
return true;
}
请帮我查一下我的代码有什么问题。
答案 0 :(得分:2)
如果您使用的是PHP版本> = 5.3,那么使用匿名函数会更好。它总是有效的更好,你不必搜索找到功能,它更具可读性,你不必只使用假名称来调用它(例如_myfunc) 。所以在你的情况下你会有类似的东西:
public function show_courses()
{
$crud = new grocery_CRUD();
$crud->set_table('course');
$crud->set_theme('datatables');
$crud->fields('course_id','course_name','course_cordinator');
$crud->callback_after_insert(function ($post_array,$primary_key) {
$this->db->insert('notice', array(
"notice" => $primary_key
));
return true;
});
$output = $crud->render();
$this->output($output);
}
仅供参考,所有回调都使用PHP的call_user_func方法。因此,如果array($this, '_myfunct')
处的函数不存在,那么PHP不会抛出任何错误。这就是为什么使用匿名函数总是更好的原因。至少你知道这个方法总会运行。