当我只放入single = in if条件时,PHP没有显示错误

时间:2012-09-15 14:38:15

标签: php if-statement

我的代码如下:

if($_POST['user_id'] = ''){ 
  //some statement;
}

在上述if条件下,我只放了一个=。 PHP没有显示任何错误,但我得到一个白色的空白页面。有没有人有任何线索?

5 个答案:

答案 0 :(得分:2)

if($_POST['user_id'] = '')表示:

$_POST['user_id'] 变为''.. if ('') //始终为假

if($_POST['user_id'] == '')表示:

$_POST['user_id'] ''进行比较.. if ( comparison)

答案 1 :(得分:0)

不确定是否有拖钓或真正的问题...

你自己说过,你正在使用一个=。你需要2来检查是否相等。

if($_POST['user_id'] == ''){ 
  //some statement;
}

当您使用单个等号时,基本上“将$_POST['user_id']设置为'',然后测试它是否为true。”因为''计算为{{ 1}},你什么都没得到。

答案 2 :(得分:0)

此:

if($_POST['user_id'] = ''){  

尝试将空字符串分配给$_POST['user_id']。这样:

if($_POST['user_id'] == ''){  

是比较。您应该几乎总是在做第二个 - 第一个覆盖$ _POST中的值,并返回赋值的值。

答案 3 :(得分:0)

试一试

使用它

$user_id = $_POST['user_id'];

if($user_id == ''){ 
  //some statement;
}

而不是

if($user_id = ''){ 
  //some statement;
}

或尝试另一个

$user_id = $_POST['user_id'];

if(isset($user_id) && !empty($user_id)){ 
  //some statement;
}

答案 4 :(得分:0)

它没有触发任何错误,因为它是一个有效的条件。

if($_POST['user_id'] = '')

等于

$_POST['user_id'] = '';
if($_POST['user_id']){
    //Boolean comparison of a string. Empty = false. Not empty = true.
}

使用示例:

function division($var1, $var2){
    if($var2 > 0){
        return $var1/$var2;
    return false;
}

if($result = division(50,2)){
     //It returned 25 which is true!
}

if(!$result = division(50,0)){
    //Returned FALSE because you can't divide by zero!
}