zoukankan      html  css  js  c++  java
  • PHP中的__toString() 是什么东西

    __toString()  是魔术方法的一种,具体用途是当一个对象被当作字符串对待的时候,会触发这个魔术方法 以下说明摘自PHP官方手册

    public string __toString ( void )

    __toString() 方法用于一个类被当成字符串时应怎样回应。例如 echo $obj; 应该显示些什么。此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR 级别的致命错误。

    Warning

    不能在 __toString() 方法中抛出异常。这么做会导致致命错误。

    Example #2 简单示例

    <?php
    // Declare a simple class
    class TestClass
    {
        public $foo;
    
        public function __construct($foo) 
        {
            $this->foo = $foo;
        }
    
        public function __toString() {
            return $this->foo;
        }
    }
    
    $class = new TestClass('Hello');
    echo $class;
    ?>

    以上例程会输出:

    Hello
    

    需要指出的是在 PHP 5.2.0 之前,__toString() 方法只有在直接使用于 echo 或 print 时才能生效。PHP 5.2.0 之后,则可以在任何字符串环境生效(例如通过 printf(),使用 %s 修饰符),但不能用于非字符串环境(如使用 %d 修饰符)。自 PHP 5.2.0 起,如果将一个未定义 __toString() 方法的对象转换为字符串,会产生 E_RECOVERABLE_ERROR 级别的错误。

  • 相关阅读:
    HDU4777 Rabbit Kingdom
    HDU6200 mustedge mustedge mustedge
    HDU6187 Destroy Walls
    最长公共上升子序列的学习
    关于约瑟夫问题的学习
    洛谷1602 Sramoc问题
    HDU2089 不要62
    poj3532 Round Numbers
    洛谷1014 Cantor表
    花盆Flowerpot[USACO12MAR]
  • 原文地址:https://www.cnblogs.com/toumingbai/p/9364982.html
Copyright © 2011-2022 走看看