假设下面的代码:回声和打印声明
<?php
echo 'hello' . print 123;
执行。
我期望的是hello123
,但实际输出是123hello1
。
为什么123最先?为什么输出包含1
?
(我也试图把一对括号周围hello
,但还是同样的结果。)
假设下面的代码:回声和打印声明
<?php
echo 'hello' . print 123;
执行。
我期望的是hello123
,但实际输出是123hello1
。
为什么123最先?为什么输出包含1
?
(我也试图把一对括号周围hello
,但还是同样的结果。)
echo 'hello' . print 123;
这样可以将'hello'
与返回值的print 123
。在print
返回的值1
,它输出123
。级联的hello1
是输出之后由echo
。因此,评价是:
123
1
'hello'
和1
hello1
。为什么123最先?
可能是因为print语句首先被执行并且应该打印'123'。
为什么输出结尾包含1?
由于“打印”返回1,你的回声声明回声的那个“1”
的print的返回值始终是。
你的代码中有一个级联点字符:
'hello' . print 123;
因此所有零件都连接前评估:
然后echo会显示评估字符串:
echo 'hello'.'1' // '1' is the return value of print
打印在字符串上的最后一个字符串是123hello1
。
对不起。我不是要求解决这个问题。我想要的是解释。谢谢你的帮助 – sc1013 2013-04-29 13:44:25