我是php新手,我经常看到这个错误,但我总是不确定如何解决这个问题,有人可以帮我解决一下这个方法吗?
这是我的__toString()方法:
/**
* @return string
*/
public function __toString(): string
{
return (string)$this->name .' - '. $this->surname .' - '. $this->getSubject()->getCode();
}
谢谢
答案 0 :(得分:1)
导致此错误的原因是__toString()
方法中的某些内容导致异常。
由于错误说方法getSubject()
返回null
值,然后调用null->getCode()
会抛出异常。更好的解决方案是:
public function __toString(): string
{
$subj = $this->getSubject();
$code = is_null($subj) ? "" : $subj->getCode(); /* instead of empty string can be any value you want when subject is missing */
return (string)$this->name .' - '. $this->surname .' - '. $code;
}