ホームページ  >  記事  >  バックエンド開発  >  PHP の重大な致命的なエラーの処理:php 致命的なエラー: クラスまたは関数を再宣言できません

PHP の重大な致命的なエラーの処理:php 致命的なエラー: クラスまたは関数を再宣言できません

墨辰丷
墨辰丷オリジナル
2018-05-26 10:46:192591ブラウズ

この記事では主にPHPの重大な致命的なエラーの処理について紹介します: php Fatal error: Cannot redeclare class or function, need to be Referen

1. エラーの種類: PHP Fatal error

Error type: PHP Fatal error
Fatalエラー: (c) の (d) 行目で (a) (以前に (b) で宣言された) を再宣言できません

2. エラーの説明:

このエラー レポートは、既に定義されている関数を書き直そうとしていることを示しています。再定義します。

a---- は繰り返し定義される関数名を表します。
b---- 関数が初めて定義されたときのファイル名と行番号を表します。 - 関数が 2 回目に定義されたときのファイル名
d----関数が 2 回目に定義されたときの行番号。

3. 理由と解決策:

原因:

function myFunction(){}

function myFunction(){}

などの関数を定義するために同じ名前を連続して使用します。結果は次のようになります。以下のように

致命的なエラー:1行目でmyfunction()(以前に宣言されたin(path):2)in(path)を再宣言できません

解決策:

すでに宣言されている関数を見つけて、それを再度定義する必要がある原因を確認してください。以前に定義したことを単に忘れていた場合は、宣言の 1 つを削除してください。たとえば、スクリプト ファイルが非常に混乱した方法で配置されており、多数の include() やその他の関数を使用している可能性があるため、混乱したコードからアイデアを整理することが困難になります。ただし、PHP のバージョンが比較的新しい (PHP 5.3.8 以降) 場合は、関数を繰り返し定義する必要がある状況を名前空間を使用して解決できるようです。

4 どこかでエラーが報告されます。

解決策: 2 番目の Foo を削除するか、名前を変更します。

定義の繰り返しを防ぐために、新しいクラスを定義するときに、そのクラスがすでに存在するかどうかを判断できます:


<?php 
class Foo {} 
// some code here 
class Foo {} 
?>

2) 同じクラスファイルを繰り返しインクルードします:

例: 特定のクラスファイル some_class .php、a.php

include "some_class.php";

b.php

include "some_class.php"; "a.php";

include "some_class.php";

はエラーを報告します。

解決策: 上記の include をすべて include_once に置き換えます

3) このクラスは、PHP クラス ライブラリの組み込みクラスです。

判定方法: 空のファイルに

if(class_exists(&#39;SomeClass&#39;) != true) 
{ 
 //put class SomeClass here 
}

を書きます。このとき、このクラスがPHPの組み込みクラスであることを示す「Cannot redeclare class Com」と表示されます。故障中。

さらに、Com などのあまりにも一般的なクラス名の使用は避けてください。このクラスは Linux で使用する場合は正常ですが、Windows 環境では実行できません。


私がオンラインで見つけた別の解決策を思い出してください。場合によっては役立つかもしれません

<?php 

class Com 
{ 
 

} 
?>

以上がこの記事の全内容です。

関連推奨事項:

PHP インターセプト

fatal

エラー インスタンス


php 致命的エラーをキャプチャするメソッド

php 可変変数の致命的エラー: 読み取りに [] は使用できません


以上がPHP の重大な致命的なエラーの処理:php 致命的なエラー: クラスまたは関数を再宣言できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。