PHP中的数字与字符串比较

PHP中的比较运算符有点诡异,很容易出错,现列出比较规则:

1、当两个字符进行大小比较时,是比较着这两个字符的ASCII码大小——这条很容易理解。

2、当两个字符串进行大小比较时,是从第一个字符开始,分别比教对应的ASCII大小,只要从从某个对应位置开始,其中一个字符串的当前位置字符大于另一个字符串对应位置字符,即直接判别出这两个字符串大小,如‘ba‘>‘az‘——这条其实大家也都知道的。

那么‘10‘与‘a‘比较呢,当然还是一样的啦,首先将‘1‘和‘a‘ASCII码进行比较,‘a‘大。

3、当一个数字与一个字符串/字符进行大小比较时,首先系统尝试将此字符串/字符转换为整型/浮点型,然后进行比较,如‘12bsd‘转型为12,‘a‘转型为0,千万需要注意的是此时不是将其对应的ASCII码值与数字进行大小比较了。

其实同样的道理,‘a‘+10结果也是10。

并且容易忽略的:0 与任意不可转化为数字的字符串比较(操作符为==), 均返回 true。

最后就会出现如下结果:

1 var_dump(‘1000000‘<‘a‘);    //result: boolean true
2 var_dump(‘a‘<1);            //result: boolean true
3 var_dump(1<‘1000000‘);      //result: boolean true

自己的实例:

<?php
var_dump(‘你妹‘>=‘你大爷‘);
?>

输出结果:boolean true

汉字先通过Gbk或者utf-8方式转码,汉字在底层会转成字母

时间: 2024-10-10 15:24:40

PHP中的数字与字符串比较的相关文章

C语言中把数字转换为字符串 【转】

在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望.由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出.这也导致sprintf 比printf 有用得多. sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, argument] ... );除了前两个参数类型固定外,后面可以接任意多个参数.而它的精华,显然就在第二个

C语言中把数字转换为字符串

转载:http://www.eefocus.com/haijiaoyouzi/blog/11-03/206684_4b122.html 将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望.由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出.这也导致sprintf 比printf 有用得多.sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char

python向mysql中插入数字、字符串、日期总结

import pymysql# 连接数据库 conn = pymysql.connect( host="10.62.1.1", port=3306, user="root", password="root", database="fe_auto", charset="utf8") # 生成游标对象cursor = conn.cursor()case_id = 11111operator = 'zcy'fro

将text中的数字转换为字符串

// var a = '{"name": 12,"number": "123456789898988899b"}'; var a = '{"name": 12,"number": 123456789898988899}';var b = a.replace(/\":\s*(\d{17,})/g,'\":\"$1\"'); // var c = JSON.stringi

C# 使用正则表达式去掉字符串中的数字

C# 使用正则表达式去掉字符串中的数字 // 去掉字符串中的数字public static string RemoveNumber(string key){    return System.Text.RegularExpressions.Regex.Replace(key, @"\d", "");} // 去掉字符串中的非数字public static string RemoveNotNumber(string key){    return System.Tex

(转)取字符串中所有数字

c# 获取字符串中的数字 /// /// 获取字符串中的数字 /// /// 字符串 /// 数字 例子1: public static decimal GetNumber(string str) {     decimal result = 0;     if (str != null && str != string.Empty)    { // 正则表达式剔除非数字字符(不包含小数点.)     str = Regex.Replace(str, @"[^\d.\d]&quo

python基础(5):数字和字符串类型

今天总结一下数据类型中的数字和字符串型. 预习: # 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分) name = " aleX" # 1) 移除 name 变量对应的值两边的空格,并输出处理结果 # 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果? # 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果? # 4) 将 name 变量对应的值中的 "l" 替换为

Python3中字符串中的数字提取方法

逛到一个有意思的博客http://cuiqingcai.com/category/technique/python 在里面看到一篇关于ValueError: invalid literal for int() with base 10错误的解析,针对这个错误,博主已经给出解决办法,使用的是re.sub 方法 1 totalCount = '100abc' 2 totalCount = re.sub("\D", "", totalCount) 但是没有说明什么含义,于

C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字

/// 去掉字符串中的数字 public static string RemoveNumber(string key)          {              return Regex.Replace(key, @"\d", "");          } //去掉字符串中的非数字public static string RemoveNotNumber(string key)  {      return Regex.Replace(key, @"