2016-11-10 43 views
0

我想查看是否有一个简化的方法来执行正在检查多个条件的if语句,它使用来自同一函数的数据。在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... 
} 

这是可能的,是否有这样做的首选方法?在我看来,定义和使用它在相同的声明将更干净的代码...

+2

使用' ()'在作业周围,它会工作得很好。 –

+1

应该指出,虽然你可以这样做,但这不是推荐的方法。您应该在if语句之前声明该变量。但是,这是你的代码,不管你喜欢,你都可以这样做:) – Kenyon

+0

这很有效。有人知道在定义它之前是否有一个优先选择,然后执行if语句或在if语句中定义它? 编辑:Kenyon张贴时,我问。谢谢! :) –

回答

1

正如尼说的,使用括号()围绕$ classVariable赋值和事情应该工作。

(我只是想张贴此作为一个答案,而不是评论这样的问题得到解决,对不起Niet的)

通过OP编辑,以显示代码的答案...

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

通过添加括号来包含它的外观,从而减少了您的答案。 – pancho018

+0

@ pancho018 - 我在 –

+0

中加入了另一个34代表,你也可以评论;-)就像Niet一样。写作好/更好的答案吸引(积极)的投票,顺便说一句。 http://stackoverflow.com/help/how-to-answer –