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 相关文章推荐
Zend 输出产生XML解析错误
Mar 03 PHP
php 中英文语言转换类代码
Aug 11 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
Jan 16 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
PHP测试程序运行时间的类
Feb 05 PHP
浅析php创建者模式
Nov 25 PHP
php实现的微信红包算法分析(非官方)
Sep 25 PHP
PHP实现查询手机归属地的方法详解
Apr 28 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
php中对象引用和复制实例分析
Aug 14 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 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网页后退不再出现过期
2007/03/08 PHP
php MySQL与分页效率
2008/06/04 PHP
PHP 源代码压缩小工具
2009/12/22 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
Firefox outerHTML实现代码
2009/06/04 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
node.js中fs.stat与fs.fstat的区别详解
2017/06/01 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
python实现五子棋小游戏
2020/03/25 Python
python安装requests库的实例代码
2019/06/25 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
python selenium xpath定位操作
2020/09/01 Python
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
五年级语文教学反思
2014/01/30 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
红色革命电影观后感
2015/06/18 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
2015团员个人年度总结
2015/11/24 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python