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 相关文章推荐
global.php
Dec 09 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
PHP学习笔记之字符串编码的转换和判断
May 22 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
Jun 19 PHP
PHP常用正则表达式集锦
Aug 17 PHP
php实现的树形结构数据存取类实例
Nov 29 PHP
php为字符串前后添加指定数量字符的方法
May 04 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
PHP实现文件上传与下载实例与总结
Mar 13 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 PHP
php微信开发之关注事件
Jun 14 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.MVC的模板标签系统(二)
2006/09/05 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
php时区转换转换函数
2014/01/07 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
php简单判断文本编码的方法
2015/07/30 PHP
Javascript valueOf 使用方法
2008/12/28 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Python 函数基础知识汇总
2018/03/09 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
股东协议书
2014/04/14 职场文书
小学作文评语大全
2014/04/21 职场文书
目标责任书格式
2014/07/28 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
办公室管理规章制度
2015/08/04 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
JS数组的常用方法整理
2021/03/31 Javascript