PHP下对字符串的递增运算代码


Posted in PHP onAugust 21, 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..

作者: laruence

PHP 相关文章推荐
php快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 PHP
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
Jul 08 PHP
PHP实现数组递归转义的方法
Aug 28 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 PHP
php实现购物车功能(下)
Jan 05 PHP
分析php://output和php://stdout的区别
May 06 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
PHP单元测试配置与使用方法详解
Dec 27 PHP
深入理解PHP原理之异常机制
Aug 21 #PHP
php中var_export与var_dump的区别分析
Aug 21 #PHP
php visitFile()遍历指定文件夹函数
Aug 21 #PHP
php excel类 phpExcel使用方法介绍
Aug 21 #PHP
php下正则来匹配dede模板标签的代码
Aug 21 #PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 #PHP
使用VisualStudio开发php的图文设置方法
Aug 21 #PHP
You might like
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
php方法调用模式与函数调用模式简例
2011/09/20 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
php二维数组转成字符串示例
2014/02/17 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
实例浅析js的this
2016/12/11 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
python实现的登录和操作开心网脚本分享
2014/07/09 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
敏捷开发的主要原则都有哪些
2015/04/26 面试题
公益活动邀请函
2014/02/05 职场文书
数控专业自荐书范文
2014/03/16 职场文书
小学生环保倡议书
2014/05/15 职场文书
求职信怎么写范文
2014/05/26 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle