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 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
PHP出错界面
Oct 09 PHP
强烈推荐:php.ini中文版(1)
Oct 09 PHP
WHOIS类的修改版
Oct 09 PHP
PHP新手上路(八)
Oct 09 PHP
php GeoIP的使用教程
Mar 09 PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
PHP实现邮件群发的源码
Jun 18 PHP
php生成excel列序号代码实例
Dec 24 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
php的常量和变量实例详解
Jun 27 PHP
PHP接口类(interface)的定义、特点和应用示例
May 18 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作的文本留言本的例子(四)
2006/10/09 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
2021/01/18 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
python中函数默认值使用注意点详解
2016/06/01 Python
Python字符编码判断方法分析
2016/07/01 Python
Python中包的用法及安装
2020/02/11 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
大学生如何写自荐信
2014/01/08 职场文书
公开承诺书格式
2014/05/21 职场文书
2014年工程部工作总结
2014/11/25 职场文书
护士自我推荐信范文
2015/03/24 职场文书
借款民事起诉状范文
2015/05/19 职场文书
单位病假条范文
2015/08/17 职场文书