Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

PHP 7.3 - La funzione is_countable()

PHP 7.3, come utilizzare la funzione is_countable() che verifica se un tipo di dato è countable (quindi enumerabile) oppure no.
PHP 7.3, come utilizzare la funzione is_countable() che verifica se un tipo di dato è countable (quindi enumerabile) oppure no.
Link copiato negli appunti

In PHP, quando si ha la necessità di contare il numero di elementi di un array o di un qualsiasi oggetto che implementa l'interfaccia Countable possiamo utilizzare la funzione count().

<?php
class Collection implements Countable
{
    private $collection = [];
    public function __construct(array $elements = [])
    {
        $this->collection = $elements;
    }
    public function count()
    {
        return count($this->collection);
    }
}
$collection = new Collection([1, 2, 3]);
echo count($collection); //stamperà 3

Non sempre però sappiamo a priori il tipo di dato che passeremo alla funzione count() e questo potrebbe sollevare un warning a runtime.

I limiti fino a PHP 7.2, prima di is_countable

Fino alla versione 7.2 di PHP per ovviare a questo problema potevamo aggiungere un check come il seguente:

if (is_array($collection) || $collection instanceof Countable) {
    //la collection è countable
    echo count($collection); //stamperà 3
}

is_countable()

Dalla versione 7.3 viene introdotta la funzione is_countable() che verifica, come ci suggerisce il nome, se un tipo di dato è countable oppure no. Il codice precedente, quindi. diventerà:

if (is_countable($collection)) {
    //la collection è countable
    echo count($collection); //stamperà 3
}

Vediamo anche alcuni esempi di utilizzo provenienti dalla RFC:

<?php
var_dump(is_countable([1, 2, 3])); // bool(true)
var_dump(is_countable(new ArrayIterator(['foo', 'bar', 'baz']))); // bool(true)
var_dump(is_countable(new ArrayIterator())); // bool(true)
var_dump(is_countable(new stdClass())); // bool(false)

Ti consigliamo anche