什么($ variable)返回?

时间:2014-01-24 18:52:52

标签: php variables definition

只是进行一些验证,并希望真正了解这意味着什么,而不仅仅是工作。

让我们说:

$email = $_POST['email'];
if(!$email) { 
echo 'email empty'
}

什么是变量而没有检查它=什么意思?

我想

$variable

由它自己意味着它将该变量返回为真。

所以我也在使用if

!$variable

意味着错误。

只是想清除使用变量本身背后的实际意义。

将变量比较为空是否也是不好的做法?

使用

更好
$email == ''

!$email

很抱歉,如果它是一个没有真正答案可以解决的小问题,就像100%了解我编码的实际工作方式。

3 个答案:

答案 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转换为布尔值,然后反转该布尔值。