我在php中编写了一个函数,但不知怎的,它失败了

时间:2015-05-10 12:18:07

标签: php

function gp_barrier_check($amount) {
    $return = 1;

    if ($amount == 11  OR $amount == 12  OR $amount == 18  OR $amount == 35  OR
        $amount == 58  OR $amount == 75  OR $amount == 81  OR $amount == 114 OR
        $amount == 115 OR $amount == 288 OR $amount == 317 OR $amount == 344 OR 
        $amount == 403 OR $amount == 574 OR $amount == 804 OR $amount == 1093)
    {
        $return = 0;
    }

    return $return;
}

它工作正常,但在发送18时失败了一次。我不知道为什么功能失败。

2 个答案:

答案 0 :(得分:0)

没有理由你的功能无法正常使用,但正如用户在评论部分指出的那样,所采用的方法并不理想。我的建议如下:

function gp_barrier_check( $amount ) {
    return (int) in_array( $amount, array( 11, 12, 18, ) );
}

我将返回值转换为整数以匹配原始问题,尽管您似乎想要一个布尔值,在这种情况下只需删除(int)

答案 1 :(得分:0)

Nathan的答案很好,但是如果在数组中找到了金额,它将返回true,而OP在这种情况下想要返回0。因此:

function gp_barrier_check($amount) 
{
    return (int)!in_array((int)$amount, array(11,12,18,35,58,75,81,114,115,288,317,344,403,574,804,1093));
}