我正在阅读一些switch语句,并注意到一个使用endswitch;
。为什么或为什么不应该使用它?它甚至是必要的吗?
答案 0 :(得分:15)
如果您使用alternative syntax for control structures。
,则会使用它因此你可以选择
switch ($var) {
case 1:
echo "Hello!\n";
break;
case 2:
echo "Goodbye!\n";
break;
default:
echo "I only understand 1 and 2.\n";
}
或
switch ($var):
case 1:
echo "Hello!\n";
break;
case 2:
echo "Goodbye!\n";
break;
default:
echo "I only understand 1 and 2.\n";
endswitch;
它们功能相同,仅以syntactic sugar提供。
答案 1 :(得分:2)
+1琥珀色。替代语法无疑更具可读性,尤其是在HTML中插入控制结构时。是的,公认的编码标准因组织而异。在我们的例子中,我们在模板中使用if():endif,在代码的逻辑和后端部分使用if(){}。观察代码的整洁,包括缩进:
<?php if($number %2 != 0):?>
<p>I guess the number is odd</p>
<?php else:?>
<p>I guess the number is even</p>
<?php endif?>
在这种情况下,你甚至不需要那个讨厌的分号。
比较一下,这里是“unalternative”(或原创)方式:
<?php if($number %2 != 0) {?>
<p>I guess the number is odd</p>
<?php } else {?>
<p>I guess the number is even</p>
<?php }?>
在整个代码中观察美学上令人不安的花括号。第一种风格更适合HTML标签。
答案 2 :(得分:1)
我从未使用过switch变体,但对于if语句或for语句,它可以在模板中使用。
但这主要是品味问题。
答案 3 :(得分:1)
替代语法在模板文件中非常好。
答案 4 :(得分:0)
c风格语言中switch语句的常用systax是这样的:
switch($foo) {
case 1: foobar();
break;
case 2: something();
break;
case 3: whatever();
break;
default: anything();
}
从未在实际生产代码中看到“endswitch”。
我建议坚持使用可接受的编码标准,以保持代码的可读性和可维护性。