परिचय
AssertionError क्लास Error क्लास की सबक्लास है। इस प्रकार की त्रुटि तब फेंकी जाती है जब assert() FALSE लौटाता है।
assert() जांचता है कि दिया गया दावा सत्य है या असत्य, और यदि यह असत्य है तो AssertionError फेंकता है। assert() फ़ंक्शन निम्नानुसार परिभाषित है:
सिंटैक्स
PHP 5 और PHP 7 के लिए: assert ( mixed $assertion [, string $description ] ) : bool केवल PHP 7 के लिए: assert ( mixed $assertion [, Throwable $exception ] ) : bool
पैरामीटर्स
| क्र.सं. | पैरामीटर और विवरण |
|---|---|
| 1 | assertion स्ट्रिंग या बूलियन एक्सप्रेशन |
| 2 | description विफलता संदेश |
| 3 | exception (केवल PHP 7 के लिए) थ्रो करने योग्य ऑब्जेक्ट |
PHP 7.0 से, assert() अब एक भाषा कंस्ट्रक्ट है न कि फ़ंक्शन। assertion पैरामीटर अब एक एक्सप्रेशन हो सकता है और दूसरा पैरामीटर या तो एक एक्सेप्शन है, या विवरण। PHP 7.2 से, स्ट्रिंग विवरण E_DEPRECATED संदेश उत्सर्जित करता है। assert() द्वारा फेंका गया AssertionError केवल तभी catch ब्लॉक में भेजा जाएगा यदि php.ini में assert.exception=on सक्षम है।
AssertionError उदाहरण
इस उदाहरण में, हम दावा करते हैं कि शर्त सत्य है, try ब्लॉक सामान्य रूप से निष्पादित होता है। यदि यह असत्य है, तो AssertionError संदेश catch ब्लॉक से प्रदर्शित होगा।
उदाहरण
<?php
$a = 10;
$b = 20;
try {
if (assert($a == $b, "assert($a == $b) failed.")) {
echo("assert($a == $b) was successful.");
}
} catch (AssertionError $e) {
echo $e->getMessage();
}
?>
आउटपुट
assert(10 == 20) failed.
उपयोग: विकास/डीबगिंग के दौरान अपरिवर्तनीय शर्तों (invariants) को सत्यापित करने के लिए। उत्पादन में अक्षम किया जा सकता है (zend.assertions=-1 php.ini में)।