PHP速记if/else

PHP速记if/else,php,Php,我怎样才能使它成为一行或两行的速记三元 if ($tame == null): echo $tame = '0' . '<br />'; else: echo $tame . '<br />'; endif; 三元运算符本质上是一行中的if..else语句 if (condition) { action(a); } else { action(b); } 变成: action( condition ? a : b ); 你所拥有的

我怎样才能使它成为一行或两行的速记三元

if ($tame == null): 
    echo $tame = '0' . '<br />';
else: 
    echo $tame . '<br />';
endif;

三元运算符本质上是一行中的if..else语句

if (condition) {
    action(a);
} else {
    action(b);
}
变成:

action( condition ? a : b );
你所拥有的是:

if ($tame == null) {
    echo $tame = '0' . '<br />';
} else {
    echo $tame . '<br />';
}

三元运算符本质上是一行中的if..else语句

if (condition) {
    action(a);
} else {
    action(b);
}
变成:

action( condition ? a : b );
你所拥有的是:

if ($tame == null) {
    echo $tame = '0' . '<br />';
} else {
    echo $tame . '<br />';
}

还有一种方式怎么样:

echo $tame . (!is_null($tame)?:'0'). '<br />';
如您所见,我省略了中间部分,因为PHP5.3可以这样做

三元部分只是需要打印的部分,对于旧的php,您仍然可以这样做

echo $tame . (is_null($tame)?'0':''). '<br />';

还有一种方式怎么样:

echo $tame . (!is_null($tame)?:'0'). '<br />';
如您所见,我省略了中间部分,因为PHP5.3可以这样做

三元部分只是需要打印的部分,对于旧的php,您仍然可以这样做

echo $tame . (is_null($tame)?'0':''). '<br />';

看起来OP希望$tame是一个整数值。否则他为什么要写零表示空

如果是这样的话。这是最短的解决方案

echo (int)$tame.'<br/>';

这将为空值或数值回显0。也没有理由将$tame设置为零,因为PHP对null和零的处理相同。

看起来OP希望$tame是一个整数值。否则他为什么要写零表示空

如果是这样的话。这是最短的解决方案

echo (int)$tame.'<br/>';
这将为空值或数值回显0。也没有理由将$tame设置为零,因为PHP对null和zero的处理相同。

如果$tame为null或整数,则可以完全跳过逻辑:

echo sprintf("%d<br />", $tame);
正如@mellamokb所指出的那样,这假设您不想在第二行中将0分配给$tame。

如果$tame为null或整数,您可以完全跳过逻辑:

echo sprintf("%d<br />", $tame);

正如@mellamokb所指出的那样,这假设您不想在第二行中将0分配给$tame。

您是想在第一条echo语句中将0分配给$tame吗?您是想在第一条echo语句中将0分配给$tame吗?这与编写的内容不同$tame在原始版本中发生了变异。这个任务似乎是个错误。否则,$tame的已知值可能已经在末尾有一个标记,然后打印一个额外的br标记。这与所写的不同$tame在原始版本中发生了变异。这个任务似乎是个错误。否则,$tame的已知值可能已经在末尾有了一个,然后打印一个额外的br标记。他想将$tame也设置为零。他想将$tame也设置为零。他想将$tame也设置为零。他想将$tame也设置为零。这可以写成..-这将包括$tame的断线,我认为他不是有意的。@Austinburnkhorst,不管他是否有意,他都会得到。正如我所说:更难阅读=难以调试=容易出错。可以写为..-这将包括$tame的断线,我认为他不是有意的。@Austinburnkhorst,不管他是否有意,他都会得到。正如我所说:难以阅读=难以调试=容易出错。他并不是真的暗示,所以我们也不知道。是的,但我正在努力变得聪明;如果他希望$tame是一个整数,这将是最好的答案,但对于完整的解决方案,您仍然需要将其设置为零,所以我会这样做-echo$tame=int$tame@奥斯汀润喉棒极了!很好,比我的多8个字。他并不是真的暗示,所以我们也不知道。是的,但我正在努力变得聪明;如果他希望$tame是一个整数,这将是最好的答案,但对于完整的解决方案,您仍然需要将其设置为零,所以我会这样做-echo$tame=int$tame@奥斯汀润喉棒极了!不错,比我的快8个字。