0
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...

还是这句话是这些东西的结合?或者这是在说完全不同的东西?

4

3 回答 3

8

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

于 2013-06-30T23:48:21.377 回答
1

它验证您传递的变量的布尔值。如果变量等于布尔值 true,如果它包含不为空的内容(例如,数组)或任何不为空的值(不为零的数字),则该变量为 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)
于 2013-06-30T23:58:33.610 回答
0

通常,进入条件语句的任何内容都必须是布尔值,或者必须评估为布尔值。

情况也是如此,$_POST['foo']它将检查变量的值是布尔值还是计算结果为布尔值。任何不等于""and的字符串和数字都0将被视为truewhere as""0(或为空)将被视为false. 如果变量未定义,您将收到Undefined variable通知,并且该语句也将评估为false

于 2013-06-30T23:56:22.083 回答