如何在PHP中回显自定义对象?

Gar*_*orn 17 php class object echo

给定一个具有实例foo的特定类,有没有办法以echo foo;自定义方式使用PHP ?

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

$foo = new TheClass();

echo $foo;
Run Code Online (Sandbox Code Playgroud)

据我所知,你不能超载echo,我意识到我可以很容易地$foo->MrFunction()完成这项工作.但是我想知道是否有一种方法来编码

echo $foo打印出$foo->Name$foo->Number.

我们使用的是PHP 5.2.6版,但升级不是问题.

pro*_*son 29

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

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


echo $theClassInstance;
Run Code Online (Sandbox Code Playgroud)

  • 你需要`(字符串)`强制转换为'echo`明确为你做这件事 (3认同)

Ste*_*ory 18

我想你正在寻找print_r($foo),或者var_dump($foo).


ont*_*ia_ 9

是的,使用__toString魔术方法


CVM*_*CVM 8

你需要的是__toString()神奇的方法.文档中的示例应该显示您需要的内容.

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