当findAll的查询条件$conditions为空数组时会报错

#1 php

在做条件查询的时候,我经常先$conditions=array(); 然后用加入数组的方式来增加查询条件,偶尔发现这样就导致当没有条件查询时$conditions为空数组而查询报错。看了下findAll的方法里面确实没有判断$conditions是否为空。

2010-03-06 17:15:14

#2 jake

嗯,也是有必要的一个判断。:handshake

从findAll本身就逻辑来说,$conditions=null即查找全部的记录,所以这里要讨论一下,如果$conditions数组为空,那么应该是返回全部记录呢,还是返回没有记录呢?

2010-03-06 17:44:30

#3 php

$conditions数组为空,也就是没查询条件返回全部记录,我想其他朋友也是这么需求吧?

2010-03-06 17:45:50

#4 jake

$conditions数组为空,也就是没查询条件返回全部记录,我想其他朋友也是这么需求吧? ...
php 发表于 2010-3-6 17:45
大致上逻辑是如此。

2010-03-07 10:27:15

#5 greysky

这就和其他语言里的数组申明一个道理,比如C或者C++里申明数组为什么要声明0长度数组呢?

bytes[] b;

bytes[] b = [];

是不一样的。当使用长度length来检测的时候,一个为nothing就会报错,一个为0正常。

2010-04-07 22:18:02