0

我刚刚在 Debian 7.0.0 上安装了最新版本的 LAMP。

出于某种原因,以下代码

    if ($LogIncrease==true) echo "true" . "<br\>";
    else echo "false" . "<br\>";
    echo "LogIncrease=" . $LogIncrease . "<br\>";

返回

true
LogIncrease=false

当 $LogIncrease 实际上是 false 并且

true
LogIncrease=true

当 $LogIncrease 实际上为真时

当我使用

    if ($LogIncrease===true) echo "true" . "<br\>";
    else echo "false" . "<br\>";

我总是假的。有人能告诉我我使用条件语句的方式有什么问题吗?

4

2 回答 2

4

这可能是*发生的,因为$LogIncrease是 string"false"与 boolean false

根据文档,只有以下内容被转换为布尔值false

转换为布尔值时,以下值被视为 FALSE:

  • 布尔值FALSE本身
  • 整数 0(零)
  • 浮点数 0.0(零)
  • 字符串字符串"0"
  • 一个元素为零的数组
  • 具有零成员变量的对象(仅限 PHP 4
  • 特殊类型NULL(包括未设置的变量)
  • 从空标签创建的SimpleXML对象

该字符串"false"不评估为false. 换句话说,"false" == true.

因此,如果var_dump($LogIncrease)输出以下内容:

string(5) "false"

您的病情评估为 是正常的true

* 在这里说可能是因为我没有从你的代码片段中得到足够的信息来确定。

于 2013-06-27T02:59:55.360 回答
1

下面是 $LoginIncrease 分别为空、True 和 False 的三种情况:

情况1:

$LogIncrease = "";
if ($LogIncrease == True) echo "LogIncrease is True <br/>";
else echo "LogIncrease is False <br/>";
var_dump($LogIncrease);

输出:

LogIncrease is False 
string(0) ""

案例二:

$LogIncrease = True;
if ($LogIncrease == True) echo "LogIncrease is True <br/>";
else echo "LogIncrease is False <br/>";
var_dump($LogIncrease);

输出

LogIncrease is True 
bool(true)

案例3:

$LogIncrease = False;
if ($LogIncrease == True) echo "LogIncrease is True <br/>";
else echo "LogIncrease is False <br/>";
var_dump($LogIncrease);

输出

LogIncrease is False 
bool(false)

希望这可以帮助。

于 2013-06-27T03:15:05.723 回答