ссылка этого поста php 5.1.6 magic __toString methodPHP ToString не вызывается, когда конкатенация используются
class YourClass
{
public function __toString()
{
return $this->name;
}
}
PHP < 5.2.0
$yourObject = new YourClass();
echo $yourObject; // this works
printf("%s", $yourObject); // this does not call __toString()
echo 'Hello ' . $yourObject; // this does not call __toString()
echo 'Hello ' . $yourObject->__toString(); // this works
echo (string)$yourObject; // this does not call __toString()
что других методов я должен переопределить получить объект для правильного отображения в контексте конкатенатов строк/etc
В настоящее время я получаю что-то вроде
echo 'Hello ' . $yourObject;
производит 'Hello Object ID 55';
кто имеет решение в контексте:
- клиент не хочет, чтобы обновить их версии PHP
- не брызгать __toString повсюду
?
PHP <5.3 больше не поддерживается. Вам предлагается перейти на более новую версию. – Gordon
@ Gordon пожелаю, чтобы я мог поддержать ваш комментарий еще пару миллионов раз;) – Phil
Зачем это получило голос? это хороший вопрос +1 – Ibu