当前位置: 首页 > 知识库问答 >
问题:

比较操作返回false时不显示结果[重复]

燕琛
2023-03-14

我试图显示比较操作的结果($a

我想知道为什么第一个操作没有返回0,因为它是false

<?php
    $a = 1;
    $b = 5;
    print ($a > $b);
    echo "Output";
    print ($a < $b);
?>

共有3个答案

百里海超
2023-03-14

这是由于PHP处理假值的方式。

echo($a)

若要使语句输出0表示false条件,需要强制转换为整数:

print (int)($a > $b);

农鸿达
2023-03-14

整数比较($a)

戈念
2023-03-14

不幸的是,这是一个非常普遍的误解。0不是falsefalsefalse,一个布尔值。00,一个数字。0在非类型安全比较中等于false

当您echoprintfalse时,它被转换为一个字符串。false转换为字符串是",一个空字符串。true转换为字符串为"1",字符串"1"。

阅读http://php.net/manual/en/language.types.string.php#language.types.string.casting.

 类似资料:
  • 问题内容: 当我比较具有相同下划线字符串的两个StringBuilder对象时,即使value应该为true也会返回。 问题答案: 这是因为不会覆盖类中的方法。 您将必须将两个对象都转换为,然后进行比较 这将为您提供正确的结果。显然,您必须注意 null 检查等。 根据合同,如果覆盖equals,则也必须覆盖它们,但是由于可变,因此其值的任何更改都会影响对象的哈希码。如果用作键,可能会导致存储的值

  • 在我的舱单中: 主要活动

  • 我被难倒了,试图让我的密码成功地与bcrypt使用node进行比较。也许我错过了什么,但是在创建帐户时,我在signup方法中执行了以下操作(有些代码被缩写): 一切正常。我的数据库有加密密码。但当用户登录时,我无法从bcrypt获得成功的结果。比较: 而我总是以无效的密码结束。在与我从数据库中提取的密码进行比较之前,我是否需要获取明文密码并重新加密它?

  • 在这两行中都输出。它们是相同的东西,所以输出的不应该是吗?

  • 我们计划在客户机-服务器模式下使用Infinispan。该架构有许多客户端(客户端1、客户端2等)和分布式infinispan网络。 我们需要定期更新缓存中的数据,比如每5小时更新一次。所有客户端都可以更新数据。如果其中一个(比如客户端1)正在更新,我们需要防止其他人做同样的工作。更新完成后,所有客户端再等待5个小时,其中任何一个客户端都将再次进行更新。 Infinispan为此提供了版本化操作,

  • 我有一个简单的代码,可以从第14列开始将转置的范围复制到另一张表的最后一行 它按原样返回零结果。如果我将destrow从公式更改为simple 2(这是现在最后一个空行),则效果很好。为什么不返回目标工作表中的最后一行索引?