Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2009, 11:27
Avatar de Jad-Neo
Jad-Neo
 
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
Problema con jerarquía de objetos.

Buenos días compañeros del foro, fijense que tengo un problema al momento de querer hacer una clase que contenga arreglos con elementos del tipo de otra clase.

Dado que el código es brutalmente extenso, voy a resumir todo en un sencillo ejemplo. Yo tengo tres clases:

Sqlengine - Contiene todos mis métodos que van a hacer las consultas a la BD.
factura - Sólo tiene propiedades públicas y un constructor: persona, direccion, rfc e items; este último es un arreglo de la siguiente clase.
item - Igualmente sólo propiedades publicas y su constructor: nombre y costo.

Cada uno se encuentra en un archivo aparte. Resulta que en mi clase Sqlengine existe un método llamado listarFacturas, que me regresa una arreglo de objetos factura, a su vez dentro de ese método se llena el arreglo de items de cada objeto del tipo anterior.

Todo marcha bien, hasta que quiero recorrer con un foreach cada factura del arreglo devuelto por listarFacturas, y a su vez recorrer con otro foreach anidado los items de cada una.

Código PHP:
$eng = new Sqlengine();
$facs $eng->listarFacturas();
foreach (
$facs as $f) {
    echo 
$f->nombre;
    foreach (
$f->items as $i) {
        echo 
$i->costo;
    }

Asoman los siguientes mensajes:

Notice: Trying to get property of non-object...
Warning: Invalid argument supplied for foreach()...

Lo curioso es que si me imprime bien los valores, pero esos mensajes no busco como quitarlos. Localmente los podría desactivar de mi php.ini, pero en el servidor es otra historia. Si alguien sabe de una solución a mi problema se lo agradeceré mucho. Gracias de antemano.
__________________
Nunca seas sabio en tu propia opinión.