-5

我的代码如下:

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

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

4

5 回答 5

2

if($_POST['user_id'] = '')方法:

$_POST['user_id'] 变成'' .. if ('')// 总是假的

if($_POST['user_id'] == '')方法:

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

于 2012-09-15T14:41:54.820 回答
0

不确定是拖钓还是真正的问题...

您自己说的,您使用的是单个=. 您需要 2 来检查是否相等。

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

当您使用单个等号时,您基本上是“设置$_POST['user_id']'',然后测试它是否为true)。由于''计算结果为false,因此您什么也得不到。

于 2012-09-15T14:40:51.577 回答
0

这个:

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

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

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

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

于 2012-09-15T14:41:43.207 回答
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;
}
于 2012-09-15T14:52:50.283 回答
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!
}
于 2018-03-30T13:54:39.103 回答