is_countable
funkcja
Sprawdza, czy wartość jest tablicą lub obiektem implementującym interfejs Countable, czyli czy można ją bezpiecznie przekazać do count().
is_countable(mixed $value): bool
is_countable zwraca true, gdy przekazana wartość to tablica (array) lub obiekt implementujący interfejs Countable. Funkcja pozwala uniknąć błędu TypeError, który od PHP 8.0 pojawia się przy wywołaniu count() na wartości niezliczalnej (np. null, string, int). Stosuj ją wszędzie tam, gdzie nie masz pewności co do typu danych wejściowych — np. w metodach generycznych, helperkach czy przy pracy z wynikami zewnętrznych API.
<?php
declare(strict_types=1);
function policzElementy(mixed $dane): int
{
if (!is_countable($dane)) {
throw new \TypeError('Oczekiwano tablicy lub obiektu Countable.');
}
return count($dane);
}
var_dump(policzElementy([1, 2, 3])); // int(3)
var_dump(policzElementy(new ArrayObject(['a', 'b']))); // int(2)
// policzElementy('tekst'); // rzuca TypeError
Dzięki is_countable sprawdzenie jest semantycznie trafniejsze niż is_array($dane) || $dane instanceof Countable — i robi dokładnie to samo, tyle że w jednym wywołaniu.