1
6

PHP中输出数字的小猫腻..

Author Jessica     Category PHP     Tags

先来出道题..一共三个..每个33分^_^..看看你能得多少分..

不要执行..自己想结果..这样印象才深刻..相信我.

  1. <?php  
  2. echo 012;  
  3.  
  4. $a = 012;  
  5. echo (string)$a;  
  6.  
  7. $a = '012';  
  8. echo (int)$a

 

记下你的结果.然后我们执行以下..输出的结果是..

  1. <?php  
  2. echo 012;  
  3. //输出10  
  4. $a = 012;  
  5. echo (string)$a;  
  6. //输出10  
  7. $a = '012';  
  8. echo (int)$a;  
  9. //输出12 

 第一个问什么输出10??其实这个是最简单的了..因为当你在数字前面加0的话..就代表这个数字是一个八进制的数字.

所以八进制的12转换成十进制就是10喽..

第二个为什么已经把A强制类型转换成字符串了.为什么还是10…这个具体的原理我也不太清楚了.不过我认为他等同这样的.

  1. <?php  
  2. echo '' . 012;  
  3. //输出10 

到底是因为什么??自己去猜想吧:)..

还有最后一个..已经转换为int了..为什么输出的是12而不是10..

按照我刚才的理论这个应该等同于.

  1. <?php  
  2. echo 0 + '012';  
  3. //输出12 

注意..这时候用的是”+“而不是”.“..

因为用”.”是连接字符串.PHP会认为他是一个字符串.我们想给他转成int..在int中连接需要用”+”.

这样理解强制类型转换是不是更好呢??

你得多少分??如果这是一道面试题呢??

6 Comments to “ PHP中输出数字的小猫腻.. ”

  • MoHock 2009年06月1日 于 01:30

    …鸭蛋~~~

    都是很基础的东西~~~

  • 游客 2009年06月3日 于 13:35

    我晕啊 一题都没有做对

  • 游客 2009年06月4日 于 05:48

    NND,第一题答对了一半

    其他的全错,

  • kazaff 2009年06月30日 于 08:44

    0分~日自己~

  • jKey 2009年08月25日 于 11:44

    基础还是很重要的

  • 游客 2009年09月9日 于 08:36

    没什么实际用途

Post comment

分类目录

最近文章

近期评论

文章归档

标签

.net AJAX button Comet CSS Discuz! DIV+CSS Flash Form Google HTML编辑器 IE8 Java JavaScript jQuery JSP md5 MySQLReback OAuth Oracle PHP php-fpm PNG Punny SkiyoTabs tab TagCloud Vista Web2.0 Windows7 上传 加密 图标 本站原创 模板 模板引擎 源码 登录 短网址 石家庄 算法 编译 面向对象 魔术方法

链接表