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 相关文章推荐
php array_merge下进行数组合并的代码
Jul 22 PHP
PHP 各种排序算法实现代码
Aug 20 PHP
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
第五章 php数组操作
Dec 30 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
php+mysql实现无限分类实例详解
Jan 15 PHP
php生成与读取excel文件
Oct 14 PHP
php中实现字符串翻转的方法
Feb 22 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 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
?繁体转换的class
2006/10/09 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
自荐信格式技巧有哪些呢
2013/11/19 职场文书
教育局长自荐信范文
2013/12/22 职场文书
纠风工作实施方案
2014/03/15 职场文书
八一建军节演讲稿
2014/09/10 职场文书
作风建设剖析材料
2014/10/06 职场文书
商铺租房协议书范本
2014/12/04 职场文书
《确定位置》教学反思
2016/02/18 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android