Переход к PHP5 Страница 19. Метод __toString()
|
Страница 19 из 20 Метод __toString() Когда переменная-объект преобразуется к строке, в результате возвращается строка "Object id #n", где n - номер объекта в глобальной таблице объектов. Если понадобится (пусть и крайне редко), этот механизм можно изменить, создав у класса метод __toString(), возвращающий некоторое строковое представление текущего объекта. Хотя PHP5 beta 3 этот алгоримт проработан не полностью (__toString() срабатывает только во время использования указателя на объект в операторе print), это открывает интересные перспективы. Например, следующий код представляет собой вариацию на тему типизации PHP: class Integer { private $value; function __construct($val) { $this->value = $val; } function __toString() { return (string)($this->value); } } $i = new Integer(10); /** Теоритически, $i при преобразовании к строке должно дать "10", и, поскольку число 10 сравнивается со строкой, оно тоже должно быть приведенно к строке. Получится "10" == "10". На практике, в этом случае преобразование $i к строке осуществляется по варианту PHP4 (т.е. в результате получаем строку "Object"). */ if (10 == $i) echo '10!!!! :-)'; |