双引号是否过多,这就是问题所在!

最近我又听说 php 人们仍然在谈论单引号和双引号,并且使用单引号只是一种微观优化,但如果你习惯一直使用单引号,你会节省大量的 cpu 周期!

“一切都已经说过了,但还没有被所有人说”——karl valentin

正是本着这种精神,我正在写一篇关于 nikita popov 12 年前已经做过的同一主题的文章(如果您正在阅读他的文章,您可以在这里停止阅读)。

毛茸茸的到底是什么?

php 执行字符串插值,在字符串中搜索变量的使用情况,并将其替换为所使用变量的值:

1

2

3

$juice = “apple”;

echo “they drank some $juice juice.”;

// will outpu搭建商城点我wcqh.cnt: they drank some apple juice.

登录后复制

此功能仅限于双引号和定界符中的字符串。使用单引号(或 nowdoc)会产生不同的结果:

1

2

3

$juice = “apple”;

echo they drank some $juice juice.;

// will output: they drank some $juice juice.

登录后复制

看一下:php 不会搜索该单引号字符串中的变量。所以我们可以开始在任何地方使用单引号。所以人们开始建议这样的改变..

1

2

– $juice = “apple”;

+ $juice = apple;

登录后复制

.. 因为它会更快,并且每次执搭建商城点我wcqh.cn行该文件都会节省大量 cpu 周期,因为 php 不会在单引号字符串中查找变量(无论如何,在示例中不存在)并且每个人都是很高兴,案件已结。

案件结案了吗?

显然,使用单引号和双引号是有区别的,但为了理解发生了什么,我们需要更深入地挖掘。

尽管 php 是一种解释性语言,但它使用编译步骤,其中某些部分一起运行以获得虚拟机实际可以执行的东西,即操作码。那么我们如何从 php 源代码获取操作码呢?

词法分析器

词法分析器扫描源代码文件并将其分解为标记。可以在 token_get_all() 函数文档中找到该含义的简单示例。

© 版权声明
THE END
喜欢就支持一下吧
点赞592 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容