100 votes

Comment convertir un objet en chaîne en php

Possible Duplicate:
Équivalent PHP ToString()

comment convertir un objet en chaîne en php

En fait, je suis en train de traiter avec des API de services web. Je veux utiliser la sortie d'une API comme entrée pour une autre API. Quand j'essaie de le faire, j'obtiens une erreur comme ceci: Erreur fatale récupérable : impossible de convertir un objet de la classe std en chaîne dans C:\ ...

voici la sortie de la première API::stdClass Object ( [document_number] => 10ba60 ) maintenant je veux juste utiliser ce numéro comme entrée pour la 2ème API

print_r et _string() ne fonctionnent pas dans mon cas

96voto

Greg K Points 2566

Vous pouvez personnaliser la façon dont votre objet est représenté sous forme de chaîne en mettant en œuvre une méthode __toString() dans votre classe, de sorte que lorsque votre objet est converti en chaîne (conversion explicite en chaîne $str = (string) $myObject;, ou automatique echo $myObject), vous pouvez contrôler ce qui est inclus et le format de la chaîne.

Si vous voulez uniquement afficher les données de votre objet, la méthode ci-dessus fonctionnerait. Si vous voulez stocker votre objet dans une session ou une base de données, vous devez le sérialiser, afin que PHP sache comment reconstruire votre instance.

Voici un peu de code pour illustrer la différence :

class MyObject {

  protected $name = 'JJ';

  public function __toString() {
    return "Mon nom est : {$this->name}\n";
  }

}

$obj = new MyObject;

echo $obj;
echo serialize($obj);

Résultat :

Mon nom est : JJ

O:8:"MyObject":1:{s:7:"*name";s:2:"JJ";}

40voto

Webleeuw Points 3879

Utilisez l'opérateur de conversion (string)$votreObjet;

17voto

remi bourgarel Points 3893

Vous avez la fonction print_r, consultez la documentation.

9voto

Wolph Points 28062

Il existe un module de sérialisation d'objets, avec la fonction serialize vous pouvez sérialiser n'importe quel objet.

7voto

Dans votre cas, vous devriez simplement utiliser

$firstapiOutput->document_number

comme entrée pour le deuxième api.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X