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实现登陆验证码(类似条行码状)
Oct 09 PHP
如何限制访问者的ip(PHPBB的代码)
Oct 09 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
Oct 22 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
探讨:parse url解析URL,返回其组成部分
Jun 14 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
PHP截取指定图片大小的方法
Dec 10 PHP
php二维数组合并及去重复的方法
Mar 04 PHP
PHP中类的继承和用法实例分析
May 24 PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 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
大师制作的中短波矿石收音机
2020/04/02 无线电
实用函数8
2007/11/08 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
2016/07/09 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
Vue组件化开发思考
2018/02/02 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
利用python发送和接收邮件
2016/09/27 Python
python中的随机函数random的用法示例
2018/01/27 Python
python如何读写json数据
2018/03/21 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
Servlet如何得到客户端机器的信息
2014/10/17 面试题
水污染治理专业毕业生推荐信
2013/11/14 职场文书
污水厂厂长岗位职责
2014/01/04 职场文书
出国留学计划书
2014/04/27 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js