PHP の一般的なエラー処理における致命的なエラー (1)----関数が定義されていません
1. エラーの種類: PHP の致命的なエラー
エラーの種類: PHP 致命的エラー
致命的なエラー: (c) 行目の (b) で未定義の関数 (a) を呼び出します
2. エラーの説明:
このエラー レポートは、未定義の関数を呼び出そうとしていることを示しています。
a---- は未定義の関数名を表します。
b----このスクリプトが表示されるパス。
c----未定義の関数を呼び出そうとしている行番号。
d----関数が 2 回目に定義されたときの行番号。
3. 原因と解決策:
理由 1: 関数を宣言していません。たとえば、次の関数を直接呼び出します
myFunction(); // ここにはそのような関数はありません
結果は以下の通りです
致命的なエラー: 1 行目で未定義関数 myFunction()in(path) を呼び出します
解決策:
この関数がプログラム内で宣言されているかどうかを注意深く確認してください。
原因 2: 関数を宣言するときに使用する名前が、関数を呼び出すときに使用する名前と異なります。たとえば、
function myFunction(){// do something}myFuntion();// ここの文字 C が 1 つ少ないです
解決策: これは、多くの初心者が犯す最も一般的な間違いです。引受、上書き、文字間違いなどにより長期間確認できない場合があります。
原因 3: 古いバージョンの PHP で新しいバージョンの PHP 組み込み関数を呼び出したときにエラーが発生しました。この PHP 組み込み関数は古いバージョンにはまったく存在しないためです。たとえば、古いバージョンの PHP で mime_content_type()
を呼び出すとします。
致命的なエラー:未定義関数 mime_content_type() の呼び出し
解決策: PHP マニュアルを開き、使用する組み込み関数がどのバージョンの PHP に適用できるかを注意深く確認してください。詳細なバージョン制限は、PHP マニュアルの各組み込み関数に記載されています。たとえば (PHP 4 >= 4.3.0、PHP 5) したがって、解決策は、PHP バージョンをアップグレードするか、同じタイプの他の組み込み関数に変更することです。
理由 4: 関数の呼び出しコードが、関数宣言とは異なるファイルに記述されています。たとえば、.php ファイルに次のようなコードを書きました
myFunction();
関数宣言は b.php にあります
function myFunction(){//何かをする}
解決策: この状況は通常、PHP 初心者が関数呼び出し時に PHP がファイルを自動的に関連付けたり参照したりしないことを忘れています。つまり、上記の状況では、a.php と b.php にはまったく関係がありません。このとき、include() などの関数を使用して 2 つを関連付ける必要があります。
理由 5: 関数の呼び出しコードが関数宣言とは別のファイルに記述されており、そのファイルも導入されています。ただし、関数呼び出しコードはインポート ファイル コードより前にあります。たとえば、a.php で関数呼び出しを実行し、b.php で関数を宣言します
a.php コード
myFunction();include('b.php');
b.php コード
関数 myFunction(){ echo '123';}
解決策: 上記のコードと同様、実行時にエラーが報告されます。 PHP は関数呼び出しを実行するときに関数の宣言を見つけることができないためです。したがって、関数宣言ファイルが導入される前に関数呼び出しを作成しないでください。もちろん、同じphpファイル内であれば、関数宣言の前に呼び出し関数を記述することもできます。
理由 6: 同じ名前を 2 回続けて使用して関数を定義した場合。たとえば、
関数 myFunction(){}
関数 myFunction(){}
結果は以下の通りです
致命的なエラー: 1 行目の myfunction()(以前に宣言された in(path):2)in(path) を再宣言できません
解決策:
すでに宣言されている関数を見つけて、それを再度定義する必要がある理由を確認してください。以前に定義したことを単に忘れていた場合は、宣言の 1 つを削除してください。もちろん、あなたの状況は複雑かもしれません。たとえば、スクリプト ファイルが非常に混乱した方法で配置されており、多数の include() やその他の関数を使用している可能性があるため、混乱したコードからアイデアを整理することが困難になります。
http://www.bkjia.com/PHPjc/477759.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477759.html技術記事 PHP 共通エラー処理の致命的エラー (1)----関数が定義されていません 1. エラーの種類: PHP 致命的エラー 致命的エラー: (b) 上の未定義の関数 (a) への呼び出し...