如果条件为大量的对象属性

时间:2011-07-07 11:26:47

标签: php object

如果至少有一个字段填充了一行中50个字段的值,我必须显示数据库中的记录。

我成功从数据库中获取数据。存储在像这样的对象数组中

$obj[0]->prop1;
$obj[0]->prop2;

$obj[1]->prop1;
$obj[1]->prop2;

对象有超过50个属性。

我必须检查每个属性,如果其中一个不是空的,则显示该记录。

我喜欢这个

if ($obj[$counter]->prop1 !='' || $obj[0]->prop2 !='' ...
echo "show record"

想知道是否有缩短的方式。如果有什么不清楚,请告诉我

4 个答案:

答案 0 :(得分:2)

在类中声明函数isEmpty()。对于每个实例,您只需要调用

if(!($obj[$counter]->isEmpty()) {

   ...

}

答案 1 :(得分:0)

我想最好改变你的查询:

select f1, f2, ... f50, f1||f2...||f50 as fsum from ...

然后您可以检查$obj[51] != ''

这比php代码......

的执行速度更快

答案 2 :(得分:0)

不,你必须单独检查每个房产......

答案 3 :(得分:0)

所以我自己找到了简单的方法。您可以只将类型转换为数组,并检查该数组是否为此类

foreach ((array)$data[$counter] as $value)
{
   if($value !='')
   {
      $addRec=true;
   }
}