【发布时间】:2020-06-12 18:20:09
【问题描述】:
我的功能是__toString:
public function __toString(): string
{
return json_encode($this->payload);
}
这是我从 PhpStan 收到的错误,阻止我提交:
方法 App\DTO\GenericMessageDTO::__toString() 应该返回字符串,但返回字符串|false。
我尝试了异常但与我的 php 7.2 不兼容 它说从 ''__toString'' 抛出异常只有在 PHP 7.4 之后才有可能
public function __toString(): string
{
if ($this->payload === false) {
throw new \Exception("No payload");
}
return json_encode($this->payload);
}
我该如何解决这个问题?
【问题讨论】:
-
你也许可以返回一个空字符串?这并不理想,因为您需要在每次(隐式)调用时检查自己是否出现问题,但似乎没有更好的解决方案。
标签: php types type-hinting phpstan