只是进行一些验证,并希望真正了解这意味着什么,而不仅仅是工作。
让我们说:
$email = $_POST['email'];
if(!$email) {
echo 'email empty'
}
什么是变量而没有检查它=什么意思?
我想
$variable
由它自己意味着它将该变量返回为真。
所以我也在使用if
!$variable
意味着错误。
只是想清除使用变量本身背后的实际意义。
将变量比较为空是否也是不好的做法?
使用
更好$email == ''
比
!$email
很抱歉,如果它是一个没有真正答案可以解决的小问题,就像100%了解我编码的实际工作方式。
答案 0 :(得分:3)
PHP使用http://www.php.net/manual/en/language.types.boolean.php定义的规则评估$email
是否“真实”。
When converting to boolean, the following values are considered FALSE:
the boolean FALSE itself
the integer 0 (zero)
the float 0.0 (zero)
the empty string, and the string "0"
an array with zero elements
an object with zero member variables (PHP 4 only)
the special type NULL (including unset variables)
SimpleXML objects created from empty tags
PS $email= ''
会将''
分配给$email
。
答案 1 :(得分:2)
$email = ''
将清空变量。您可以改为使用==
或===
。
在这种情况下,最好使用PHP的isset()
函数(documentation)。该函数正在测试是否设置了变量而不是NULL
。
答案 2 :(得分:1)
执行if(<expression>)
时,它会评估<expression>
,然后将其转换为布尔值。
在docs中,它说:
When converting to boolean, the following values are considered FALSE:
the boolean FALSE itself
the integer 0 (zero)
the float 0.0 (zero)
the empty string, and the string "0"
an array with zero elements
an object with zero member variables (PHP 4 only)
the special type NULL (including unset variables)
SimpleXML objects created from empty tags
Every other value is considered TRUE (including any resource).
因此,当你执行if(!$email)
时,它会按照上述规则将$email
转换为布尔值,然后反转该布尔值。