if和else语句中“:”的用法是什么?

时间:2010-07-16 20:08:02

标签: php

我看到了以下代码段:

<?php
if(!empty($_POST)): // case I: what is the usage of the :
if(isset($_POST['num']) && $_POST['num'] != ''):

$num = (int)$_POST['num'];

....

if($rows == 0):
echo 'No';

else: // case II: what is usage of :
echo $rows.'Yes';

endif;

我想知道php代码中“:”的用法是什么。

4 个答案:

答案 0 :(得分:8)

这是alternative syntax for control structures

所以

if(condition):
    // code here...
else:
    // code here...
endif;

相当于

if(condition) {
    // code here...
} else {
    // code here...
}

在处理HTML时,这非常方便。 Imho,它更容易阅读,因为您不必查找大括号{},并且PHP代码和HTML不会混淆。例如:

<?php if(somehting): ?>

    <span>Foo</span>

<?php else: ?>

    <span>Bar</span>

<?php endif; ?>

我不会在“普通”PHP代码中使用替代语法,因为这里的大括号提供了更好的可读性。

答案 1 :(得分:3)

这个:运算符主要用于php和html的嵌入式编码。

使用此运算符可以避免使用花括号。该算子降低了嵌入式编码的复杂性。您可以将此:运算符与if,while,for,foreach等结合使用......

没有':'运算符

<body>   
<?php if(true){ ?>  
<span>This is just test</span>  
<?php } ?>  
</body>

使用':'运算符

<body>  
<?php if(true): ?>  
<span>This is just test</span>  
<?php endif; ?>  
</body> 

答案 2 :(得分:2)

答案 3 :(得分:0)

我使用冒号的唯一时间是简写if-else语句

$var = $bool ? 'yes' : 'no';

相当于:

if($bool)
$var = 'yes';
else
$var = 'no';