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.

📘 Naucz się w lekcji →