例:
Windows 環境: もともと php4.3.0 で正常に実行されていたプログラムが、4.3.1 では多くのエラーが報告されるのはなぜですか? 一般的なプロンプトは次のとおりです: Notice: Unknown varialbe: 変数名
たとえば、次のコードです。 :
コードをコピーします コードは次のとおりです:
if (!$tmp_i) {
$tmp_i=10;
}
は 4.3.0 で正常に実行されますが、通知: 未定義のプロンプトが表示されます。 4.3.1 varialbe:tmp_i で実行する場合
次の質問:
1. 問題はどこにありますか?
2. このコードはどのように変更する必要がありますか?
3. コードを変更せずに、4.3.0 の元のプログラムを 4.3.1 環境で正常に実行できるようにするにはどうすればよいですか?
解決策:
最初は。プログラムの文を追加します:
error_reporting(E_ALL & ~E_NOTICE); または error_reporting(E_ALL ^ E_NOTICE);
or
php.ini を変更する
error_reporting = E_ALL & ~E_NOTICE
error_reporting() 関数について:
error_reporting () PHP のエラーレベルを設定し、現在のレベルを返します。
; エラー報告はビット単位です。または、数値を合計して、必要なエラー報告レベルを取得します。
; E_ALL - すべてのエラーと警告
; E_ERROR - 致命的な実行時エラー
; E_PARSE - 実行時の解析エラー
;コード内のバグ、または意図的な動作 (空の文字列に自動的に初期化されるという事実に基づく初期化されていない変数の使用など) によって引き起こされる可能性があります。 E_CORE_ERROR - PHP 起動の初期化プロセス中に発生する致命的なエラー。
; E_CORE_WARNING - PHP 起動の初期化プロセス中に発生する警告 (致命的でないエラー)
; E_COMPILE_ERROR - コンパイル時の致命的なエラー
; E_USER_ERROR - ユーザー-生成されたエラー メッセージ
; E_USER_WARNING - ユーザーが生成した警告メッセージ
; E_USER_NOTICE - ユーザーが生成したリマインダー メッセージ
使用法:
error_reporting(0);//エラー レポートを無効にする
error_reporting(E_ALL ^ E_NOTICE);//すべてのエラー メッセージを表示例外 E_NOTICE
error_reporting(E_ALL^E_WARNING^E_NOTICE);//E_WARNING を除くすべてのエラー メッセージを表示します E_NOTICE
error_reporting(E_ERROR | E_WARNING | E_PARSE);//実行時エラーを表示します。error_reporting(E_ALL ^ E_NOTICE); (E_ALL);//すべてのエラーを表示します。
以上、nortonpartitionmagic の PHP 関数 error_reportingE_ALL ^ E_NOTICE の詳細な説明を、nortonpartitionmagic の内容を含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。