1

我正在使用 PDO 为对象构建模型,中间没有 ORM。我们可以讨论为什么我以后不使用 ORM。

我有一些静态方法,例如 getById() 和 getByName(),它们实例化并返回一个模型对象(如果数据库中存在一个模型对象)。

我的问题:如果数据库中不存在该行,我应该返回什么以“道德上正确”?由于这是项目中的新代码,没有任何关于如何在此处进行的良好指导,我可以返回(并稍后检查)false 或 null ......或者理论上其他东西。我不想做的是在我的代码中使用 is_object() 检查我可以使用 ===。

如果我准备好的 SELECT 语句 execute() 返回 false,我已经抛出异常。我想如果没有找到对象,我也可以抛出异常,但我不知道真正做到这一点的 ORM。

在此先感谢,让任何可能开始的圣战都这样做!

4

1 回答 1

0

我会返回 null,它符合您的所有条件。

这是错误的,所以一个简单的 if 是一个测试来查看资产是否被检索将起作用

if ($user) 

测试 '=== null' 清楚地表明了测试的含义。

if ($user === null) 

在我看来,null 在语义上比 false 更正确。你得到一个空结果,而不是你的电话的错误结果。

于 2013-06-16T04:56:43.993 回答