PHP优化变量映射
使用参数PHP优化变量映射,php,optimization,mapping,Php,Optimization,Mapping,使用参数$action调用我的PHP中的函数。此值可以是“开”或“关”。我需要的是将该值分别“映射”到1或0 这可以通过以下方式实现: if ($action === "on") { $value = 1; else if ($action === "off") { $value = 0; } 但这看起来不太好,我认为它可以优化。我希望看到一些函数执行这种行为,比如: $value = varmap(array("on", "off"), array(1, 0), $actio
$action
调用我的PHP中的函数。此值可以是“开”
或“关”
。我需要的是将该值分别“映射”到1
或0
这可以通过以下方式实现:
if ($action === "on") {
$value = 1;
else if ($action === "off") {
$value = 0;
}
但这看起来不太好,我认为它可以优化。我希望看到一些函数执行这种行为,比如:
$value = varmap(array("on", "off"), array(1, 0), $action);
不幸的是,我还没有找到一个像这样工作的函数,但也许有人知道它。非常感谢您的建议。您的状态可能会比关闭和打开的状态更多吗 如果没有,我的建议是这样做
$value = ($action == 'on') ? 1 : 0;
有没有可能你会有比开关更多的状态 如果没有,我的建议是这样做
$value = ($action == 'on') ? 1 : 0;
试试这个:
$value = ($action == 'on') ? '1' : '0';
试试这个:
$value = ($action == 'on') ? '1' : '0';
如果要将其展开以使用更多值,则可以尝试以下操作:
$data = array(
'on'=>1,
'off'=>2,
'medium'=>3,
);
$to_check = 'on';
$my_var = '';
foreach($data as $key => $value) {
if ($key === $to_check) {
$my_var = $value;
break;
}
}
echo $my_var;
结果:
1
如果要将其展开以使用更多值,则可以尝试以下操作:
$data = array(
'on'=>1,
'off'=>2,
'medium'=>3,
);
$to_check = 'on';
$my_var = '';
foreach($data as $key => $value) {
if ($key === $to_check) {
$my_var = $value;
break;
}
}
echo $my_var;
结果:
1
在这里,我为您编写了实际函数,有时也可能对我有用:
<?php
function varmap($values, $outputValues, $input) {
if(count($values) != count($outputValues)){
return "Not the same count";
}
foreach($values as $idx => $value) {
if($value == $input){
return $outputValues[$idx];
}
}
}
$action = "on";
$value = varmap(array("on", "off"), array(1, 0), $action);
echo $value; //Returns 1
在这里,我为您编写了实际函数,有时也可能对我有用:
<?php
function varmap($values, $outputValues, $input) {
if(count($values) != count($outputValues)){
return "Not the same count";
}
foreach($values as $idx => $value) {
if($value == $input){
return $outputValues[$idx];
}
}
}
$action = "on";
$value = varmap(array("on", "off"), array(1, 0), $action);
echo $value; //Returns 1
您可以轻松地选择三元运算符$value=($action=='on')?'1' : '0';代码>我完全忘记了使用它。谢谢如果您将其作为答案发布,我可以接受:)如果您希望结果是数字,请使用$value=($action='on')?1 : 0;代码>谢谢大家,我使用了@ravenanigam的建议并将其改为数值。您可以轻松地选择三元运算符$value=($action='on')?'1' : '0';代码>我完全忘记了使用它。谢谢如果您将其作为答案发布,我可以接受:)如果您希望结果是数字,请使用$value=($action='on')?1 : 0;代码>谢谢大家,我使用了@ravenanigam的建议并将其改为数字。谢谢,其他答案解决了我的特定问题,但这最好地回答了我的问题!谢谢,其他答案解决了我的特殊问题,但这最好地回答了我的问题!