(快速而简单)这段代码究竟在做什么?

时间:2013-06-30 23:46:55

标签: php if-statement

if ($_POST['foo']) {
    // bar
}

这是说...if the $_POST['foo'] variable is a boolean, and is true...

或者这是... if the $_POST['foo'] variable isset...

或者这是... if the $_POST['foo'] variable is not null...

或者这是说这些东西的组合?或者这是说完全不同的东西?

3 个答案:

答案 0 :(得分:8)

它正在检查该值的真实性。如果它为0,空,或者密钥不存在那么它就是假的。如果密钥不存在,那么它也会发出通知。

答案 1 :(得分:1)

它验证您传递的变量的布尔值。如果变量等于布尔值true,如果它包含非空的内容(例如,数组)或任何非空值(非数字的数字),则为真。

以下是一些示例,来自PHP文档(http://ca3.php.net/manual/en/language.types.boolean.php):

var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)

答案 2 :(得分:0)

一般来说,任何进入条件语句的东西都必须是布尔值或者必须求值为布尔值。

$_POST['foo']也是如此,它将检查变量的值是否为布尔值或者是否为布尔值。任何不等于""0的字符串和数字将被视为true,其中""0(或为空)将是视为false。如果变量未定义,您将收到Undefined variable通知,该语句也将评估为false