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

count a objeto sin propiedades

Estas en el tema de count a objeto sin propiedades en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estoy consumiendo un webservice de la siguiente manera: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código php: Ver original $wsClient = new SoapClient ( $wsdlCoverage , $wsOptions ) ;   ...
  #1 (permalink)  
Antiguo 16/07/2009, 13:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 5 meses
Puntos: 102
count a objeto sin propiedades

Estoy consumiendo un webservice de la siguiente manera:
Código php:
Ver original
  1. $wsClient = new SoapClient($wsdlCoverage, $wsOptions);
  2.  
  3. $params   = array();
  4.  
  5. $products = $wsClient->getCoverage($params);
  6.  
  7. // Y tenemos
  8. var_dump($products->out->availableProducts);
  9.  
  10. // Que arroja
  11. // object(stdClass)#46 (0) {
  12. // }

Estoy provocando esto para el caso donde no hay productos disponibles. Lo que no veo es cómo "detectar" ese objeto sin propiedades para hacer algo como:
Código php:
Ver original
  1. if (count($products->out->avialableProducts) == 0) {
  2.     // Pero, ahora, count() me regresa 1
  3.     return false;
  4. }
  5.  
  6. // ...

Según la documentación, empty no vale desde PHP5 y para count() dice (con todo y el typo):
Cita:
Para objetos, si tiene SPL, enlazarlo a count() implementando la interface Countable. La interface tiene exactamente un método, count(), el cual regresa el mismo valor que regresarí la función count().
Pero este objeto no es mio ... ¿cómo podría hacerle entonces?
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #2 (permalink)  
Antiguo 16/07/2009, 14:10
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 17 años, 3 meses
Puntos: 20
Respuesta: count a objeto sin propiedades

si pruebas con get_object_vars() ? que pasa?
__________________
I see dead pixels
  #3 (permalink)  
Antiguo 16/07/2009, 14:20
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 5 meses
Puntos: 102
Respuesta: count a objeto sin propiedades

Funciona ... enredado, pero funciona
Código php:
Ver original
  1. if (count(get_object_vars($products->out->avialableProducts)) == 0) {
  2.     return false;
  3. }

... y sí, creo sería éste el único caso, pues cuando hay resultados las propiedades del objeto son públicas.

Me quedo con esto por ahora. Gracias
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 16/07/2009, 14:25
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 19 años, 6 meses
Puntos: 18
Respuesta: count a objeto sin propiedades

Creo recordar que get_object_vars() no regresaría en el array el número de propiedades privadas, si eso no afecta, puede valer. Otra opción es usar get_class_vars() y otra opción es usar reflection, tipo:

Código PHP:
$ref ReflectionClass(new algunObjeto());

echo 
count($ref->getProperties()); 
__________________
Usuario Reigistrado de linux #399288
  #5 (permalink)  
Antiguo 16/07/2009, 15:55
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 5 meses
Puntos: 102
Respuesta: count a objeto sin propiedades

Acrom: Si ves, el objeto es resultado de la consulta de un Webservice, no es una instancia de una clase definida por mi por ello get_class_vars() no aplica, por eso no puedo implementar la interfaz countable.

Sí, todas las propiedades del objeto, como mencioné en mi mensaje anterior, son o deben ser públicas ... no debería tener problemas con la sugerencia de SergeMedina, me quedo con ella por ahora.

Gracias pro el comentario
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 16/07/2009, 16:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: count a objeto sin propiedades

y si usas la opción classmap de SOAP para que te regrese unas clases propias donde implemente la interface Countable?
  #7 (permalink)  
Antiguo 16/07/2009, 16:37
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 19 años, 6 meses
Puntos: 18
Respuesta: count a objeto sin propiedades

Cita:
Iniciado por jam1138 Ver Mensaje
Acrom: Si ves, el objeto es resultado de la consulta de un Webservice, no es una instancia de una clase definida por mi por ello get_class_vars() no aplica, por eso no puedo implementar la interfaz countable.
Tienes razón, me despité allí ;)
__________________
Usuario Reigistrado de linux #399288
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 02:45.