Оглавление

Метод __toString()

Последним специальным методом, о котором будет рассказываться при рассмотрении новой объектной модели в PHP 5, является метод __toString(). Он предназначен для упрощения строкового представления сложного объекта. Если определить этот метод, PHP будет вызывать его в тех случаях, когда объект лучше всего обрабатывать как строку (например, при отображении с использованием операторов echo или print). Значение строки, возвращаемое этим методом, может принимать любую форму, однако лучше всего, чтобы оно, так или иначе, представляло сам объект. Рассмотрим листинг 22, в котором реализован метод __toString() и использованы его функциональные возможности.

 

Листинг 22.
class User {
    private $username;
    function __construct($name) {
        $this->username = $name;
    }
    public function getUserName() {
        return $this->username;
    }
    function __toString() {
        return $this->getUserName();
    }
}
$user = new User("john");
echo $user;

 

В листинге 22 определен простой класс User, который является оболочкой для простого класса учетной записи User. Этот класс содержит одно закрытое свойство $username, к которому можно обратиться, если вызвать метод getUserName() класса. Однако поскольку этот класс также реализует метод __toString() (который сам вызывает метод getUserName()), то любой экземпляр класса можно обрабатывать непосредственно как строку, что показано в операторе echo. Хотя в этом случае представлен самый простой вариант применения метода __toString(), в более сложных объектах он может эффективно использоваться для создания строкового представления в любом требуемом формате.

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити