Assert()は、PHPで非常にユニークで有用な機能であり、主にデバッグとコード検証に使用されます。その目的は、アサーションを行うことであり、式の結果が虚偽の場合、エラーまたは警告がスローされます。通常、開発中のプログラムの仮定が真実であるかどうかを検出し、コードが操作中に予想される動作を満たしていることを確認するために使用されます。
PHPでは、 Assert()関数を使用して、特定の式が真であるかどうかを確認します。アサーションが失敗した場合、通常はコードのデバッグに使用される警告(またはエラー)が投げられます。
assert(mixed $assertion): bool;
$アサーション: trueまたはfalseを返す式。
返品値:Assertがtrueの場合、 Assert()がtrueを返し、それ以外の場合はFalseを返します。
<?php
$x = 10;
assert($x > 5); // このアサーションが保持されます,警告がトリガーされていません
assert($x < 5); // アサーションは失敗しました,警告をトリガーします
?>
この例では、 Assert($ x> 5)が正常に渡され、アサート($ x <5)が警告をトリガーします。
ASSERT()関数の動作は、PHP構成ファイルPHP.iniに設定することで変更できます。たとえば、カスタムハンドラーをセットアップするか、アサーションを有効または無効にすることができます。一般的な構成オプションは次のとおりです。
このオプションは、アサーションを有効または無効にするために使用されます。 1に設定することにより、アサーションが有効になり、 0に設定することを意味します。
zend.assertions = 1 // アサーションを有効にします
Assert()が有効になっている場合、アサーションがスローされない場合。 1に設定すると、アサーションの障害がAssertionErrorの例外を投げかけます。
assert.exception = 1 // アサーションが失敗したときに例外をスローします
コードの仮定を検証するために、開発中にアサーションが使用されることがよくあります。彼らは、プログラムが実行されるまで待つのではなく、開発者が潜在的な問題を早期に見つけるのを助けることができます。たとえば、関数の入力パラメーターが予想どおりであることを確認してください。
function divide($a, $b) {
assert($b != 0, '除数はゼロにすることはできません');
return $a / $b;
}
この例では、 Assert()は$ Bがゼロかどうかを確認します。もしそうなら、アサーションが失敗し、エラーがスローされます。
単体テストでは、 ASSTER()を使用して、関数またはメソッドの動作が予想どおりであることを確認できます。たとえば、関数は常に正の値を返す必要があります。
function getPositiveNumber($num) {
assert($num > 0, '返品値は正の数でなければなりません');
return $num;
}
Assert()は、パフォーマンスを最適化するためにも使用できます。特定の特定の条件下で操作が冗長である場合、不必要な計算や処理を避けるために、これらの条件がアサーションによって満たされるかどうかを確認できます。
アサーションが失敗すると、PHPは構成に応じて異なる動作をします。デフォルトでは、失敗したアサーションは、次のフォームと同様の警告メッセージをトリガーします。
Warning: assert(): Assertion failed in /path/to/file.php on line X
assert.exceptionが1に設定されている場合、 Assertionerrorの例外がスローされ、開発者は例外処理でそれをキャッチできます。
try {
assert($x > 5); // アサーションは失敗しました会抛出异常
} catch (AssertionError $e) {
echo 'アサーションは失敗しました: ' . $e->getMessage();
}
また、PHPにより、アサート()のエラー処理メカニズムを通じてアサーションが失敗した場合、動作をより詳細に制御することができます。 assert_callbackを使用してコールバック関数を設定し、アサーションが失敗したときに呼び出すことができます。
assert_options(ASSERT_CALLBACK, function ($file, $line, $code) {
echo "アサーションは失敗しました:書類 $file,第 $line わかりました,コード $code";
});
これにより、assert()の出力方法が失敗したときにカスタマイズされ、開発者が問題をよりよく見つけることができます。
生産環境では、通常、パフォーマンスに影響を与える可能性があるため、アサーションをオンにすることはお勧めしません。生産環境では、 php.ini構成ファイルを変更することにより、アサーションを無効にすることができます。
zend.assertions = -1 // アサーションを無効にします
このようにして、 Assert()はプログラムの実行に影響を与えず、パフォーマンスの損失を回避します。
アサーションは単なる開発時間ツールであり、生産環境では無効にする必要があります。
アサーション自体はプログラムのロジックに影響を与えず、デバッグ中に検証ツールとしてのみ使用されます。
アサーションが失敗すると、エラーメッセージの詳細の程度は構成によって異なります。
Assert()関数は、PHPの非常に便利なデバッグツールであり、開発者が開発中に期待を満たさない潜在的なエラーや行動をキャッチするのに役立ちます。合理的な構成と使用を通じて、 Assert()はコードの信頼性を向上させるだけでなく、開発プロセス中のエラーポジショニングを最適化することもできます。ただし、プログラムのパフォーマンスが影響を受けないようにするために、生産環境でアサーションを無効にする必要があることに注意する必要があります。