为什么 echo 3 . print(2) . print(4) . 5 . &am…
2018-11-05 08:24:47来源:博客园 阅读 ()
例子:请写出echo 3 . print(2) . print(4) . 5 . 'c'的输出结果为____?
许多人看到这个题的第一印象是输出结果不就是3245c嘛,然而正确的是答案却是45c2131,是不是感觉不可思议?
想要分析原因首先我们需要明确以下几点:
- PHP中的.连接符是从左向右执行的;
- echo和print输出都是需要占用io的;
- print函数有返回值且始终返回1。
- print函数在打印输出时,会清空io存储
然后我们再来分析上面的的语句的执行过程
echo 3 . print(2) . print(4) . 5 . 'c';
程序从左至右执行,
第一步:
最初在io存储处存入 字符串 c,接着遇到5,存入io,此时io内容为5c, echo 在碰到print()时候将执行print(),即在把 5 放入io存储后由print(4)将数字4也同样压入io存储中,此时io存储中数据为45c,由于print()为输出函数(官方介绍print实际是语言结构,不是函数),所以此时会执行一次io输出操作,即输出 45c 到输出界面,清除io存储,io存储内此时数据为'',print()执行完成后返回1,此时界面上已经有了45c,而代码则变成了
echo 3.print(2).1;
第二步:
同上以此类推,这次会先将1放入io内,接着讲2放入io内,此时io内的内容为21,print执行输出操作,清空io,此时屏幕相等于已经输了了45c21,代码则变为了
echo 3.1;
第三步:
讲1和3放入io,此时io内容为31,echo 将io内容输出到屏幕,此时最终结果为45c2131
同类例题:
echo 3 . print(2) . print(4) . 5 . 'c' . print(6) . print(7) . 'b' . print(8) . 'a';的结果是什么呢?
结果是:8a7b16145c12131
有兴趣的可以看看自己的推算出的结果是否是正确的。
参考:https://blog.csdn.net/inite/article/details/74130350
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 为什么选择PHP作为网站开发的语言 2019-08-23
- 我为什么不使用session 2019-06-20
- PHP中的sprintf()函数的学习研究笔记 2019-06-20
- PHP新手上路(二) 2019-06-16
- 内置函数 2019-05-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash