Что такое Stringable interface?

Ответ
// PHP 8.0: интерфейс Stringable
interface Stringable {
    public function __toString(): string;
}

// Любой класс с __toString() автоматически реализует Stringable
class Name {
    public function __construct(private string $value) {}
    public function __toString(): string { return $this->value; }
}

// Type hint
function greet(string|Stringable $name): string {
    return "Hello, $name";
}

greet('World');          // OK
greet(new Name('PHP'));  // OK

Stringable реализуется неявно - не нужно писать implements Stringable. Полезен для type hint когда функция принимает строку или объект, приводимый к строке.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.