Note that arrays don't implement countable. Therefore you can't force a countable parameter for a function if you want it also to work with native arrays.
El interfaz Countable
(PHP 5 >= 5.1.0)
Introducción
Las clases implementado Countable pueden ser usadas con la función count().
Sinopsis de la Interfaz
Tabla de contenidos
- Countable::count — Cuenta los elementos de un objeto
Anonymous
17-Jan-2011 06:10
isaac dot z dot foster dot nada at spamporfav dot gmail dot com
08-Jun-2010 01:18
I just want to point out that your class has to actually implement the Countable interface, not just define a count method, to be able to use count($object) and get the expected results. I.e. the first example below won't work as expected, the second will. (The normal arrow function accessor ($object->count()) will work fine, but that's not the kewl part :) )
<?php
//Example One, BAD :(
class CountMe
{
protected $_myCount = 3;
public function count()
{
return $this->_myCount;
}
}
$countable = new CountMe();
echo count($countable); //result is "1", not as expected
//Example Two, GOOD :)
class CountMe implements Countable
{
protected $_myCount = 3;
public function count()
{
return $this->_myCount;
}
}
$countable = new CountMe();
echo count($countable); //result is "3" as expected
?>
