很不错的图示加解释,原文地址:点击打开链接
例子: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输出调用和执行顺序。