assert

funkcja

Sprawdza warunek i rzuca AssertionError jeśli jest fałszywy — narzędzie do sanity-checków w czasie dewelopmentu.

assert(mixed $assertion, Throwable|string|null $description = null): bool

assert weryfikuje, czy podany warunek jest prawdziwy. Jeśli nie jest — rzuca AssertionError. W PHP 8 pierwszym argumentem jest wyrażenie bool (stary tryb ze stringiem jest przestarzały).

Kluczowa cecha: asercje można globalnie wyłączyć dyrektywą zend.assertions = -1 w php.ini. Na produkcji ustawia się ją na -1 — wtedy PHP całkowicie ignoruje wywołania assert, bez żadnego kosztu wydajnościowego. W środowisku deweloperskim zend.assertions = 1.

<?php
declare(strict_types=1);

function podziel(int $a, int $b): float {
    assert($b !== 0, 'Dzielnik nie może być zerem');
    return $a / $b;
}

echo podziel(10, 2); // 5
podziel(10, 0);
// rzuca: AssertionError: Dzielnik nie może być zerem
<?php
declare(strict_types=1);

// Asercja prawdziwa — nic się nie dzieje, zwraca true
$wynik = assert(1 + 1 === 2);
var_dump($wynik); // bool(true)

assert to narzędzie dla programisty, nie walidacja danych użytkownika. Do sprawdzania danych wejściowych używaj if z odpowiednim wyjątkiem lub walidatorem — asercji nie możesz liczyć na obecność na produkcji.