我正在使用PDO为对象构建一个模型,中间没有ORM。我们稍后可以讨论为什么我不使用ORM。
我有一些静态方法,如getById()和getByName(),如果数据库中存在模型对象,则实例化并返回模型对象。
我的问题:我应该返回什么,是"道德正确",如果行不存在于数据库中?由于这是一个项目上的新代码,没有任何好的指导方针,我可以返回(并稍后检查)false或null…或者理论上是别的什么。我宁愿不做的是在我的代码中使用is_object()检查,我可以使用===。
如果我准备的SELECT语句execute()返回false,我已经抛出一个异常。如果没有找到对象,我想我也可以抛出一个异常,但我不知道ORM实际上是这样做的。
提前感谢,并让任何可能开始的圣战这样做!
我将返回null,它满足您的所有条件。
它是假的,所以一个简单的if是一个测试,看看资产是否被检索将工作
if ($user)
对'=== null'的测试清楚地表明了测试的意义。
if ($user === null)
和null在我看来在语义上比false更正确。您从调用中得到一个null结果,而不是一个false结果。