我正在比较两个字符串
strcmp(1,2),我得到"-1",我的代码在下面
<?php
echo strcmp(1,2);
?>
Run Code Online (Sandbox Code Playgroud)
输出:-1

请让我知道为什么我得到假的-1,以及如何处理它?
1小于2,strcmp定义为返回:
如果str1小于str2,则返回<0; 如果str1大于str2则> 0,如果它们相等则为0.
因此,行为是预期的.
请注意以下警告:
如果您依赖strcmp进行安全字符串比较,则两个参数都必须是字符串,否则结果会非常难以预测.例如,您可能会收到意外的0,或返回NULL,-2,2,3和-3的值.
来自对文档页面的评论strcmp.
PHP充满了这种意想不到的行为.在你的情况下,我会确保两个参数都被转换为字符串以避免混淆:
$first = 1;
$second = 2;
echo strcmp((string)$first, (string)$second);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5438 次 |
| 最近记录: |