有这样的一题:
echo ‘2’.print(2)+3;
问输出是多少?
运行结果是……(下面有分析过程及答案,提前预告:正确答案不是224,此题并不涉及运算符优先级https://secure.php.net/manual/en/language.operators.precedence.php)
print 实际上不是函数(而是语言结构),所以可以不用圆括号包围参数列表。
print(2) <=> print 2
print (2)+3 <=> print 2+3
所以 echo ‘2’.print(2)+3; ==> print 2+3先输出5,echo ‘2’.1 输出“21”,所以整体输出521 。
类似的情况
echo ‘2’.print(2)+3; //521
echo ‘4’.print(2)+3+1*7; //1241
echo ‘1’.print(2)+3+1*7,33; //121133 注意:逗号会分隔print的参数作用范围