在我的代码中,我想比较两个字符串,首先我用===做到了,但是后来我尝试了strcmp()。当我写的时候:
echo strcmp("test","test");
结果是0。我也用===
尝试过echo ($subject === $empty)
我用了我想比较的实际字符串。
但是。如果zweo字符串相同,为什么字符串comparde方法仅为True。因为:
echo strcmp("test","tedddst");
提供True。
答案 0 :(得分:2)
strcmp
不返回boolean true
/ false
,而是返回int
。来自strcmp
documentation:
如果str1小于str2,则返回<0;否则,返回0。如果str1大于str2,则> 0;如果相等,则为0。
答案 1 :(得分:0)
accountant
根据文档所述为二进制安全字符串比较。
strcmp
如果str1小于str2,则返回<0;否则,返回0。如果str1大于str2,则> 0;如果相等,则为0。
int strcmp ( string $str1 , string $str2 );
将返回===
或true
答案 2 :(得分:0)
strcmp函数比较给定的字符串并返回数字,而不是布尔值。
在最后一个示例中,返回值不同于0,如果您以布尔类型解析它,则返回True。
回到第一个问题,字符串比较。您可以检查strcmp(str1, str2)
是否等于0,而不是布尔值。
您可以在引用的URL中查看“返回值”部分以获取更多信息。