如何减少这个if..else声明的方法呢?

时间:2011-06-09 02:31:38

标签: php syntax

$specify_step = ($_GET['specify_step']) ? $_GET['specify_step'] : getNextStep($returnId,$type);

鉴于上述陈述,有没有办法简化这个if语句,以便我不必多次说$ _GET ['specified_step']?

在我访问GET或COOKIES等的情况下,它似乎总是多余的,而且需要“更多的”。

4 个答案:

答案 0 :(得分:2)

我认为它没有那么紧凑。我唯一的想法就是制作一个临时变量来保持$_GET['specify_step'],但这似乎不会更短。

答案 1 :(得分:1)

$specify_step = ($_GET['specify_step']) ?: getNextStep($returnId,$type);

对我来说,我必须仔细查看它...... according to php.net,它适用于PHP 5.3。如果你使用的是5.3,那么你很幸运。

答案 2 :(得分:0)

正如我在对您的问题的评论中提到的,我不了解PHP。

检查这是否有效。在大多数语言中,如果第一部分为真,则不会调用函数getNextStep

$specify_step = ($_GET['specify_step']) || getNextStep($returnId,$type);

答案 3 :(得分:0)

会有这种替代的布尔评估方法,但它只是表明你必须复制某些东西

 $specify_step = $_GET['specify_step']
 or
 $specify_step = getNextStep($returnId,$type);

(也可以没有装饰性的换行符。)

使用PHP 5.3,可能当然使用?:快捷方式。如果可以的话。

就个人而言,我个人可以替换$_GET->default('specify_step', 123)