Я иду по курсу удеми, где мы изучили toString, однако в моем браузере ничего не отображается, когда я использую функцию toString.
<?php
class Baddie{
//property
public $evilness = 10;
public $name = "";
//constructor
public function __construct($evilness, $name){
//echo "A ". __CLASS__ . " has been created!";
$this->evilness = $evilness;
$this->name = $name;
}
public function __toString(){
return (string)$this->name;
}
}
$bad = new Baddie(3, "bob");
//var_dump($bad);
?>
Вот скриншот
Хром: http://prntscr.com/bl941w
заранее спасибо!
Вы только что создали новый объект Baddie
, но __toString
метод никогда не вызывается. Метод вызывается только если вы вызываете их напрямую $bad->__toString()
или неявным образом от актерского состава, т.е. echo $bad;
или же $str = (string) $bad
В твоем случае ты снимаешь хочешь использовать
$bad = new Baddie(3, "bob");
echo $bad;
Вам нужно позвонить toString()
echo $bad->__toString()
Или просто
echo $bad
Если echo
вызывается с объектом, он будет искать __toString
метод и использовать его результат в качестве вывода.