php字符串为什么可以直接比较大小

发布网友 发布时间:2022-04-06 04:19

我来回答

3个回答

热心网友 时间:2022-04-06 05:49

可能是实验巧合,用逻辑运算符比较字符串时,会先把字符串转换成数字,再比较数值。

比如

"10 hello"会转换成整型10

"9.8"会转换成浮点9.8f

转换后再进行比较。


比较字符串或字节数据最好用strcmp之类的字符串函数。



题主是个无脑的猪,选了个错误答案

<?php
$a='10';
$b='9.8';
var_mp($a>$b);
var_mp(strcmp($a,$b)>0);

boolean true
boolean false


所有的资料都会告诉你,字符串绝不能用逻辑运算符。

热心网友 时间:2022-04-06 07:07

也在等,wq r如果你找到答案 ,,给我发一下呀

热心网友 时间:2022-04-06 08:41

你这种比较有问题的,因为它会把字符串的首字母做为比较对象,如果第一个数是2,号一个第一个是1,那么第一个就大于第二个,无论后面多长。字母也是,如果 第一个是b,另一个是a,那么后面无论什么,第一个大于第二个。相同则比较下一个。追问按你说的,这两个字符串应该相等才对,但是结果是第一个小于第二个字符串,即跟strcmp的基理一样,按顺序比较'We are family '这些都相等然后比较‘A’和第二个字符串相应位置的'B',得出第str1<str2

追答你仔细看我说的,相同则比较下一个字符串,其实通俗来讲是一样的道理。不过出于日后维护和规范来说,不建议。php 版本是会升级的,以前和多写法现就没用了。养成好习惯还是比较好

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com