- assert: documentation ( source)
- printf: documentation ( source)
<?php
declare(strict_types=1);
final class Custom extends \RuntimeException
{
public static int $counter = 0;
private function __construct(string $reason)
{
parent::__construct($reason);
++self::$counter;
}
public static function reason(string $reason): self
{
return new self($reason);
}
}
printf("%d\n", Custom::$counter);
assert(true === true, Custom::reason("Should never fail"));
printf("%d (if increased, pointless throwable instantiation)\n", Custom::$counter);
try {
assert(true === false, Custom::reason("Should always fail"));
} catch (\Throwable $t) {
printf("%d (if increased, expected throwable instantiation) <%s>\n", Custom::$counter, $t->getMessage());
}
printf("%d\n", Custom::$counter);