CHAPTER 3 – __toString() METHOD
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 semantics--for 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 com- mon string operations, such as string concatenation and explicit casting to string.