ÄúµÄλÖãºÑ°ÃÎÍøÊ×Ò³£¾±à³ÌÀÖÔ°£¾PHP ±à³Ì£¾PHP 5 Power programming
Team LiB
Previous Section Next Section

3.17. __toString() Method

Consider the following code:

class Person {
    function __construct($name)
    {
        $this->name = $name;
    }

    private $name;
}

$obj = new Person("Andi Gutmans");

print $obj;

It prints the following:
Object id #1

Unlike most other data types, printing the object's id will usually not be interesting to you. Also, objects often refer to data that should have print semanticsfor example, it might make sense that when you print an object of a class representing a person, the person's information would be printed out.

For this purpose, PHP enables you to implement a function called __toString(), which should return the string representation of the object, and when defined, the print command will call it and print the returned string.

By using __toString(), the previous example can be modified to its more useful form:

class Person {
    function __construct($name)
    {
        $this->name = $name;
    }

    function __toString()
    {
        return $this->name;
    }

    private $name;
}

$obj = new Person("Andi Gutmans");

print $obj;

It prints the following:
Andi Gutmans

The __toString() method is currently only called by the print and echo language constructs. In the future, they will probably also be called by common string operations, such as string concatenation and explicit casting to string.

    Team LiB
    Previous Section Next Section