优化php开关语句并节省空间
我一直在写一个switch语句,它根据优化php开关语句并节省空间,php,Php,我一直在写一个switch语句,它根据GET变量分配新的字符串变量 我使用的是数字1-6,仅按升序使用 看起来是这样的(少了几行): 显然,这是一种非常不专业的方式。有谁能给我一个关于如何优化这一点和节省一些空间的提示吗 提前谢谢 您可以为此创建数组映射: $map = array( '1' => 'Neu', '2' => 'Sehr Gut', ... ); foreach (explode(',', $_GET['condition']) as $nu
GET
变量分配新的字符串变量
我使用的是数字1-6
,仅按升序使用
看起来是这样的(少了几行):
显然,这是一种非常不专业的方式。有谁能给我一个关于如何优化这一点和节省一些空间的提示吗
提前谢谢 您可以为此创建数组映射:
$map = array(
'1' => 'Neu',
'2' => 'Sehr Gut',
...
);
foreach (explode(',', $_GET['condition']) as $number) {
if (isset($map[$number])) {
$param = 'condition_string_'.$number;
$$param = $map[$number];
}
}
您可以为此创建阵列映射:
$map = array(
'1' => 'Neu',
'2' => 'Sehr Gut',
...
);
foreach (explode(',', $_GET['condition']) as $number) {
if (isset($map[$number])) {
$param = 'condition_string_'.$number;
$$param = $map[$number];
}
}
或多或少与相同的解决方案,但您不应该创建var_1
,var_2
等。如果您看到这样的模式,实际上您总是想要一个数组。这个用例实际上也是数组映射操作的定义,因此array\u map
非常适合
或多或少与相同的解决方案,但您不应该创建
var_1
,var_2
等。如果您看到这样的模式,实际上您总是想要一个数组。这个用例实际上也是数组映射操作的定义,因此array\u map
非常适合。您可以使用基于“,”分隔符的explode
方法来减少代码行数。然后将值分配给$condition\u string.*
变量
$getStr = explode(",", $_GET['condition']);
foreach($getStr as $k => $v) {
switch($v) {
case '1':
$condition_string_1 = 'Neu';
break;
case '2':
$condition_string_2 = 'Sehr Gut';
break;
case '3':
$condition_string_3 = 'Gut';
break;
case '4':
$condition_string_4 = 'In Ordnung';
break;
case '5':
$condition_string_5 = 'Fehlerhaft';
break;
case '6':
$condition_string_6 = 'Defekt';
break;
}
}
您可以使用基于分隔符的
explode
方法减少代码行数。然后将值分配给$condition\u string.*
变量
$getStr = explode(",", $_GET['condition']);
foreach($getStr as $k => $v) {
switch($v) {
case '1':
$condition_string_1 = 'Neu';
break;
case '2':
$condition_string_2 = 'Sehr Gut';
break;
case '3':
$condition_string_3 = 'Gut';
break;
case '4':
$condition_string_4 = 'In Ordnung';
break;
case '5':
$condition_string_5 = 'Fehlerhaft';
break;
case '6':
$condition_string_6 = 'Defekt';
break;
}
}
每当你发现自己在使用多个变量,比如
$condition\u string\u 1
,$condition\u string\u 2
,你应该意识到它应该是一个数组变量。你真的手工输入了所有这些吗。。。!?O_o@deceze:令人尴尬的是,我做到了。这是一个复制粘贴真的很多。非常感谢你的回答!我真的才刚刚开始接触每一件事;无论何时,当您发现自己正在复制和粘贴,或者通常是在重复自己的操作时,您都需要停止正在执行的操作并找到更好的解决方案。无论何时,您发现自己使用了多个变量,如$condition\u string\u 1
,$condition\u string\u 2
,等等,你应该意识到它应该是一个数组变量。你真的手工输入了所有这些吗。。。!?O_o@deceze:令人尴尬的是,我做到了。这是一个复制粘贴真的很多。非常感谢你的回答!我真的才刚刚开始接触每一件事;无论何时,当您发现您正在复制和粘贴,或者通常正在重复自己的操作时,您都需要停止正在执行的操作并找到更好的解决方案。case
withoutswitch
。。。?您确定吗?案例
不带开关
。。。?你确定吗?