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 相关文章推荐
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
基于php伪静态的实现详细介绍
Apr 28 PHP
PHP删除目录及目录下所有文件的方法详解
Jun 06 PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
Jan 07 PHP
php计算两个整数的最大公约数常用算法小结
Mar 05 PHP
php计算整个目录大小的方法
Jun 19 PHP
thinkphp中字符截取函数msubstr()用法分析
Jan 09 PHP
thinkphp框架使用JWTtoken的方法详解
Oct 10 PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 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站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
php生出随机字符串
2017/07/06 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
Mac下安装vue
2018/04/11 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
python学习笔记:字典的使用示例详解
2014/06/13 Python
python自动化报告的输出用例详解
2018/05/30 Python
对python中的argv和argc使用详解
2018/12/15 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
python 实现绘制整齐的表格
2019/11/18 Python
基于python实现地址和经纬度转换
2020/05/19 Python
Python 里最强的地图绘制神器
2021/03/01 Python
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
大学生职业生涯规划方案
2014/01/03 职场文书
影子教师研修方案
2014/06/14 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python
微信小程序用户授权最佳实践指南
2021/05/08 Javascript