加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

奇怪的回声,PHP中的打印行为?

发布时间:2020-12-13 22:13:54 所属栏目:PHP教程 来源:网络整理
导读:以下代码输出43211,为什么? echo print('3').'2'.print('4'); 解决方法 您的陈述如下解析人类. 回显由以下内容组成的串联字符串: 函数print(‘3’)的结果,它将返回true,并将其字符串化为1 字符串’2′ 函数print(‘4’)的结果,并将其字符串化为1 现在,这里
以下代码输出43211,为什么?

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

解决方法

您的陈述如下解析人类.

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

>函数print(‘3’)的结果,它将返回true,并将其字符串化为1
>字符串’2′
>函数print(‘4’)的结果,并将其字符串化为1

现在,这里的操作顺序真的很有趣,根本不能以43211结束!让我们尝试一个变体来弄清楚出了什么问题.

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

这产生4523111

PHP正在解析它,因为:

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

答对了!首先评估左侧的打印,打印’45’,这样就离开了我们

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

然后评估左侧打印,所以我们现在打印’4523′,留下我们

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

成功. 4523111.

让我们打破你对古怪的陈述.

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

这将首先打印’4′,留下我们

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

然后评估下一个打印语句,这意味着我们现在打印’4321′,留下我们

echo '1';

因此,43211.

我强烈建议不要回复打印结果,也不要打印回声的结果.这样做是非常荒谬的.

经过进一步审查,我实际上并不完全确定PHP如何解析这些废话.我不会再考虑它了,它伤害了我的大脑.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读