Интерфейс Stringable
Stringable реализуется автоматически при наличии публичного __toString(), но явное объявление делает контракт заметнее.
interface Stringable { public function __toString(): string; }Назначение
Stringable позволяет принять объект, способный вернуть строковое представление. Это представление должно быть безопасным, коротким и не выбрасывать исключение.
Пример
<?php
final class OrderId implements Stringable {
public function __construct(private int $value) {}
public function __toString(): string { return (string) $this->value; }
}Ограничение
Строковое представление не обязано подходить для HTML, SQL или журнала. Контекстное экранирование выполняется в месте вывода.
Ошибка
Не используйте __toString() для тяжёлого запроса или изменяющей операции: неявный вызов станет неожиданно дорогим.
Связанные материалы
Источники и проверка
- PHP Documentation Group — структурный источник, без внешней ссылки
Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.