2012-03-16 19 views
1

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を参照してください何をしてもよい、彼らは同じ名前の関数を再定義している理由は? これは動作しますか?私はヘッダー関数が無限再帰を作成すると思います。 無限再帰を作成するかどうかをチェックする方法がわかりません。

class Controller extends Object { 

方法はとてもheaderを上書きすることはありません、Controller::headerすなわち:

答えて

5

はライン40、コードの先頭を参照してください。 PHP関数を「オーバーライド」することはできません。単にエラーが発生します。

+0

より正確には、 'header'と衝突しません。 – Jon

+0

@ジョン私はちょうど明確にしようとした点! – lonesomeday

+0

これは正しい答えですが、オーバーライド機能が可能です - http://stackoverflow.com/questions/2326835/redefine-built-in-php-functions –

関連する問題