我目前正在浏览 Zend PHP 5 认证实践测试
的问题并看到以下内容:
print print('5') + print('4');
// output
// 461
// or
echo '3' + '0.5' , print('2') + 1;
// output
// 3.531
它是如何工作的?来自 http://php.net/manual/en/function.print.php 的描述和示例 没有澄清任何事情......
最佳答案
print
不是一个函数,它是一个语言结构。它总是返回1
,并且它的优先级低于算术运算符。所以
print print('5') + print('4');
相当于:
print (print ('5' + print '4'));
这会执行以下步骤:
print 4
-- 打印4
并返回1
。- 计算
5 + 1
,返回6
。 print 6
-- 打印6
并返回1
print 1
-- 打印1
(也返回 1,但没有接收到如此无关紧要的结果)。
所以
echo '3' + '0.5' , print('2') + 1
相当于:
echo (3 + 0.5);
echo (print (2 + 1));
这会执行以下步骤:
- 计算
3 + 0.5
,返回3.5
echo 3.5
,打印3.5
- 计算
2 + 1
,返回3
print 3
,打印3
并返回1
。echo 1
,打印1
关于php - 构造 `print` 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20847396/