web-dev-qa-db-fra.com

Comment faire écho à un objet personnalisé dans PHP?

Compte tenu d'une classe particulière avec une instance FOO, y a-t-il un moyen d'avoir PHP echo foo; De manière personnalisée?

class TheClass {
    public $Name;
    public $Number;
    function MrFunction() { /* bla bla bla */ }
}

$foo = new TheClass();

echo $foo;

Si je comprends bien, vous ne pouvez pas surcharger echo et je me rends compte que je pourrais facilement avoir $foo->MrFunction() faire le travail. Cependant, je me demande s'il y a un moyen de coder dans lequel

echo $foo Imprime $foo->Name Et $foo->Number.

Nous utilisons version php 5.2.6 mais la mise à niveau n'est pas un problème.

19
Garet Claborn
class TheClass {
    public $Name;
    public $Number;
    function MrFunction() { /* bla bla bla */ }

   public function __toString()
   {
     return $this->Name . ' '. $this->Number;
   }
}


echo $theClassInstance;
29
prodigitalson

Je pense que vous recherchez print_r($foo) ou var_dump($foo).

17
Steve Mallory

Oui, en utilisant la méthode de magie __ tostring

9
onteria_

Ce dont vous avez besoin est la méthode __toString() méthode magique. L'exemple dans les documents doit montrer ce dont vous avez besoin.

http://www.php.net/manual/fr/language.oop5.magic.php#language.oop5.magic.tostring :

8
CVM