214。我去试一下。我作弊了,我去看print的函数说明了。

解决方案 »

  1.   

    511很奇怪吧?
    其实也没什么奇怪的
    print 实际上不是一个真正的函数(它是一个语言结构),所以你不需要使用括号参数列表。
    也就是说 print(2) + 3 实际上是 print 2 + 3
    但他却有一个永远为 1 的返回值511 这个5是由 print(2) + 3 产生的
    511 这个1是由 echo '1' 产生的
    511 这个1是由 print 产生的
      

  2.   

    你得到的真是 214 吗?php 版本是多少?
      

  3.   


    <?php
    echo '1'.print(2)+3;
    echo '<br />';
    echo '1'.print(2);
    echo '<br />';
    echo print(2);
    echo '<br />';
    echo print(2)+3;
    echo '<br />';
    $tmp=print(2)+3;
    echo $tmp;
    echo '<br />';
    print(2)+3;
    echo '<br />';
    print '3';
    echo '<br />';
    ?>
    你下手太快了,我刚试出来点感觉。
      

  4.   

    虽然看函数的说明了但我只看了返回值的类型。学C语言养成的习惯。那句不是函数我根本就没注意到。另外echo用了这么长时间居然也没注意到这个不是函数,以前学过VB的原因吧。
      

  5.   

    我不清楚print的返回值是什么,然后看了一下返回值就说我的答案了,所以说作弊了。
      

  6.   

    echo '1'.print(2)+3;
    中 '1'.print(2)+3 这个表达式必须计算完成后,才会传递给 echo 
    而 print(2)+3 打印 5 并返回 1
    于是 5 就出现在最前面了
    echo 实际打印的是 '1'.1 即 11
      

  7.   

    我懂了,作弊的是echo "1".(print"2")+3;