PHP字符变量奇怪现象的解释
发布:smiling 来源: PHP粉丝网 添加日期:2018-09-15 23:13:34 浏览: 评论:0
首先神奇的PHP是支持字符数据类型的,有同学就写了这样一段代码:
- for ($c = 'a'; $c <= 'z'; $c++) {
- echo $c . ' ';
- }
然而结果却不是他想要的a到z
- a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai
- aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh
- bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg
- ch ci cj ck cl cm cn co cp cq cr cs ct cu cv cw cx cy cz da db dc dd de df
- dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz ea eb ec ed ee
- ef eg eh ei ej ek el em en eo ep eq er es et eu ev ew ex... on to yz
实现a到z的打印有N多的办法,比如说如下几种
- for ($i = 'a'; $i != 'aa'; $i++)
- echo $i . ' ';
- for ($i = ord('a'); $i <= ord('z'); $i++)
- echo chr($i) . ' ';
- echo implode(' ', range('a', 'z'));
但我们还是要解释上面打印的那一堆是什么鬼?
这是因为在处理单个字符变量的算术操作时,PHP沿袭了Perl的用法而非C的。
在Perl中
$a = 'Z';
$a++; //'AA'
在C中
a = 'Z';
a++; //'[' 因为'Z' 的 ASCII 值是 90,'[' 的 ASCII 值是 91
注意字符变量只能递增,不能递减,并且只支持纯字母(a-z 和 A-Z),如下可见:
- $a="9F9";
- $b="9F9";
- var_dump(++$a); //"9G0"
- var_dump(--$b); //"9F9" 不变
然后有写成这样的同学哭了
$a = "9E0";
var_dump(++$a); // float(10)
#这TM又变成科学计数法了啊。。。
PHP从来不按套路出牌啊!
Tags: 变量 字符 现象
相关文章
- ·php安装xdebug后var_dump()不能输变量内容解决办法(2013-12-06)
- ·关于php 静态变量与静态方法(2014-01-17)
- ·php中变量作用域和超级全局变量介绍(2014-05-23)
- ·解决关于PHP“Undefined variable”变量未定义(2014-06-14)
- ·PHP static 静态变量和属性方法使用说明(2014-07-15)
- ·php中static静态类与static 静态变量用法区别(2014-08-29)
- ·php静态变量define,static,const(2014-09-18)
- ·PHP中动态特性学习笔记(2015-04-08)
- ·php给变量取个简短且无歧义的名字(2018-09-15)
- ·使用PHP静态变量当缓存的方法(2020-06-28)
- ·PHP static局部静态变量和全局静态变量总结(2020-09-27)
- ·神盾加密解密教程(一)PHP变量可用字符(2021-01-15)
- ·PHP中变量引用与变量销毁机制分析(2021-04-26)
- ·php中静态类与静态变量用法的区别分析(2021-05-08)
- ·变量在 PHP7 内部的实现(一)(2021-06-30)
- ·变量在 PHP7 内部的实现(二)(2021-06-30)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)