在if语句

时间:2016-11-10 17:01:34

标签: php if-statement

我想知道是否有一种简化的方法来执行检查多个条件的if语句,它使用来自同一函数的数据。

if($class->function($id) && $class->function($id)['key'] > 0)
{ 
    //Do something...
}

这里的问题是我们正在进行2次数据库调用以检索相同的数据。一个明显的解决方案是执行以下操作:

$classVariable = $class->function($id);
if($classVariable && $classVariable['key'] > 0)
{
    //Do something...
}

我的问题具体是,我可以在if声明中获得相同的效果吗?例如(这不起作用):

if($classVariable = $class->function($id) && $classVariable['key'] > 0
{
    //Do something...
}

这是否可行,是否有一种首选方式?在我看来,在同一语句中定义和使用它将是更清晰的代码...

1 个答案:

答案 0 :(得分:1)

正如Niet所说,在$ classVariable赋值周围使用括号(),事情应该有效。

(我只想将此作为答案而不是评论发布,以便问题得到解决,对不起Niet)

由OP编辑以在代码中显示答案...

if(($classVariable = $class->function($id)) && $classVariable['key'] > 0)
{
    //Do something...
}