php print 这个坑,遇到连接符从右往左执行

在使用php的时候,我很少用到print这个函数,哦,不对,这是一个语言结构,而并非日函数!

看一段代码

<?php  print('a').print('b').print('c');

这个会输出什么?

大多数人的直觉肯定是abc,但如果你运行一下,你会发现输出的是:cb1a1。

啥啥,不是说从右往左执行,你输出个cba就行了嘛,这个1是什么鬼?

好了,你现在该明白,print为什么是一个语言结构而不是函数了吧!print始终返回1,所以这个1就是后面print返回的啦,括号不括号什么的,根本不影响。

首先会print(‘c’) 返回1,输出c

然后print(‘b’)返回1,输出b1,这个1就是print(‘c’)返回的啦

然后print(‘a’),返回1,输出a1

最终结果可不就是cb1a1嘛!

为什么会从左到右,这个估计还得看php的源代码了,目前翻遍了搜索引擎,也没找到一个解释的。

赞赏

微信赞赏支付宝赞赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注