__toString() METHOD in PHP

By: Andi, Stig and Derick Viewed: 153192 times  Printer Friendly Format    


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 common string operations, such as string concatenation and explicit casting to string.



Most Viewed Articles (in PHP )

Latest Articles (in PHP)

Comment on this tutorial