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;
}
}
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.