PHP 5.6.0RC3 is available

Countable::count

(PHP 5 >= 5.1.0)

Countable::countCuenta los elementos de un objeto

Descripción

abstract public int Countable::count ([ int $mode = COUNT_NORMAL ] )

Este método se ejecuta cuando se utiliza la función count() sobre un objeto que implemente la interfaz Countable.

Parámetros

mode

El parámetro opcional mode será establecido a COUNT_NORMAL o COUNT_RECURSIVE, dependiendo del valor pasado al segundo parámetro de count(). Esto es particularmente útil para contar todos los elementos de una combinación de array multidimensional/Countable.

Valores devueltos

El recuento personalizado como un integer.

Nota:

El valor devuelto se convierte en integer.

Historial de cambios

Versión Descripción
5.6.0 Se añadió el parámetro opcional mode.

Ejemplos

Ejemplo #1 Ejemplo de Countable::count()

<?php
class miContador implements Countable {
    private 
$cuenta 0;
    public function 
count() {
        return ++
$this->cuenta;
    }
}

$contador = new miContador;

for(
$i=0$i<10; ++$i) {
    echo 
"He contado usando count() " count($contador) . " veces\n";
}
?>

El resultado del ejemplo sería algo similar a:

He contado usando count() 1 veces
He contado usando count() 2 veces
He contado usando count() 3 veces
He contado usando count() 4 veces
He contado usando count() 5 veces
He contado usando count() 6 veces
He contado usando count() 7 veces
He contado usando count() 8 veces
He contado usando count() 9 veces
He contado usando count() 10 veces

add a note add a note

User Contributed Notes 2 notes

up
0
tarsis at tarsisdelima dot com
1 day ago
I think it should be like:

class Foo implements Countable
{
    public function count()
    {
       return 1;
    }
}

class Boo implements Countable
{
    public function count()
    {
       return 2;
    }
}

$foo = new Foo;
$boo = new Boo;

echo $foo + $boo;
// Equals to 3
up
-1
SenseException
4 months ago
Even though Countable::count method is called when the object implementing Countable is used in count() function, the second parameter of count, $mode, has no influence to your class method.

$mode is not passed to  Countable::count:

<?php

class Foo implements Countable
{
    public function
count()
    {
       
var_dump(func_get_args());
        return
1;
    }
}

count(new Foo(), COUNT_RECURSIVE);

?>

var_dump output:

array(0) {
}
To Top