La extensión SPL nos permite tener objetos que actuan como array. Una forma de hacerlo es usar la clase predefinida ArrayObject. Otra forma es implementar una interfase ArrayAccess para poder acceder a nuestros datos como si fueran un array. Un ejemplo de esto
class MyArray implements ArrayAccess {
private $data;
public function __construct($array = array())
{
$this->data = $array;
}
public function offsetGet($key)
{
return $this->data[$key];
}
public function offsetSet($key, $value)
{
return $this->data[$key] = $value;
}
public function offsetExists($key)
{
return isset($this->data[$key]);
}
public function offsetUnset($key)
{
unset($this->data[$key]);
}
public function avg()
{
if (count($this->data) > 0)
{
return array_sum($this->data) / count($this->data);
}
}
}
$array = new MyArray(array(1, 2, 3, 4));
echo (int)isset($array[0]);
echo $array[0];
unset($array[1]);
echo (int)isset($array[1]); //throw an ugly notice
echo $array[1];
$array[1] = 4;
echo (int)isset($array[1]);
echo $array[1];
echo $array->avg();
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario