web-dev-qa-db-ja.com

PHPでカスタムオブジェクトをエコーする方法

インスタンスを持つ特定のクラスfooが与えられた場合、PHP echo foo;カスタマイズされた方法で?

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

$foo = new TheClass();

echo $foo;

私が理解しているように、echoをオーバーロードすることはできません。私は$foo->MrFunction()に簡単に仕事を任せることができると思います。しかし、私はコーディングする方法があるかどうか疑問に思っています

echo $fooプリントアウト$foo->Nameおよび$foo->Number

PHPバージョン5.2.6を使用していますが、アップグレードは問題ではありません。

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

print_r($foo)またはvar_dump($foo)を探していると思います。

17
Steve Mallory

はい、 __ toString マジックメソッドを使用します

9
onteria_

必要なのは、__toString()マジックメソッドです。ドキュメントの例では、必要なものが示されているはずです。

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

8
CVM