使用参数$action
调用PHP中的函数。该值可以是"on"
或"off"
。我需要的是将此值“映射”到1
或0
。
这可以通过以下方式实现:
if ($action === "on") {
$value = 1;
else if ($action === "off") {
$value = 0;
}
但这看起来不太好,我认为它可以优化。我想看到一些执行此行为的函数:
$value = varmap(array("on", "off"), array(1, 0), $action);
不幸的是,我无法找到一个像这样的功能,但也许有人确实知道它。任何建议都表示赞赏。
答案 0 :(得分:3)
我在这里为你写了实际的功能,对我来说有时候也很有用:
<?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
答案 1 :(得分:1)
你可能会有更多的状态而不是关闭和开启状态吗?
如果不是我的建议是
$value = ($action == 'on') ? 1 : 0;
答案 2 :(得分:1)
试试这个:
$value = ($action == 'on') ? '1' : '0';
答案 3 :(得分: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