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 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 PHP
Zend的Registry机制的使用说明
May 02 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
Jun 25 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
Linux下创建nginx脚本-start、stop、reload…
Aug 03 PHP
php中的动态调用实例分析
Jan 07 PHP
php编程实现简单的网页版计算器功能示例
Apr 26 PHP
php-app开发接口加密详解
Apr 18 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
Yii框架学习笔记之应用组件操作示例
Nov 13 PHP
php自动加载代码实例详解
Feb 26 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+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
对table和ul实现js分页示例分享
2014/02/24 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
javascript闭包的理解
2015/04/01 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
javascript 易错知识点实例小结
2020/04/25 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Python双向循环链表实现方法分析
2018/07/30 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
医学生求职自荐信
2013/10/25 职场文书
护理专科自荐书范文
2014/02/18 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
简易离婚协议书范本
2014/10/24 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
怎样写工作总结啊!
2019/06/18 职场文书
Python基础之Socket通信原理
2021/04/22 Python