为什么从右到左“打印”打印?

时间:2012-07-18 14:57:20

标签: php

任何人都可以向我解释这是如何运作的:

<?php
    print 5 . print 6 . print 7;
?>

打印:76151

我知道1print函数的返回值,但为什么函数的调用顺序相反?

3 个答案:

答案 0 :(得分:9)

我认为这是因为点运算符是left-associative

表达式看起来像括号:

print 5 . (print 6 . (print 7));

答案 1 :(得分:2)

您的功能是从右到左进行评估。

跟踪类似于:

print (5 . print 6 . print 7)

打印7首先评估,打印7并返回1.

print (5 . print 6 . 1)

这跟踪打印61并返回1最后:

print (5 . 1)

因此你有76151。

答案 2 :(得分:0)

您的表达可以这样写:

print (5 . print (6 . print 7));

print 61print 7返回布尔值1,这就是为什么还会打印1