PHP 中奇怪的回显、打印行为?

2024-01-18

以下代码输出43211, why?

  echo print('3').'2'.print('4');

你的语句解析对人类如下。

回显由以下内容组成的串联字符串:

  1. 函数的结果print('3'),这将返回 true,它被字符串化为1
  2. 字符串“2”
  3. 函数的结果print('4'),这将返回 true,它被字符串化为1

现在,这里的操作顺序真的很有趣,不能以43211根本!让我们尝试一个变体来找出问题所在。

echo '1' . print('2') . '3' . print('4') . '5';

这产生4523111

PHP 将其解析为:

echo '1' . (print('2' . '3')) . (print('4' . '5'));

答对了!这print左边首先被评估,打印'45',这让我们

echo '1' . (print('2' . '3')) . '1';

然后是左边print得到评估,所以我们现在已经打印了'4523',留给我们

echo '1' . '1' . '1';

成功。4523111.

让我们来分析一下你的奇怪说法。

echo print('3') . '2' . print('4');

这将打印'4'首先,留给我们

echo print('3' . '2' . '1');

然后评估下一个打印语句,这意味着我们现在已经打印了'4321',留给我们

echo '1';

Thus, 43211.

我强烈建议不要echo计算 a 的结果print, nor print荷兰国际集团的结果echo。这样做一开始就是非常荒谬的。


经过进一步审查,我实际上并不完全确定 PHP 是如何解析这些废话的。我不想再想了,这让我的大脑很受伤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 中奇怪的回显、打印行为? 的相关文章

  • 递归获取数组的键并创建下划线分隔的字符串

    现在我得到了一个包含某种信息的数组 我需要从中创建一个表 例如 Student Address StreetAddress gt Some Street StreetName gt Some Name Marks1 gt 100 Marks
  • WordPress 中的 add_action 函数

    嗯 我正在学习创建一个 WordPress 插件 我下载了一个并阅读了代码 然后我看到了这个 我假设 foo 是它将添加操作的标签 但是 array 到底是做什么的呢 add action foo array foo1 foo2 我在看ht
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • PHP MySql 百分比

    我的问题是关于百分比 我不是专家 所以我会尽力以更好的方式进行解释 我的 mysql 服务器中有一个表 假设有 700 条记录 如下所示 Name country language Birth Lucy UK EN 1980 Mari Ca
  • 简单的 PHP 条件帮助: if($Var1 = in list($List) and $Cond2) - 这可能吗?

    这是一个可能的功能吗 我需要检查一个变量是否存在于我需要检查的变量列表中 并且 cond2 是否为 true 例如 if row name 1 2 3 Cond2 doThis 它对我不起作用 我在复制粘贴中更改的只是我的列表和变量名称 i
  • 通过 Ajax 加载内容时,WORDPRESS 音频播放器未加载,MediaElement.js 未应用

    我正在创建一个 WordPress 主题 当我使用 ajax 加载内容时 它不会将 MediaElements js 应用于我的音频播放器 因此不会显示音频 我认为这是因为 MediaElement js 加载了 wp footer 并且此
  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • 如何使用 phpunit 运行单个测试方法?

    我正在努力运行一个名为testSaveAndDrop在文件中escalation EscalationGroupTest php with phpunit 我尝试了以下组合 phpunit EscalationGroupTest escal
  •  
    标记内删除

    我制作了简单的 BBCode 脚本 一切正常 但后来我使用了一个 javascript 库来美化我的代码 pre pre 现在我面临的唯一问题是 br 每行代码后面的标签 pre pre tags 所以问题是我怎样才能删除 br 标记哪些在
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • Yii 使用 ajax 进行分页

    我需要使用ajax启用分页 我的代码 控制器 更新内容ajax function actionIndex dataProvider new CActiveDataProvider News array pagination gt array
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • preg_match_all 查询仅显示有问题的外部组

    我无法弄清楚如何只显示 preg 查询的外部组级别 我会给你一个例子 preg match all start end input matches 这个输入start1 start2 2end 1end产生这个输出start1 start2
  • 为什么 iconv 在 php:7.4-fpm-alpine docker 中返回空字符串

    给出以下代码
  • PHP 在输入流中使用 fwrite 和 fread

    我正在寻找将 PHP 输入流的内容写入磁盘的最有效方法 而不使用授予 PHP 脚本的大量内存 例如 如果可以上传的最大文件大小为 1 GB 但 PHP 只有 32 MB 内存 define MAX FILE LEN 1073741824 1
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 如何在 PHP 中从 IP 地址/国家/地区名称查找时区 ID?

    谁能告诉我 PHP 中是否有任何方法可以从 IP 地址或国家 地区名称获取时区区域 例如 亚洲 加尔各答 描述 我正在尝试根据他 她的国家 地区设置用户时区 我从他的 IP 地址获取用户所在国家 地区 但我需要该国家 地区的时区区域 例如
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • 在类 Unix 系统上获得以秒或毫秒为单位的正常运行时间

    我需要一种方法 可以给出自系统启动以来经过的毫秒数或秒数 我可以解析 proc uptime 但我不能因为这个 I 0 和解析而损失性能 我正在使用 Linux 和 C C 也许我可以添加一些 Qt Boost 但最好是原生的 为什么你读不
  • Entity Framework 4 与 LINQ to SQL,适用于中小型应用程序,与 SQL Server 配合使用

    早在 4 月份 VS2010 发布时 我就在 Stack Overflow 上看到过一些关于 L2S 与 EF4 的讨论 即 既然 Entity Framework 4 0 已经发布 就转储 Linq To Sql 吗 https stac
  • 尝试在 Flutter 上运行此处示例时出错

    所以我正在尝试将 Here 集成到我的 flutter 应用程序中 所以我正在关注这个页面flutter sdk 导航 https developer here com documentation flutter sdk navigate
  • 更新到 Mac OSX 10.9.4 后找不到 npm 命令

    将操作系统更新到 Mavericks 后 我无法在终端上执行 npm 命令 当我尝试这个时 node usr local lib node modules npm bin npm cli js v它正在工作并显示版本 1 4 3 我不知道这
  • Flash 功能中的冲突检测? (命中测试对象)

    你好 所以我最近一直在使用hitTestObject检测我正在制作的 Android 应用程序中的碰撞 经过一番测试后 我意识到游戏正在检测 假 碰撞 我的意思是它正在检测碰撞not当物体的像素接触时 但是 经过一些研究后 我发现boxes
  • 如何让每个
  • 标签一个接一个地慢慢出现
  • 我希望当页面加载时列表项慢慢地一个接一个地出现在屏幕上 这是jquery中的代码 我使用过show 但它不起作用 我确实在这里查找问题 其中一些正在使用附加方法 但这不是我要寻找的 html ul li A li li B li li C
  • Angular 4自带的form element组件

    我是角度初学者 我可能需要一些帮助 首先 我将展示它如何工作 然后我将写下我希望它如何工作 这是使用 ngModel 时的常规方式
  • 如何在具有可变宽度 Unicode 字符的 Swift 字符串上使用 NSRegularExpression?

    我无法获取NSRegularExpression匹配字符串中含有较宽 Unicode 字符的模式 看起来问题出在范围参数上 Swift 计算单个 Unicode 字符 而 Objective C 将字符串视为由 UTF 16 代码单元组成
  • 如何使用CPU在深度睡眠模式下执行任何操作

    我是新来的android 我花了大约三个星期的时间来处理我的申请 我需要在正常模式下发送和接收数据包sleep mode My app必须交换数据 5 秒 我尝试使用alarmmanager但在 android 5 上它不起作用 在andr
  • MongoDB InvalidDocument:无法对对象进行编码

    我正在使用 scrapy 来抓取博客 然后将数据存储在 mongodb 中 起初我得到了 InvalidDocument 异常 对我来说很明显的是数据的编码不正确 因此 在持久化对象之前 在我的 MongoPipeline 中 我检查文档是
  • 如何合并数组并保留键?

    我有两个数组 array1 array a gt 1 b gt 2 c gt 3 array2 array d gt 4 e gt 5 f gt 6 a gt new value 123 gt 456 我想合并它们并保留键和顺序而不是重新索
  • Xcode 在打字时滚动文本

    Xcode 今天似乎做了一些烦人的事情 我喜欢编辑源代码 这样我就可以在 Xcode 窗口的垂直中心大致输入内容 我不喜欢在窗口底部或顶部附近键入 因为它隐藏了我正在忙于编辑的代码之前或之后的代码 最近 在编辑实现文件时 Xcode 习惯于
  • Oracle CONNECT BY 递归子到父查询,包括自引用的最终父级

    在下面的例子中 id parent id A A B A C B select id parent id from table start with id A connect by nocycle parent id prior id I
  • 在 Access 中导入 .sql 文件

    我需要导入使用 MySql 创建的 sql 数据库备份文件 有办法执行此操作吗 您无法将 MySQL 备份恢复到任何其他数据库系统中 如果要将 MySQL 数据导入到 Access 中 可以将其全部导出到 CSV 文件中 然后将其导入到 A
  • UWP TextBox 文本绑定不起作用

    我在 UWP 中使用 TextBox Text 绑定时遇到一些问题 我已经从事 WPF 多年 通常知道我在 XAML 中做什么 但无法让此绑定发挥作用 我在 XAML 中的同一范围内有一个文本框和一个按钮
  • 如何避免打开两个浏览器窗口?

    我想避免打开两个应用程序窗口 或选项卡 的可能性 是的 如果我的应用程序 LAMP Javascript 安装在http www domain com并且用户正在浏览页面http www domain com user 他 她无法打开另一个
  • 是否可以将 .Net DLR 托管在“防白痴”沙箱中?

    我想以这样一种方式托管动态语言运行时 DLR 以便在其中运行任意脚本的用户无法关闭该进程 The DLR 托管规范 https web archive org web 20110814193317 http dlr codeplex com
  • pthread_create() 的返回码是 11

    我正在尝试运行一个简单的多线程编程 但我从 gcc 收到此错误 pthread create 的返回码是 11 我该如何解决这个问题 include
  • 平面图布局

    布局图形时有哪些边缘重叠最小化技术 最好与 GraphViz 相关 还有现有的软件可以以平面方式布局图形吗 当前布局 http www evecakes com doodles master gif http www evecakes co
  • PHP 中奇怪的回显、打印行为?

    以下代码输出43211 why echo print 3 2 print 4 你的语句解析对人类如下 回显由以下内容组成的串联字符串 函数的结果print 3 这将返回 true 它被字符串化为1 字符串 2 函数的结果print 4 这将