37

次のようなエラーが発生する傾向があります。

致命的なエラー:19行目の/var/www/codes/handlers/make_a_thread/get_raw_data_list.phpでget_raw_data_list()(以前は/var/www/codes/handlers/make_a_thread/get_raw_data_list.php:7で宣言されていました)を再宣言できません

どうすればエラーを回避できますか?関数を宣言する前に関数が宣言されているかどうかを確認するIF句を作成することは可能ですか?

4

4 に答える 4

97
if(!function_exists("get_raw_data_list")) {
... define function here ...
}

http://us.php.net/function_exists

于 2009-09-05T18:50:08.600 に答える
30

関数を含むファイルを含める場合は、またはrequire_once反対include_onceに使用します。includerequire

との_once兄弟はincluderequireファイルがすでに含まれている/必要であるかどうかをPHPにチェックさせ、含まれている場合はinclude再度requireチェックしないようにします。これにより、「x関数を再宣言できません...」という致命的なエラーが発生します。

于 2009-09-05T18:49:23.220 に答える
8

function_exists」は、関数がすでに宣言されているかどうかを示します。おそらく、ファイルを複数回含めることに問題があるのではないかと思います。ファイルをインクルードするとき、require_onceまたはinclude_onceを使用していますか、それとも単にrequire / includeを使用していますか?

于 2009-09-05T18:50:15.520 に答える
5

あなたがクラスを扱っているならmethod_exists()、あなたが探しているものかもしれません:

if(!method_exists(__CLASS__, 'function_name')){
    function function_name(){

    }
}

これは、現在のクラスをチェックして、関数function_nameを宣言する前に存在しないことを確認します。

于 2012-06-16T05:09:15.473 に答える