首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Switch语句验证

Switch语句验证
EN

Stack Overflow用户
提问于 2012-10-03 16:27:00
回答 3查看 1K关注 0票数 0

如果POST或GET数据被直接抛入switch()语句中,是否需要进行验证?例如:

代码语言:javascript
复制
switch($_GET['input']) {
    //...
}

???

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-03 16:28:48

如果您的交换机包含真实案例,则不需要,但是如果您使用default,则在这种情况下使用$_GET时需要对其进行验证。

例如:

代码语言:javascript
复制
switch ($_GET['input']) {
    case 'one':
        echo "input is one";
        break;
    case 'two':
        echo "input is two";
        break;
    default:
       // here `$_GET['input']` need to be validated, escaped, checked if you use it to avoid XSS or SQL injections
       echo $_GET['input'];
}
票数 0
EN

Stack Overflow用户

发布于 2012-10-03 16:28:20

不,你的case基本上就是验证。

票数 0
EN

Stack Overflow用户

发布于 2012-10-03 16:28:37

switch语句类似于同一表达式上的一系列IF语句。在许多情况下,您可能希望将相同的变量(或表达式)与许多不同的值进行比较,并根据它等于哪个值来执行不同的代码段。这正是switch语句的作用所在。

请注意,switch/case进行松散比较。

代码语言:javascript
复制
<?php
switch ($i) {
    case "apple":
        echo "i is apple";
        break;
    case "bar":
        echo "i is bar";
        break;
    case "cake":
        echo "i is cake";
        break;
    default:
    echo "";
    break;
}
?>

所以,简短的答案是“不”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12704574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档