In PHP 8, a new Stringable Interface (__toSting) is added. This method starts with the double underscore (__). The __toString method allows getting an object represented as a string. When a class defines a method using __toString, then it will call an object whenever it needs to treat as a string.
Example: Stringable Interface using __toString
<?php
class Employee{
public function __toString(): string
{
return 'Employee Name';
}
}
$employee = new Employee();
print_r((string)$employee);
?>Output
Employee Name
In PHP 8, the Stringable interface makes it easy to pass strings. A Stringable interface adds automatically once a class implements the __toString method. It does not require implementing the interface explicitly. The Stringable interface can be helpful for type hinting whenever strict types are imposed (string_types=1).
Example: Using Stringable Interface in PHP 8
<?php
declare(strict_types=1);
class Employee {
public function __toString() {
return 'Employee Details';
}
}
$emp = new Employee;
var_dump($emp instanceof Stringable);
?>Output
bool(true)