我正在学习toString的udemy课程,但是在我的浏览器中,当我使用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);
?>
这是截图 Chrome:http://prntscr.com/bl941w
提前感谢!
答案 0 :(得分:3)
您刚刚创建了一个新对象__toString
,但永远不会调用$bad->__toString()
方法。只有在您直接调用echo $bad;
或隐式广告时才会调用该方法,即$str = (string) $bad
或$bad = new Baddie(3, "bob");
echo $bad;
在你的情况下,你想要使用
{{1}}
答案 1 :(得分:2)
您需要致电toString()
echo $bad->__toString()
或者只是
echo $bad
如果使用对象调用echo
,它将搜索__toString
方法并将其结果用作输出。