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

Hab*_*wad 1 php overriding function

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

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

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

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

lon*_*day 5

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

class Controller extends Object {
Run Code Online (Sandbox Code Playgroud)

那个方法是Controller::header,所以不要覆盖header.你不能"覆盖"PHP函数:你只会得到一个错误.

  • 好的,用标准的PHP安装覆盖功能是不可能的...... (2认同)