2011-06-17 5 views
0

Je sais que je dois faire quelque chose de mal. Quand je fais cela:Pourquoi cette sortie est-elle vide?

echo '<pre>'; 
print_r($event->when); 
echo '</pre>'; 

Je reçois ceci:

Array 
(
[0] => Zend_Gdata_Extension_When Object 
    (
     [_rootElement:protected] => when 
     [_reminders:protected] => 
     [_startTime:protected] => 2011-06-16T10:00:00.000-05:00 
     [_valueString:protected] => 
     [_endTime:protected] => 2011-06-17T11:00:00.000-05:00 
     [_rootNamespace:protected] => gd 
     [_rootNamespaceURI:protected] => 
     [_extensionElements:protected] => Array 
      (
      ) 

     [_extensionAttributes:protected] => Array 
      (
      ) 

     [_text:protected] => 
     [_namespaces:protected] => Array 
      (
       [atom] => Array 
        (
         [1] => Array 
          (
           [0] => http://www.w3.org/2005/Atom 
          ) 

        ) 

       [app] => Array 
        (
         [1] => Array 
          (
           [0] => http://purl.org/atom/app# 
          ) 

         [2] => Array 
          (
           [0] => http://www.w3.org/2007/app 
          ) 

        ) 

       [gd] => Array 
        (
         [1] => Array 
          (
           [0] => http://schemas.google.com/g/2005 
          ) 

        ) 

       [openSearch] => Array 
        (
         [1] => Array 
          (
           [0] => http://a9.com/-/spec/opensearchrss/1.0/ 
          ) 

         [2] => Array 
          (
           [0] => http://a9.com/-/spec/opensearch/1.1/ 
          ) 

        ) 

       [rss] => Array 
        (
         [1] => Array 
          (
           [0] => http://blogs.law.harvard.edu/tech/rss 
          ) 

        ) 

      ) 

    ) 

) 

Je puis essayer d'obtenir startTime en faisant ceci:

$StartTime = $event->when->startTime; 

Mais je ne reçois pas quoi que ce soit.

Et pourtant, quand je fais ceci:

pr($event->published); 

Je reçois ceci:

Zend_Gdata_App_Extension_Published Object 
(
[_rootElement:protected] => published 
[_rootNamespace:protected] => atom 
[_rootNamespaceURI:protected] => 
[_extensionElements:protected] => Array 
    (
    ) 

[_extensionAttributes:protected] => Array 
    (
    ) 

[_text:protected] => 2011-06-15T03:32:14.000Z 
[_namespaces:protected] => Array 
    (
     [atom] => Array 
      (
       [1] => Array 
        (
         [0] => http://www.w3.org/2005/Atom 
        ) 

      ) 

     [app] => Array 
      (
       [1] => Array 
        (
         [0] => http://purl.org/atom/app# 
        ) 

       [2] => Array 
        (
         [0] => http://www.w3.org/2007/app 
        ) 

      ) 

    ) 

) 

et je peux le faire:

$dateAdded = $event->published->text; 
echo $dateAdded; 

et je vois une sortie ..

Répondre

2

Selon à to the official Zend_Gdata_Extension_When documentation, il y a une méthode appelée getStartTime() qui vous donnera l'heure. Si vous faites $event->when[0]->getStartTime() ou $event->when[0]->startTime, vous obtiendrez l'heure de début.

+0

Ouais- J'ai essayé cela il y a environ 6 heures ... Erreur fatale: Appel à une méthode non définie Zend_Gdata_Calendar_EventEntry :: getStartTime() – Joel

+0

Erreur fatale: Appel à une fonction membre getStartTime() sur un non-objet – Joel

+0

Mis à jour à nouveau ... I lire un peu plus et regarder le code que vous avez posté ci-dessus et quand est un tableau qui explique pourquoi mon exemple précédent ne fonctionne pas. Essayez '$ event-> quand [0] -> getStartTime()' ou peut-être même '$ event-> quand [0] -> startTime'. –

1

startTime est m arked protégé. Vous ne pouvez pas le référencer de l'extérieur comme vous l'avez fait. Il doit y avoir une fonction getter 'getStartTime()' dans cet objet qui vous permettrait de le référencer publiquement.

EDIT: En outre, il retourne un tableau d'objets - pas un seul objet, vous devez faire référence à l'comme: $event[0]->getterFunction() ou d'une boucle à travers le réseau avec un foreach accéder aux objets individuels dans la boucle

+0

Cela ne semble pas être le cas. Par exemple, je peux accéder à pr ($ event-> published); et même si le tableau dit [_rootElement: protected] => publié, je peux toujours faire $ dateAdded = $ event-> published-> text; puis echo $ dateAdded et voir le résultat. – Joel

+0

Plus loin dans les docs de classe pour cela, j'ai trouvé qu'il y a une méthode magique _get héritée de Zend_Gdata_App_Base (http://framework.zend.com/apidoc/1.9/Zend_Gdata/App/Zend_Gdata_App_Base.html#__get). D'après cela, référencer la variable protégée devrait magiquement appeler la méthode getter. Essayez 'echo $ event [0] -> startTime' (vous devriez faire référence à l'élément du tableau car il semble que vous ayez renvoyé un tableau d'objets d'événement). Ça devrait marcher je pense. –