PHP 8.6.0 Beta 1 is available for testing

Интерфейс Stringable

(PHP 8)

Введение

Интерфейс Stringable обозначает класс, который реализует метод __toString(). В отличие от большинства интерфейсов, Stringable неявно присутствует в каждом классе, в котором определили магический метод __toString(), хотя интерфейс разрешается и требуется объявлять явно.

Основное значение интерфейса — разрешить функциям выполнять проверку типа на соответствие объединённым типам string|Stringable, чтобы принимать либо строковый примитив, либо объект, который можно преобразовать в строку.

Обзор интерфейса

interface Stringable {
/* Методы */
public function __toString (): string
}

Примеры работы с интерфейсом Stringable

Пример #1 Пример базовой реализации интерфейса Stringable

<?php
class IPv4Address implements Stringable
{
 public function __construct(
 private string $oct1,
 private string $oct2,
 private string $oct3,
 private string $oct4,
 ) {}
 public function __toString(): string
 {
 return "$this->oct1.$this->oct2.$this->oct3.$this->oct4";
 }
}
function showStuff(string|Stringable $value)
{
 // При выводе значения с типом Stringable неявно вызывается магический метод __toString
 print $value;
}
$ip = new IPv4Address('123', '234', '42', '9');
showStuff($ip);
?>

Вывод приведённого примера будет похож на:

123.234.42.9

Содержание

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /