我的代码如下:
if($_POST['user_id'] = ''){
//some statement;
}
在上述if
条件下,我只放了一个=
。 PHP没有显示任何错误,但我得到一个白色的空白页面。有没有人有任何线索?
答案 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!
}