Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Evitar el "notice" al recorrer objeto

Estas en el tema de Evitar el "notice" al recorrer objeto en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas, Estoy teniendo varios errores notice cuando intento acceder a una posición de un objeto que no existe. El problema es que no consigo controlar ...
  #1 (permalink)  
Antiguo 09/01/2011, 17:00
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Evitar el "notice" al recorrer objeto

Buenas,

Estoy teniendo varios errores notice cuando intento acceder a una posición de un objeto que no existe. El problema es que no consigo controlar esta excepción.

Notice: Undefined property: stdClass::$BFEvent in C:\wamp\www\test\script.php on line 135

La idea es la siguiente

Código PHP:
Ver original
  1. $getEventResp = $bf->bf_global_api->bf_get_events($sessionToken, $eventId);
  2.    
  3.     echo "<pre>";print_r($getEventResp);echo "</pre>";
  4.     echo "CONTADOR = ".count($getEventResp->Result->eventItems).'<BR/>';
  5.         $array=array();
  6.         try {
  7.             if ($getEventResp->Result->eventItems->BFEvent){
  8.                 echo "<h1>Todo correcto </h1>";
  9.             }
  10.         }catch (Exception $e) {
  11.             echo 'No existe el objeto: ',  $e->getMessage(), "\n";
  12.         }

El problema es esta linea

$getEventResp->Result->eventItems->BFEvent

No siempre el objeto eventItems tiene el BFEvent y cuando no lo tiene me da el error que veis

Notice: Undefined property: stdClass::$BFEvent in C:\wamp\www\test\script.php on line 135

No encuentro de qué manera puedo mirar si el eventItems tiene o no el BFEvent para acceder a él. Lo probé contando el objeto eventItems, pero siempre me da 1...

Se os ocurre alguna forma?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 09/01/2011, 17:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Evitar el "notice" al recorrer objeto

no siempre las excepciones sirven para validar la existencia de variables, que para eso existen isset() y empty()
Código PHP:
if ( ! empty($getEventResp->Result->eventItems->BFEvent))
{
  
// ...

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/01/2011, 17:29
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Evitar el "notice" al recorrer objeto

Cita:
Iniciado por pateketrueke Ver Mensaje
no siempre las excepciones sirven para validar la existencia de variables, que para eso existen isset() y empty()
Código PHP:
if ( ! empty($getEventResp->Result->eventItems->BFEvent))
{
  
// ...

Mil gracias pateketrueke, funcionó perfecto

Etiquetas: objeto, recorrer
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 16:55.