比较两个字符串时输出错误
wrong output when compare two string
我想比较 2 个以太网地址。
我尝试了 trim、strcmo 和替换空字符。但它不起作用
这是我的代码:
<?php
$a='0x0c656968912fF22c17ABf5E190498034542CC475';
$b='0x0c656968912ff22c17abf5e190498034542cc475';
$a2 = str_replace("[=10=]", "", $a);
$b2 = str_replace("[=10=]", "", $b);
var_dump($a == $b);
var_dump($a2 == $b2);
var_dump(strcmp($a,$b));
var_dump(strcmp($a2,$b2));
看起来以上所有 var_dump 都应该 return 正确(strcmp 中为 0),但它们不正确!
为什么?!
这是一个错误吗?
我如何比较这个字符串
您正在体验 PHP 的 strcmp
函数 here.
文档的第一个示例中演示的内容
基本上,比较是区分大小写的。因此,strcmp
不 return 为真,因为 $a
的第 15 位字符 F
是大写的,而在 $b
中是小写的。
见下文,下划线突出显示:
$a='0x0c656968912f_F_22c17ABf5E190498034542CC475';
$b='0x0c656968912f_f_22c17abf5e190498034542cc475';
经过重新考虑,两个字符串之间还有其他大小写不匹配的情况。
我想比较 2 个以太网地址。
我尝试了 trim、strcmo 和替换空字符。但它不起作用
这是我的代码:
<?php
$a='0x0c656968912fF22c17ABf5E190498034542CC475';
$b='0x0c656968912ff22c17abf5e190498034542cc475';
$a2 = str_replace("[=10=]", "", $a);
$b2 = str_replace("[=10=]", "", $b);
var_dump($a == $b);
var_dump($a2 == $b2);
var_dump(strcmp($a,$b));
var_dump(strcmp($a2,$b2));
看起来以上所有 var_dump 都应该 return 正确(strcmp 中为 0),但它们不正确! 为什么?! 这是一个错误吗? 我如何比较这个字符串
您正在体验 PHP 的 strcmp
函数 here.
基本上,比较是区分大小写的。因此,strcmp
不 return 为真,因为 $a
的第 15 位字符 F
是大写的,而在 $b
中是小写的。
见下文,下划线突出显示:
$a='0x0c656968912f_F_22c17ABf5E190498034542CC475';
$b='0x0c656968912f_f_22c17abf5e190498034542cc475';
经过重新考虑,两个字符串之间还有其他大小写不匹配的情况。