13

スクリプトを使用するとき、error_reporting()またはini_set('error_reporting')スクリプトで使用する場合、2つの間に機能の違いはありますか?ある方法が他の方法よりも優先されますか?

価値があるのは、を使用している多くのフレームワークerror_reporting()ですが、両方のオプションは実行時にのみ設定されているように見え、スクリプトの実行後にphp.iniでデフォルトにリセットされます。

4

4 に答える 4

10

唯一の小さな機能上の違いは、設定を変更できなかったときにini_set戻り、常に古いエラー レベルを返すことです。falseerror_reporting

于 2009-12-23T20:28:18.660 に答える
8

「あなたをローマに導く 2 本の道」: ini_set('error_reporting', ) は、php.ini ファイルで設定されたパラメーターをオーバーライドします。error_reporting() はレベル番号またはレベル ID を受け取ります

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

どちらのオプションも、スクリプトの実行が終了するまで有効です。次のものは、.ini で定義された params を再び使用します。

于 2009-12-23T20:32:28.410 に答える
4

これらは機能的には同じですが、PHP 関数名を認識している IDE を使用している場合、設定しようとしているディレクティブの名前を誤ってタイプミスしないようにするための簡単な方法です。

のPHPのマニュアルエントリのerror_reporting()例のセクションから:

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
于 2009-12-23T20:26:41.690 に答える
0

また、ドキュメントには次の署名があると記載されていますerror_reportingが:

int error_reporting ([ int $level ] )

string、次のように設定して読み戻すことができるため、正確には正しくありませんini_get

error_reporting('123 hello world');

var_dump(ini_get('error_reporting'));

生成:

string(15) "123 hello world"

したがって、error_reporting($x)は と意味的に同等ですini_set('error_reporting', $x)

error_reporting()意味的に同等(int)ini_get('error_reporting')です。

于 2015-01-26T12:06:45.840 に答える