[prev in list] [next in list] [prev in thread] [next in thread]
List: php-general-es
Subject: Re: [PHP-ES] converrit cast entre objetos propios
From: David Blanco <dablanco () gmail ! com>
Date: 2009-02-03 10:34:06
Message-ID: ef2a89510902030234g41b059b5w1e423b06edd57c73 () mail ! gmail ! com
[Download RAW message or body]
Hola!
El día 3 de febrero de 2009 11:15, David Blanco <dablanco@gmail.com> escribió:
> - Extiende la clase ArrayObject (http://es.php.net/arrayobject) y
> redefine el método "current". Documéntalo (phpDoc) indicando que el
> objeto devuelto es de la clase que necesites. El método simplemente
> debe invocar al mismo método de su clase padre, es decir: "return
> parent::current()"
> - Cambia el bucle foreach por un iterator (un ejemplo aquí:
> http://es.php.net/manual/es/arrayobject.getiterator.php)
>
> No lo he probado pero en teoría tendría que funcionar :)
Me corrijo a mi mismo. No, no funciona porque he mezclado dos clases,
ArrayObject y ArrayIterator. El ejemplo no es tan sencillo. Habría que
escribir dos clases:
- Clase que herede de ArrayObject (MiClaseArray)
En esta habría que redefinir el método "getIterator" y con phpDoc
indicar que devuelve un objeto del tipo "MiClaseIterator". El método
invocaría al método de la clase padre (return parent::getIterator())
- Clase que herede de ArrayIterator (MiClaseIterator)
En esta habría que redefinir el método "current", como decía en el
anterior correo, y con phpDoc indicar que devuelve un objeto del tipo
"MiClase". El método invocaría al método de la clase padre (return
parent::current()).
De este modo el IDE (si utiliza phpDoc) sabría de qué tipo es el
objeto devuelto en cada iteración del bucle. Un ejemplo de código que
sí funciona:
http://pastebin.com/m6b116a60
Insisto, una locura...
PD: Perdón por el patinazo, es que a veces eso de pensar no se me da muy bien :)
Un saludo
--
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic