Php 将变量值限制为某些预定义值
最短最简单的方法是什么 例如:Php 将变量值限制为某些预定义值,php,variables,conditional,Php,Variables,Conditional,最短最简单的方法是什么 例如: $var = $_GET['something']; // how to limit the value of $var to "10", "20", "30", "40", // and "" for any other input ? 我的意思是,是否有一个php助手函数可以做到这一点,而不必使用5个IFs 适用于这种情况: if(!in_array($var, array("10", "20", "30", "40")) { // $var wi
$var = $_GET['something'];
// how to limit the value of $var to "10", "20", "30", "40",
// and "" for any other input ?
我的意思是,是否有一个php助手函数可以做到这一点,而不必使用5个IFs 适用于这种情况:
if(!in_array($var, array("10", "20", "30", "40"))
{
// $var will be "" if it does not equal: "10", "20", "30", or "40"
$var = "";
}
是的,您可以构建预定义阵列,然后根据其进行验证:
$array = (10, 20, 30, 40);
if(in_array($array, $var)){
// validated
} else {
// invalid
}
限制还是检查
if (isset($_GET['something'])) {
$validSomethings = array("10", "20", "30", "40");
foreach ($validSomethings as $something) {
if ($something == $_GET['something']) {
// it's valid. do it.
} else {
// not valid
}
}
}
还有一种更非常规的方法:
$map = array(10, 20, 30, 40); // == range(10, 40, 10);
$map = array_combine($map, $map);
$value = "{$map[$_GET['something']]}";
它的优点是隐式生成一个关于不需要的参数的通知(用于日志记录)。不完全清楚您在问什么。5个国际单项体育联合会有许多备选方案。 你可以用数学来限制回答
$var = (is_numeric($var))?(($var>40 || $var < 10)?"":floor($var/10)*10):"";
谢谢,我使用了:
$var=in_array($_GET[“something”],array(10,20,30,40))$_获取[“某物]:''代码>甚至更短:染料。这是最好的选择。你应该核对一下答案是否正确。干得好,蒂姆!
switch($var){
case "10":
case "20":
case "30":
case "40":
//do something?
break;
default:
$var = "";
//do something else?
break;
}