PHP strcmp 不工作

PHP strcmp not working

在我的代码中,我想比较两个字符串,首先我使用 === 进行比较,但后来我尝试了 strcmp()。当我写:

echo strcmp("test","test");

结果是0,我也用===

试过了
echo ($subject === $empty)

我使用了我想要比较的实际字符串。

不过。如果 zweo 字符串不相同,为什么字符串比较方法只有 True。因为:

echo strcmp("test","tedddst");

提供 True。

strcmp 不是 return 一个 boolean true/false,它 return 是一个 int。来自 strcmp documentation:

Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.

strcmp 

根据文档是二进制安全字符串比较。

int strcmp ( string $str1 , string $str2 );

Returns < 0 如果 str1 小于 str2; > 0 如果 str1 大于 str2,如果它们相等则为 0。

=== 将 return truefalse

strcmp 函数比较给定的字符串和 return 一个数字,而不是布尔值。

在您的最后一个示例中,returned 值不同于 0,如果您将其解析为布尔类型,则为 True。

回到你的第一个问题,字符串比较。您可以检查 strcmp(str1, str2) 是否等于 0,而不是布尔值。

您可以查看参考文献 URL 中的 return 值部分了解更多信息。