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 木马攻击防御技巧
Jun 13 PHP
优化php效率,提高php性能的一些方法
Mar 24 PHP
php实现用户在线时间统计详解
Oct 08 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
Nov 22 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
Jul 18 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
Jun 03 PHP
PHP sdk实现在线打包代码示例
Dec 09 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
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
详谈javascript异步编程
2016/02/21 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
详解VUE 数组更新
2017/12/16 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
python中安装django模块的方法
2020/03/12 Python
Python requests接口测试实现代码
2020/09/08 Python
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
拾金不昧的表扬信
2014/01/16 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
酒店员工管理制度
2015/08/05 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
python中super()函数的理解与基本使用
2021/08/30 Python
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python