php检查isset和value = 0

时间:2014-03-06 04:51:30

标签: php codeigniter

我正在使用CodeIgniter框架来创建我的Web服务。我有一个可选参数,我想根据以下内容设置其值: -

  • 如果它存在且值为0,则var2 = a
  • else var2 = b

方法1

    $foo = $this->post('foo');

    if(isset($foo) && $foo == 0) {
        $var2 = 'a';
    } else {
        $var2 = 'b';
    }

方法2

    $foo = $this->post('foo');

    if(isset($foo)) {
        if ($foo == 0)
            $var2 = 'a';
        else
            $var2 = 'b';
    } else {
        $var2 = 'b';
    }

当我不发送$var2 = 'a'时,这两种方法都会返回foo

6 个答案:

答案 0 :(得分:2)

尝试以下,两者都相同。

$foo = $this->input->post("username");
$var2 = (int)$foo === 0 ? 'a' : 'b';

OR

$foo = $this->input->post("username");

if((int)$foo === 0)
    $var2 = 'a';
else
    $var2 = 'b';

注意:您正在使用 isset() 检查空字符串。这就是它始终返回 true 的原因。

希望这会有所帮助:)

答案 1 :(得分:1)

您没有使用正确的方法来获取帖子值 试试

$foo = $this->input->post('foo');
if(empty($foo)) {
 $var2 = 'a';
} else {
    $var2 = 'b';
}

答案 2 :(得分:1)

使用此代码

$ foo = $ this-> input-> post('foo');

if(isset($foo) && $foo == '0') {   

    $var2 = 'a';
} else {
    $var2 = 'b';
} 

echo“variable =”。 $ VAR2;

输出:

variable = a  // if you enter  0 in foo field

variable = b // if you didn't enter 0 

如果条件

,您必须在0(零)附近使用单引号
if(isset($foo) && $foo == '0')   

答案 3 :(得分:1)

使用=== '0'修正了它。

$foo = $this->post('foo');

if($foo === '0') {
    $var2 = 'a';
} else {
    $var2 = 'b';
}

答案 4 :(得分:0)

<强> $这 - &GT;输入 - &GT;柱()

  

如果您尝试检索的项目不存在,则该函数返回FALSE(布尔值)。

所以请尝试这样的事情

if(isset($_POST['foo']) && $_POST['foo'] == 0) {
    $var2 = 'a';
} else {
    $var2 = 'b';
}

$foo = $this->input->post('foo');
if($foo && $foo == 0){
    $var2 = 'a';
} else {
    $var2 = 'b';

答案 5 :(得分:0)

$foo = $this->input->post('foo'); var_dump($ foo);

检查$ foo的值 然后写Candition,可能是$ foo返回false值