[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: __toString
ppaull
Добрый день!
Разбираюсь с магическими методами классов. Немного не понял с __toString...
Вот пример:

class man
{
public function __construct($n, $s, $f)
{
$this->name=$n;
$this->secondname=$s;
$this->family=$f;
}
public function __toString()
{
return "$this->name "."$this->family";
}

private $name;
private $secondname;
private $family;
}
$obj = new employer("Иван","Иванович","Иванов");
echo "Персона: $obj";


Почему выдает "Персона: Object id #1" - т.е. почему-то не происходит перегрузка при обращении к объекту, как к строке.
А если

echo $obj;

- то перегрузка происходит.
Заранее благодарю за помощь!



Спустя 3 минуты, 6 секунд (15.02.2010 - 14:34) ppaull написал(а):
Только при создании объекта надо:

$obj = new man("Иван","Иванович","Иванов");

Спустя 39 минут, 2 секунды (15.02.2010 - 15:13) Michael написал(а):
У меня нормально подстановка происходит. Твой пример взял.

Вот здесь:
return "$this->name "."$this->family";

кавычки поубирай, т.к. не нужны они.

Спустя 6 минут, 49 секунд (15.02.2010 - 15:20) ppaull написал(а):
спасибо.
На хостинге проверил (PHP Version 5.2.12) - там все ОК.
А локально стоит php 5.1.6 - там не перегружает (выходит в старой версии перегрузка некорректно работает)

Спустя 4 часа, 38 минут, 35 секунд (15.02.2010 - 19:58) kirik написал(а):
Цитата (ppaull @ 15.02.2010 - 07:20)
выходит в старой версии перегрузка некорректно работает

Маны, маны читать надо. Тыц:
Цитата
It is worth noting that before PHP 5.2.0 the __toString method was only called when it was directly combined with echo() or print()....

Спустя 9 минут, 50 секунд (15.02.2010 - 20:08) ppaull написал(а):
kirik спасибо - теперь все встало на свои места .... просто все маны не перечитаешь - жизни не хватит - для этого и существуют таки форумы!!!

Спустя 34 минуты, 29 секунд (15.02.2010 - 20:43) kirik написал(а):
ppaull
Все и не нужно smile.gif Только по надобности
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.