Welcome to php club

PHP FAQ from PHPclub.ru: PHP5/ToString ...

Начало | Каталог | Изменения | НовыеКомментарии | Вам запрещён доступПользователи | Вам запрещён доступРегистрация | Вход:  Пароль:  

Перегруженное конвертирование объекта в строку

Краткое описание

Новый магический метод __toString() позволяет перегрузить конвертирование объекта в строку. Однако следует учесть, что данный метод вызывается только, если объект встречается напрямую в echo() или print(), в остальных случаях вызывается стандартный обработчик.
Пример:

<?php
class Foo {
    function
__toString() {
        return
'Строка';
    }
}

$o = new Foo();

echo
$o, "\n"; // __toString() вызывается
print $o; // __toString() также вызывается
echo "\n";

printf("%s\n", $o); // __toString() НЕ вызывается
$str = (string) $o; // __toString() также НЕ вызывается
echo $str, "\n";
?>

Результат:

Проблемы с обратной совместимостью

Старый код c классами без метода __toString() должен работать без изменений.

Дополнительные сведения

Описание в оригинальной документации: http://www.php.net/oop5.magic


 
Комментариев нет. [Показать комментарии/форму]