Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将变量值限制为某些预定义值_Php_Variables_Conditional - Fatal编程技术网

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;
}