假设以下代码:
<?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
。print的返回值始终为1。
您的代码有一个连接点字符:
'hello' . print 123;
所以所有部分在连接之前都被评估:
然后 echo 显示评估的字符串:
echo 'hello'.'1' // '1' is the return value of print
打印在字符串上的最终字符串是123hello1
.
为什么123排在第一位?
可能是因为 print 语句首先执行并按应有的方式打印 '123'。
为什么输出最后包含 1 ?
因为 'print' 返回 1,而您的 echo 语句回显了 '1'