查看_REQUEST值是0还是1或其他任何值

时间:2016-06-24 17:30:43

标签: php input request

我试图查看_REQUEST ['abc']值是1还是0,否则将其设置为“na”

如果我使用intval(),则var = abc intval($ abc)= 0,空值“?abc =”

如何判断abc = 0或abc = 1,否则abc = na?

我试过

if( intval( $inputs[ 'abc' ] ) !== 0 && intval( $inputs[ 'abc' ] ) !== 1 )
{
    $inputs[ 'abc' ] = 'na';
}

编辑:

为了透明,我的最终解决方案是:

if( strval( $inputs['abc'] ) !== '0' && strval( $inputs['abc'] ) !== '1' )
            {
                $inputs['abc'] = 'na';
            }

所以也许我的解决方案是两个人的产品,但感谢所有帮助过我的人

3 个答案:

答案 0 :(得分:3)

相反,如果intval使用strval,则会将您的变量转换为字符串。并将此值与字符串'1''0'

进行比较
if( strval( $inputs[ 'abc' ] ) !== '0' && strval( $inputs[ 'abc' ] ) !== '1' )
{
    $inputs[ 'abc' ] = 'na';
}

答案 1 :(得分:0)

我几乎没有在PHP中进行过类型转换,只是让松散的比较来处理事情。此外,in_array有我对多种情况的偏好。更容易阅读和维护imo。

所以我的代码看起来像这样:

if (! in_array($inputs['abc'], [0,1])) {
    $inputs['abc'] = 'na';
}

答案 2 :(得分:-1)

假设_REQUEST你的意思是$ _REQUEST,那么我们可能想要这样做:

    <?php
        // ASSIGN THE VALUE OF THE $_REQUEST GLOBAL TO $inputs
        $inputs     = $_REQUEST;

        // YOU MAY NOT NEED TO CAST TO INTEGER TYPE DURING THE CHECKS
        // ESPECIALLY SINCE 0 IS INVOLVED... THE BEST BET IS EVEN TO CAST ALL TO STRING...
        // SO WE FIRST CHECK THAT $inputs['abc'] IS NOT EQUAL TO THE STRING VALUE "0"
        if( ($inputs['abc'] . "") !== "0" ){
            // THEN AGAIN; WE CHECK THAT THE STRING VALUE OF $inputs['abc'] IS NOT "1"
            if( ($inputs['abc'] . "" ) !== "1" ) {
                // IF OUR CONDITION IS SATISFIED, WE GO AHEAD AND DO THE ASSIGNMENT: $inputs['abc'] = 'na' 
                $inputs['abc'] = 'na';
            }
        }
    ?>