PHP strcmp不工作

PHP strcmp不工作,php,strcmp,Php,Strcmp,在我的代码中,我想比较两个字符串,首先我使用===进行比较,但后来我尝试使用strcmp。当我写作时: echo strcmp("test","test"); 结果是0。我也试过了=== echo ($subject === $empty) 在那里,我使用了我想要比较的实际字符串 不过。为什么只有当zweo字符串不相同时,字符串比较方法才为真。因为: echo strcmp("test","tedddst"); 传递True。strcmp不返回布尔值True/false,它返回一个int。

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

echo strcmp("test","test");
结果是0。我也试过了===

echo ($subject === $empty)
在那里,我使用了我想要比较的实际字符串

不过。为什么只有当zweo字符串不相同时,字符串比较方法才为真。因为:

echo strcmp("test","tedddst");
传递True。

strcmp不返回布尔值True/false,它返回一个int。来自:

如果str1小于str2,则返回<0;>如果str1大于str2,则为0;如果两者相等,则为0

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

int strcmp ( string $str1 , string $str2 );
如果str1小于str2,则返回<0;>如果str1大于str2,则为0;如果两者相等,则为0

===将返回true或false

函数比较给定字符串并返回一个数字,而不是布尔值

在上一个示例中,返回的值不同于0,如果以布尔类型解析它,则返回的值为真

回到第一个问题,字符串比较。您可以检查strcmpr1、str2是否等于0,而不是布尔值


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

您需要了解PHP将布尔值true等同于什么。true==1&&true==11。不要使用bools来评估此函数的响应。用===0测试相等性。这个问题应该结束,因为它只是因为提问者没有阅读。
int strcmp ( string $str1 , string $str2 );