我正忙于创建一个应用程序,我想使用 PHP 7 返回类型。现在我在 php.net 上读到,这是一个设计决定,即在定义返回类型时不允许返回 null
。
处理这个问题的正确方法是什么?
一个选项是 try...catch block :
public function getMyObject() : MyObject
{
return null;
}
try
{
getMyObject();
}
catch(Exception $e)
{
//Catch the exception
}
我对此感觉不太好,因为我的代码将是一个巨大的 try...catch block ,因为我需要为每个返回对象的方法编写一个 try...catch block 。
Null Object Pattern是一个很好的解决方案,但我不喜欢为我的应用程序中的每个对象创建一个 NullObject
的想法。
有没有正确的方法来做到这一点?
最佳答案
如果您的代码希望返回一个类的实例,在本例中为 MyObject
,但它没有返回,那么这确实是一个异常,应该这样处理。
但是,您应该自己抛出这个异常。
public function getMyObject() : MyObject
{
throw new MyCustomException("Cannot get my object");
}
然后您可以捕获该特定异常并进行相应处理。
关于php - 处理 PHP 7 返回类型的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34268063/