Php 比较以零开头的两个字符串
我想互相检查两个字符串,一个以零开头,一个没有。但这似乎导致了一个真实的结果。例如:Php 比较以零开头的两个字符串,php,Php,我想互相检查两个字符串,一个以零开头,一个没有。但这似乎导致了一个真实的结果。例如: if("098" == "98"){ return true; } 有人能解释一下为什么PHP会产生这样的结果吗?我能想到的一个简单原因是,如果两种类型不同,运算符==在两种不同类型之间进行强制转换,而运算符===执行“类型安全比较”。这意味着只有当两个操作数的类型和值相同时,它才会返回true 从你的例子来看 if("098" == "98"){ //true } 另外,一些PHP函数也有参数
if("098" == "98"){
return true;
}
有人能解释一下为什么PHP会产生这样的结果吗?我能想到的一个简单原因是,如果两种类型不同,运算符==在两种不同类型之间进行强制转换,而运算符===执行“类型安全比较”。这意味着只有当两个操作数的类型和值相同时,它才会返回true 从你的例子来看
if("098" == "98"){
//true
}
另外,一些PHP函数也有参数来表示严格的检查。一个例子是数组中的
如果与=
进行比较,php会尝试在不考虑类型的情况下对它们进行比较。实际上,php将这两个数字转换成一个整数,当98等于98时,“098”==“98”
也是真的
避免这种情况的最好方法是使用===
,它也会在不进行任何转换的情况下比较类型
if("098" === "98"){
return true;
}
如果您添加===它意味着严格的检查,它应该是falseYes,但我想知道为什么==不起作用。谢谢你的评论。