为具有相同名称的函数创建包装器

时间:2012-03-16 08:08:49

标签: php function override

我在cakephp-1.2核心文件中看到了一个函数。

/**
* Convenience method for header()
*
* @param string $status
* @return void
* @access public
*/
function header($status) {
  header($status);
}

请参阅https://github.com/cakephp/cakephp/blob/1.2/cake/libs/controller/controller.php#LC638

他们重新定义同名函数的原因是什么? 它会起作用吗?我认为 header 函数将创建无限递归。 我不知道如何检查它是否会产生无限递归。

1 个答案:

答案 0 :(得分:5)

请参阅代码顶部,第40行:

class Controller extends Object {

该方法为Controller::header,因此不会覆盖header。你不能“覆盖”PHP函数:你只会得到一个错误。