有没有办法在Codeigniter控制器中创建2个函数,其中一个函数包含参数而另一个函数不包含参数。我正在使用下面的代码,它给了我一个错误。
class example extends CI_Controller {
function show() {
#code goes here
}
function show($id) {
#code goes here
}
}
但是它显示了一个错误,函数名称不能相同。
答案 0 :(得分:10)
不,但你可以这样做:
function show($id = null)
{
if ($id === null) {
// $id was not passed
} else {
// $id was passed
}
}
答案 1 :(得分:0)
根据PHP手册而不是:
PHP不支持函数重载,也不可能取消定义或重新定义以前声明的函数。 http://php.net/manual/en/functions.user-defined.php
但是使用Runkit可以这样做:
<?php
function testme() {
echo "Original Testme Implementation\n";
}
testme();
runkit_function_redefine('testme','','echo "New Testme Implementation\n";');
testme();
?>
http://us3.php.net/manual/en/function.runkit-function-redefine.php