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 相关文章推荐
投票管理程序
Oct 09 PHP
php 删除记录实现代码
Mar 12 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
Apr 26 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
codeigniter集成ucenter1.6双向通信的解决办法
Jun 12 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
php构造函数的继承方法
Feb 09 PHP
php开发时容易忘记的一些技术细节
Feb 03 PHP
php快速排序原理与实现方法分析
May 26 PHP
thinkphp 手机号和用户名同时登录
Jan 20 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
Apr 04 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
Dec 02 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
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
二招解决php乱码问题
2012/03/25 PHP
深入php多态的实现详解
2013/06/09 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
2018/07/02 Javascript
vue中rem的配置的方法示例
2018/08/30 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
Python爬虫工程师面试问题总结
2018/03/22 Python
python使用Matplotlib画饼图
2018/09/25 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
旺仔牛奶广告词
2014/03/20 职场文书
黄金酒广告词
2014/03/21 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
党员作风建设自查报告
2014/10/23 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle