php - 构造 `print` 是如何工作的?

标签 php

我目前正在浏览 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'));

这会执行以下步骤:

  1. print 4 -- 打印 4 并返回 1
  2. 计算 5 + 1,返回 6
  3. print 6 -- 打印 6 并返回 1
  4. print 1 -- 打印 1(也返回 1,但没有接收到如此无关紧要的结果)。

所以

echo '3' + '0.5' , print('2') + 1

相当于:

echo (3 + 0.5);
echo (print (2 + 1));

这会执行以下步骤:

  1. 计算 3 + 0.5,返回 3.5
  2. echo 3.5,打印 3.5
  3. 计算 2 + 1,返回 3
  4. print 3,打印 3 并返回 1
  5. echo 1,打印 1

关于php - 构造 `print` 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20847396/

相关文章:

php - 返回图像以在浏览器中显示

php - 为什么我不能用 <br> 填充文本区域,顺便说一下我使用的是 ajax

php - 如果连接到数据库,Bootstrap 中的类行将不起作用

php - 即使不需要,我是否应该在 PHP 中的全局函数之前使用反斜杠?

javascript - 向ckeditor中的多个元素添加内联样式

php - PHP 或 Python、perl 中的 cURL 脚本

php - MySql 显示分数为 10 或以上的用户的名称和数据,但仅显示分数 < 10 的用户的名称

来自数据库的数量卷的 Javascript 条形图未显示在 php 网页中

php - 对一列求和并保存为变量

PHP - Curl 正在添加 HTTP ://to my HTTPS URL