Foros del Web » Programando para Internet » PHP »

Una duda sobre ArrayObject

Estas en el tema de Una duda sobre ArrayObject en el foro de PHP en Foros del Web. Hace poco vi esto de ArrayObject y me pareció muy interesante, supongo que es conveniente saberlo porque se maneja como objeto y cada vez más ...
  #1 (permalink)  
Antiguo 27/08/2011, 09:47
 
Fecha de Ingreso: julio-2009
Mensajes: 178
Antigüedad: 14 años, 9 meses
Puntos: 1
Una duda sobre ArrayObject

Hace poco vi esto de ArrayObject y me pareció muy interesante, supongo que es conveniente saberlo porque se maneja como objeto y cada vez más php se orienta más a objetos. He practicado un poquito con el con arrays simples pero ahora quiero hcerlo con arrays multidimencionales pero no se cómo acceder a ellos.
¿alguien me dice?
  #2 (permalink)  
Antiguo 27/08/2011, 10:20
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Una duda sobre ArrayObject

Es que la idea de ArrayObject es tratar un objeto como array, teniendo este en mente la forma de acceder es como a cualquier array multidimensional.

Código PHP:
Ver original
  1. $data = new stdClass();
  2. $data->name = 'Zend';
  3. $data->stats = array(
  4.     'downloads' => 1000,
  5.     'hits' => 10000
  6. );
  7.  
  8. $ao = new ArrayObject($data);
  9. Zend_Debug::dump($ao['name']);
  10. Zend_Debug::dump($ao['stats']['hits']);

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 27/08/2011, 11:45
 
Fecha de Ingreso: julio-2009
Mensajes: 178
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Una duda sobre ArrayObject

gracias por responder.
Entiendo lo que dices pero no le veo ninguna ventaja hacerlo así, acceder a el de la misma manera $variable['indice'][`campo`];
yo me refiero utilizando sus métodos como por ejemplo getIterator, offsetGet()

Se me ocurrió una manera pero no la veo práctica, compartiré el código
Código:
$array = array(0 => array('producto' => 'Mesa', 'color' => 'negro', 'precio' => '399'), 
               1 => array('producto' => 'Lampara', 'color' => 'Crema', 'precio' => '89'));
               
$aO = new ArrayObject($array);

print_r($aO->offsetGet(1));

echo '<hr />';
for($i = 0; $i <  $aO->count(); $i++) {
    $temp = $aO->offsetGet($i);
    echo $temp['color'].'<br />';
}
¿cuál es la manera correcta?
  #4 (permalink)  
Antiguo 27/08/2011, 12:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Una duda sobre ArrayObject

Conforme al manual, el proposito es tratar un objeto como array. No que crees un array y tratarlo como tal. Aunque se puede ingresar un array y trabajar con los metodos tambien. Pero si miras el intro del manual veras cual es el proposito principal.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 27/08/2011, 12:28
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Una duda sobre ArrayObject

Creo que no has comprendido el objetivo de la clase y deberias mirar las interfaces que implementa.

esto:
Código PHP:
Ver original
  1. print_r($aO->offsetGet(1));

es lo mismo que esto:
Código PHP:
Ver original
  1. print_r($aO[1]);

ambos disparan offsetGet.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 28/08/2011, 08:48
 
Fecha de Ingreso: julio-2009
Mensajes: 178
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Una duda sobre ArrayObject

Muchas gracias por responder
  #7 (permalink)  
Antiguo 28/08/2011, 09:50
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Una duda sobre ArrayObject

Y como seria un ejemplo simple cuando un atributo de una clase es un objeto?
ej
Código PHP:
Ver original
  1. $Usuario = new Usaurio();
  2. echo $Usuario->DatosPersonales()->getEmail();

PD: de paso festejo mis 1000 mensajes en el foro!
  #8 (permalink)  
Antiguo 28/08/2011, 11:39
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Una duda sobre ArrayObject

Es lo mismo,

Código PHP:
Ver original
  1. echo $user['profile']->getEmail();
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:31.