【问题标题】:How to echo a custom object in PHP?如何在 PHP 中回显自定义对象?
【发布时间】:2011-08-26 02:28:25
【问题描述】:

给定一个特定的类TheClass,有一个实例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,但升级不是问题。

【问题讨论】:

  • 是什么让魔法方法变得“神奇”?
  • 每次你使用它们时,大象都会长出它的獠牙......
  • @我年轻的自己——它们很神奇,因为它们在执行过程中被自动调用,而不是被开发人员明确调用

标签: php class object echo


【解决方案1】:

我认为您正在寻找print_r($foo)var_dump($foo)

【讨论】:

    【解决方案2】:

    您需要的是__toString() 魔术方法。文档中的示例应显示您需要的内容。

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

    【讨论】:

      【解决方案3】:

      是的,使用__toString魔术方法

      【讨论】:

        【解决方案4】:
        class TheClass {
            public $Name;
            public $Number;
            function MrFunction() { /* bla bla bla */ }
        
           public function __toString()
           {
             return $this->Name . ' '. $this->Number;
           }
        }
        
        
        echo $theClassInstance;
        

        【讨论】:

        • 您需要将 (string) 转换为 echo 明确为您执行此操作
        猜你喜欢
        • 2012-05-10
        • 2020-01-05
        • 1970-01-01
        • 2020-06-28
        • 2012-08-30
        • 2011-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多