php - 我们应该用什么来测试存在
问题描述
在 php symfony 中,我们使用学说。在我们项目的许多部分中,我们使用:
$entity = $manager->getRepository(Entity::class)->find(['toto' => $toto]);
或者
$entity = $manager->getRepository(Entity::class)->findOneBy(['toto' => $toto]);
然后我们测试我们是否有一些结果。之间最好的做法是:
if (!empty($entity )) {
some todo
}
和
if (null === $entity )) {
some todo
}
解决方案
至少对我而言,这种情况的最佳方法是检查instanceof
类似
if ($entity instanceof Entity::class)
顺便说一句,这确实是主观的,但我永远不会更喜欢它们empty
,null
因为它们带来了完全不同的意义。
由于empty
变量可能永远不会被声明,它可以是不同的类型(字符串、数组、null、false)等等。
通过null
严格检查,您只测试那种(空)值(并且在教义改变其 API 之前很好,这是不可能的)。
使用instanceof
对我来说是最好的,因为你“绕过”所有其他值,无论你从查询中得到什么类型。
推荐阅读
- python - Python selenium 查找复选框
- r - ggplot:两组的geom_line和geom_point叠加顺序?
- c# - Unity中的环境变量在开发和生产之间有所不同
- database - 如何从 000webhost 免费计划中恢复 WordPress 数据库,因为我错误地删除了我的数据库?
- c# - 如果我的玩家没有在 2D 中移动,碰撞器不会触发
- python - 获取字典键的值作为字典列表中的列表,无需循环
- python - 使用 Pandas df 将研发费用资本化
- python - 将 2D 元组重塑为 1D
- ios - 如何使枚举可编码?
- python - OSError: [WinError 123] 文件名、目录名或卷标语法不正确:'D:\\cat-and-dog\training_set\training_set'