ссылаясь на этот пост метод php 5.1.6 magic __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()
какие другие методы я должен переопределить, чтобы объект правильно отображался в контексте конкатенации строк/и т. д.
в настоящее время я получаю что-то вроде
echo 'Hello ' . $yourObject;
выдает «Hello Object ID 55»;
у кого-нибудь есть решение в контексте:
- клиент не хочет обновлять свою версию php
- не разбрызгивая __toString повсюду
?