"value":"\n <p>As well as assertions within tests, you can also check within implementation code that things are in an expected state or contain a certain value.<\/p>\n\n<p>In PHP, this is done by throwing an Exception if a condition is met.<\/p>\n\n<p>For example:<\/p>\n\n<pre><code class=\"language-php\">if (!is_array(false)) {\n throw new \\Exception('Not an array');\n}\n<\/code><\/pre>\n\n<p>There's also the <code>assert<\/code> construct which, since PHP 8.0, throws an Exception by default:<\/p>\n\n<pre><code class=\"language-php\">assert(is_array(false));\n<\/code><\/pre>\n\n<p>You can also use an assertion library, such as <code>webmozart\/assert<\/code> or <code>beberlei\/assert<\/code> which provide assertions and guard methods:<\/p>\n\n<pre><code class=\"language-php\">use Webmozart\\Assert\\Assert;\n\nAssert::isArray(false);\n<\/code><\/pre>\n\n<p>Similarly, if the condition fails, it throws an Exception that can be caught elsewhere.<\/p>\n\n<p>As well as basic assertions such as the item is the expected type or don't match the condition, there are more complex assertions, such as all items within an array are a certain type or that an integer is positive.<\/p>\n\n<h2 id=\"here%27s-the-thing\">Here's the thing<\/h2>\n\n<p>I use guard conditions a lot within my code. If something is not as I'd expect, I like for an error to be thrown. This makes is easy to test and to debug any failures compared to failing silently.<\/p>\n\n ",
"format":"full_html",
"processed":"\n <p>As well as assertions within tests, you can also check within implementation code that things are in an expected state or contain a certain value.<\/p>\n\n<p>In PHP, this is done by throwing an Exception if a condition is met.<\/p>\n\n<p>For example:<\/p>\n\n<pre><code class=\"language-php\">if (!is_array(false)) {\n throw new \\Exception('Not an array');\n}\n<\/code><\/pre>\n\n<p>There's also the <code>assert<\/code> construct which, since PHP 8.0, throws an Exception by default:<\/p>\n\n<pre><code class=\"language-php\">assert(is_array(false));\n<\/code><\/pre>\n\n<p>You can also use an assertion library, such as <code>webmozart\/assert<\/code> or <code>beberlei\/assert<\/code> which provide assertions and guard methods:<\/p>\n\n<pre><code class=\"language-php\">use Webmozart\\Assert\\Assert;\n\nAssert::isArray(false);\n<\/code><\/pre>\n\n<p>Similarly, if the condition fails, it throws an Exception that can be caught elsewhere.<\/p>\n\n<p>As well as basic assertions such as the item is the expected type or don't match the condition, there are more complex assertions, such as all items within an array are a certain type or that an integer is positive.<\/p>\n\n<h2 id=\"here%27s-the-thing\">Here's the thing<\/h2>\n\n<p>I use guard conditions a lot within my code. If something is not as I'd expect, I like for an error to be thrown. This makes is easy to test and to debug any failures compared to failing silently.<\/p>\n\n ",