2

を設定するerror_reporting(E_ALL | E_STRICT);と、コードでUndefined variableエラーが発生します。E_STRICTそれらを解決することはできますが、厳密なチェックに合格したコードを記述してからオフにするだけで、速度やメモリ使用量に違いがあるのではないかと思います。

4

3 に答える 3

9

機械的な利点はありません。ただし、変数を使用する前に変数を常に初期化するとは限らないなど、非常に一般的で愚かなことを行うことから保護されます。onを使用するとE_STRICT、PHPは、関数が壊滅的でおそらく目に見えない方法で中断するのではなく、エラーを生成するためです。

たとえば、データベースでバックアップされたアプリケーションが、考えられるすべての実行パスによって初期化されていない変数を使用することは完全に考えられます。

// Adds an allergy to the user's records
public function Add($AllergyID) {
    $Patient = $this->Patient->Load();

    if ($Patient->Insurance->StartDate < now()) {
          $Allergies = $Patient->Allergies->Get();
          $Allergies[] = $AllergyID;
    }

    $Patient->Allergies->Set($Allergies);
}

最終的には初期化されず、誰かの医療記録テーブルが黙って切り捨てられます。

要するに、あなたは常にすべての警告を伴って開発する必要があります:それはあなたの最初の防衛線です。ただし、コードを本番環境に移行するときは、エラー報告を絶対にオフにする必要があります。悪意のあるユーザーがアプリケーションの内部動作、さらに悪いことにデータベースについての洞察を得ることを望まないでしょう。

于 2012-08-23T06:17:46.327 に答える
1

速度のメリットはありませんが、PHP5.2.0を使用している場合です。またはE_ALLを使用する前に| 開発目的のE_STRICT。

ただし、上記のPHP 5.2.0の場合、E_STRICTはE_ALL自体に含まれています。

または、error_reporting(-1);を使用できます。E_ALLに存在する場合でも、これには常にすべてが含まれます。

詳細については、以下のstackoverflowの質問を使用して ください。開発に推奨されるerror_reporting()設定は何ですか?E_STRICTはどうですか?

于 2012-08-23T06:34:53.083 に答える
0

エラーが少ないほど速度が向上します。保守性が向上します。ログがインフルエンザにならないため、メモリの強化も多分

于 2012-08-23T06:21:26.933 に答える