我有一段现有的代码,我在理解方面遇到了问题。
我通常不喜欢速记,因为它需要配置更改,而且我更难阅读。出于这个原因,我并不是特别熟悉它。现有的代码是由喜欢速记的人写的。
当我遇到这个时:
if($type == 'a') $type = 'Type A'; else if($type == 'b') $type = 'Type B'; else if($type == 'c') $type = 'Type C';
我把它读作简单的if,而不是if字符串。我将其转换为:
if($type == 'a') { $type = 'Type A'; } else if($type == 'b') { $type = 'Type B'; } else if($type == 'c') { $type = 'Type C'; }
我认为这很简单,但是我在实践中得到了不同的结果。上面两个片段有什么区别?
答案 0 :(得分:4)
它们完全相同,区别在于其他地方。
这是前后代码的复制/粘贴吗?
我同意anubhava,但为了清楚起见,我倾向于将其转换为开关案例:
switch ($type) {
case 'a':
$type = 'Type A';
break;
case 'b':
$type = 'Type B';
break;
case 'c':
$type = 'Type C';
break;
default:
break;
}
答案 1 :(得分:1)
它们应该完全相同。我会制作一个测试文件,但我不认为这会改变这个事实......
哇,做了一个测试文件:
<?php
$type = 'a';
if($type == 'a') $type = 'Type A';
else if($type == 'b') $type = 'Type B';
else if($type == 'c') $type = 'Type C';
echo $type . "\n";
$type = 'b';
if($type == 'a') $type = 'Type A';
else if($type == 'b') $type = 'Type B';
else if($type == 'c') $type = 'Type C';
echo $type . "\n";
$type = 'c';
if($type == 'a') $type = 'Type A';
else if($type == 'b') $type = 'Type B';
else if($type == 'c') $type = 'Type C';
echo $type . "\n";
$type = 'a';
if($type == 'a') {
$type = 'Type A';
} else if($type == 'b') {
$type = 'Type B';
} else if($type == 'c') {
$type = 'Type C';
}
echo $type . "\n";
$type = 'b';
if($type == 'a') {
$type = 'Type A';
} else if($type == 'b') {
$type = 'Type B';
} else if($type == 'c') {
$type = 'Type C';
}
echo $type . "\n";
$type = 'c';
if($type == 'a') {
$type = 'Type A';
} else if($type == 'b') {
$type = 'Type B';
} else if($type == 'c') {
$type = 'Type C';
}
echo $type . "\n";
,结果确实相同。
Type A
Type B
Type C
Type A
Type B
Type C
答案 2 :(得分:1)
我认为您首先需要php switch case来简化上述代码。
虽然我必须提到我没有找到任何代码差异2个版本的代码。切换案例使得它比许多if语句更具可读性,否则if,else if语句。
答案 3 :(得分:1)
这实际上不是shorthand语法。这只是一个if / else if / else,如果每个部分只有一个语句,因此不需要{}
集。
使用换行符格式化时更清晰一点:
if($type == 'a')
$type = 'Type A';
else if($type == 'b')
$type = 'Type B';
else if($type == 'c')
$type = 'Type C';
答案 4 :(得分:1)
是$ type返回一个不受欢迎的?如果是的话,我会:
if($type == 'a') {
$type = 'Type A';
} else if($type == 'b') {
$type = 'Type B';
} else if($type == 'c') {
$type = 'Type C';
} else {
$type = 'Other Type';
}
但我完全赞同上述人员,实际上你应该把它翻译为:
switch ($type) {
case 'a':
$type = 'Type A';
break;
case 'b':
$type = 'Type B';
break;
case 'c':
$type = 'Type C';
break;
default:
$type = 'Other Type';
break;
}
这样你就可以随时查看不需要的数据,具体取决于我总是设置默认设置的情况,尤其是开发模式。
答案 5 :(得分:0)
它们是相同的,错误在其他地方。