在此代码片段中:
$results = $this->getAdapter()->fetchAll($query);
if(count($results)) {
// …
}
...你认为if(count())部分是一个很好理解的习语,还是令人困惑的代码。即应该是
if(count($results) > 0)
???
答案 0 :(得分:2)
使用带有'if'的布尔表达式比使用隐式转换需要更少的语言理解,因此我总是更喜欢第二个选项(添加“> 0”) - 至少如果此代码是由其他人也是。你永远不知道谁将维护你的代码。关键字是“清晰度”。
但我必须承认,如果我自己也使用了一个int表达式,我已经多次写过代码,因为我喜欢它的优雅。
答案 1 :(得分:1)
他们在这种情况下完成了同样的工作,并且易于阅读。
我只是添加(以防万一)如果您只对if(count())
执行此查询,那么您应该发出SELECT COUNT(*)
代替!
答案 2 :(得分:1)
count
和无关的>
比较毫无意义。如果你收到一个实际的array
,那么测试应该是:
if ($results) {
这就是脚本语言的用途。提取低级细节。
如果你的fetchAll函数返回一个ArrayObject或类似函数,你只需要count
。如果您的函数有时会返回false
,那么您的if (count(
将失败(因为PHP中的count(false)==1
)。
答案 3 :(得分:0)
答案 4 :(得分:0)
我的意见是> 0
检查是多余的,没有必要。
我知道其他开发人员坚持认为它应该是为了清晰,但坦率地说我不能解释为什么 - 任何能够阅读PHP的人都应该能够辨别出它们是相同的。