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 相关文章推荐
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
Oct 09 PHP
推荐php模板技术[转]
Jan 04 PHP
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
Apr 16 PHP
php产生随机数的两种方法实例代码 输出随机IP
Apr 08 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
Apr 01 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
php跨服务器访问方法小结
May 12 PHP
初识ThinkPHP控制器
Apr 07 PHP
php cookie用户登录的详解及实例代码
Jan 03 PHP
php 人员权限管理(RBAC)实例(推荐)
May 24 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 PHP
Yii 框架使用Forms操作详解
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基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
python在非root权限下的安装方法
2018/01/23 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
Python绘制动态水球图过程详解
2020/06/03 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
1000字打架检讨书
2014/11/03 职场文书
开工典礼致辞
2015/07/29 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL