Trong PHP 8, giao diện Stringable mới (__toString) được thêm. Phương thức này bắt đầu bằng dấu gạch dưới kép (__). Phương thức __toString cho phép lấy biểu diễn chuỗi của đối tượng. Khi lớp định nghĩa phương thức bằng __toString, nó sẽ được gọi khi đối tượng cần được xử lý như chuỗi.
Ví dụ: Stringable Interface dùng __toString
<?php
class Employee {
public function __toString(): string {
return 'Employee Name';
}
}
$employee = new Employee();
print_r((string)$employee);
?>
Kết quả
Employee Name
Trong PHP 8, giao diện Stringable giúp dễ dàng truyền chuỗi. Giao diện Stringable tự động thêm khi lớp triển khai phương thức __toString. Không cần triển khai giao diện tường minh. Stringable interface hữu ích cho type hinting khi ép kiểu nghiêm ngặt (strict_types=1).
Ví dụ: Sử dụng Stringable Interface trong PHP 8
<?php declare(strict_types=1);
class Employee {
public function __toString() {
return 'Employee Details';
}
}
$emp = new Employee;
var_dump($emp instanceof Stringable);
?>
Kết quả
bool(true)