如果/ else怎么办?

时间:2015-11-22 00:29:49

标签: php if-statement

我有$first$second。它们可以包含值01

if ( $first AND $second ) {
   // True
} else {
   // False
}

我的想法(和谷歌搜索)告诉我,只有$first == 1$second == 0时结果为 true ,反之亦然。但当这两个变量都是1时,结果是 true

我不明白它是如何运作的。

2 个答案:

答案 0 :(得分:6)

您的Google搜索失败了。 PHP的type juggling表示1相当于TRUE0相当于FALSE。 (另见type comparisons)。因此,如果两个值均为1,则if语句的计算结果为TRUE。如果其中一个或两个值均为0,则评估为FALSE

<?php

$one = 1;
$zero = 0;

if ($one && $one) {
    echo "true\n";
}
else {
    echo "false\n";
}

if ($zero && $zero) {
    echo "true\n";
}
else {
    echo "false\n";
}

if ($one && $zero) {
    echo "true\n";
}
else {
    echo "false\n";
}

if ($zero && $one) {
    echo "true\n";
}
else {
    echo "false\n";
}

节目输出

true
false
false
false

Demo

答案 1 :(得分:1)

在PHP中,所有值都是&#34; truthy&#34;或&#34; falsy&#34;在表达式中。

如果值包含某些内容,则可以说它是真实的。因此,transform1"one"[1,2,3]所有&#34;等值包含&#34;某事,并将被解释为真实。

归零或以某种方式为空的值是假的。例如。 true0""[]

PHP文档中有table of how values are interpreted

您也可以试验,然后将其输出到您的网站:

false