PHP对字符串的递增运算分析


Posted in PHP onAugust 08, 2010

有同学问了一个问题:

<?php 
for($i = 'A'; $i <= 'Z'; $i++) { 
echo $i; 
}

输出是啥?

输出是:

ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARAS…….

为啥?

其实很简单, PHP的手册中也有说明, 只不过恐怕很多人不会一章一节的把手册仔细阅读一遍:

PHP follows Perl's convention when dealing with arithmetic operations on character variables and not C's. For example, in Perl ‘Z'+1 turns into ‘AA', while in C ‘Z'+1 turns into ‘[‘ ( ord(‘Z') == 90, ord(‘[‘) == 91 ). Note that character variables can be incremented but not decremented and even so only plain ASCII characters (a-z and A-Z) are supported.

在处理字符变量的算数运算时,PHP 沿袭了 Perl 的习惯,而非 C 的。例如,在 Perl 中 ‘Z'+1 将得到 ‘AA',而在 C 中,'Z'+1 将得到 ‘[‘(ord(‘Z') == 90,ord(‘[‘) == 91)。注意字符变量只能递增,不能递减,并且只支持纯字母(a-z 和 A-Z)。

也就是说, 如果:

$name = "laruence"; 
++$name; //将会是"laruencf"

而:
$name = "laruence"; 
--$name; //没有影响, 还是"laruence"

所以, 这个问题的原因就是当$i = Z的时候, ++$i成了AA, 而字符串比较的话,
AA,BB,XX一直到YZ都是小于等于Z的… so..
PHP 相关文章推荐
用PHP查询域名状态whois的类
Nov 25 PHP
php巧获服务器端信息
Dec 06 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
判断是否为指定长度内字符串的php函数
Feb 16 PHP
php通过asort()给关联数组按照值排序的方法
Mar 18 PHP
Win7下手动安装apache2.2、php5.4笔记
Apr 03 PHP
php实现过滤字符串中的中文和数字实例
Jul 29 PHP
PHP+Ajax+JS实现多图上传
May 07 PHP
PHP邮箱验证示例教程
Jun 01 PHP
php使用preg_match()函数验证ip地址的方法
Jan 07 PHP
php微信开发之图片回复功能
Jun 14 PHP
php二维数组按某个键值排序的实例讲解
Feb 15 PHP
PHP原理之异常机制深入分析
Aug 08 #PHP
php include加载文件两种方式效率比较
Aug 08 #PHP
将一维或多维的数组连接成一个字符串的php代码
Aug 08 #PHP
php简单提示框alert封装函数
Aug 08 #PHP
php递归实现无限分类生成下拉列表的函数
Aug 08 #PHP
php用数组返回无限分类的列表数据的代码
Aug 08 #PHP
php自定义函数之递归删除文件及目录
Aug 08 #PHP
You might like
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
javascript 解析url的search方法
2010/02/09 Javascript
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
js Function类型
2011/12/04 Javascript
处理及遍历XML文档DOM元素属性及方法整理
2013/08/23 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
js实现双色球效果
2020/08/02 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Django内容增加富文本功能的实例
2017/10/17 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
Aosom西班牙:家具在线商店
2020/06/11 全球购物
个人简历自我评价
2014/02/02 职场文书
《母鸡》教学反思
2014/02/25 职场文书
服装设计师职业生涯规划范文
2014/02/28 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
文明倡议书
2015/01/19 职场文书
杜甫草堂导游词
2015/02/03 职场文书