• 我们中的有些人,注定要在日常生活的点滴中去寻找生命的意义。---- 《生活大爆炸》|

PHP 中 echo 和 print 和 ‘.’ 运算符混合的运算分析

PHP admin 3年前 (2018-04-02) 813次浏览 已收录 0个评论

【转】CSDN — 关于 PHP 中 echo 和 print 和 ‘.’ 运算符混合的运算分析

很不错的图示加解释,原文地址:点击打开链接

例子:echo 3 . print(2) . print(4) . 5 . ‘c’ . print(6) . print(7) . ‘b’ . print(8) . ‘a’;

首先我们来明确以下几点:
一·在PHP中.是左连接符,即是从右向左执行的。
二·echo 和 print 都是输出函数需要占用io。
因为.是左链接符,所以首先我们可以看到进入执行print(8) . ‘a’ ,我们根据io输出为界线点可以将上面的输出分解为如下样式:
print(8) . ‘a’;
print(7) . ‘b’;
print(6) ;
print(4) . 5 . ‘c’;
print(2);
echo 3
几个节点,我们来看一下io存储中的操作。
第一次操作(print(8) . ‘a’):最初在io存储处存入 字符串 a ,echo 函数在碰到函数时候将执行函数,即在把 ‘a’ 放入io存储后由print(8)将字符8也同样压入io存储中,此时io存储中数据为8a,由于print()为输出函数,所以此时会执行一次io输出操作,即输出 8a 到输出界面,清除io存储,io存储内此时数据为”,print()执行成功后返回1,将1放入到io存储中,图示这个过程为:


第二次操作(print(7) . ‘b’):如同第一个操作过程,直接上图:

第三次操作(print(6)):

第四次操作(print(4) . 5 . ‘c’):

第五次操作(print(2))

第六次操作(echo 3)

echo没有返回值。

从而得到输出结果,这个问题主要是需要我们理解io输出调用和执行顺序。

 

 

echo ‘1’.print(2)+3; 的输出结果为什么是511?

今天看到一道有趣的题目,如上所示。结果为什么会是511呢? 这个结果的计算分为三步来理解: 首先计算的是 右边print(2)+3,这个你可以直接理解成print(2+3),得到的结果是5。而print是一个函数, 它的返回值总是1。 第二步就是echo ‘1’.print(‘结果’)(返回值是1),因此会得到11的结果。 第三部就是将之前计算的结果进行连接,并最终进行输出,得到的结果就是511了。 类似的,可以解释为什么echo ‘2’ . print(2) + 3;的结果是521, echo ‘1’ . (print ‘2’) + 3;结果是214


本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 中 echo 和 print 和 ‘.’ 运算符混合的运算分析
喜欢 (0)

您必须 登录 才能发表评论!