首页 » 网站建设 » php单引号双引号差别技巧_谈谈PHP中的单引号和双引号

php单引号双引号差别技巧_谈谈PHP中的单引号和双引号

duote123 2024-10-31 0

扫一扫用手机浏览

文章目录 [+]

$s = 'world';echo 'hello ' . $s; // hello worldecho 'hello $s'; // hello $s

从上面大略的例子,可以看到,利用单引号我们须要用.进行拼接,还有在单引号里面传变量的话,它会原样给你,$依然存在,php的阐明器并没有做任何的加工。
其余还有,如果想要在单引号中显示单引号或者\,须要利用转义(Escape Sequences),而且单引号中只支持这两种其它转义都不支持,比如\r,\n, 同时,单引号中可以直策应用双引号,双引号中也可以直接显示单引号,这都不须要转义 如下:

echo '\'hello world\''; // 'hello world'echo 'hello \n world'; // hello \n worldecho '\"大众hello world\"大众'; // \公众hello world\公众双引号

在利用双引号时,里面的变量可以被求值,

php单引号双引号差别技巧_谈谈PHP中的单引号和双引号

$a = ['foo','bar'];$b = 'world';echo \"大众hello {$b}\公众; // hello worldecho \"大众hello ${b}\"大众; // hello worldecho \"大众haha $a[0]\"大众; // haha fooecho “hello \n world”; // 可以换行// hello// world

从代码都雅上来看,双引号看起来要简洁很多,尤其是拼接一个长的句子时,如果再夹杂着html,那更是眼花缭乱:

php单引号双引号差别技巧_谈谈PHP中的单引号和双引号
(图片来自网络侵删)

$name = 'Daniel';$city = 'NJ';$age = 18;echo \公众hello, my name is {$name}, i come from {$city}, i am {$age} years old\公众;echo 'hello, my name is ' . $name . ', i come from ' . $city . ', i am ' . $age . ' years old';

同时双引号支持更多的转义字符,官网截图如下:

关于双引号和单引号这里贴一个stackoverflow上高赞的回答:

$s = \"大众dollars\"大众;echo 'This costs a lot of $s.'; // This costs a lot of $s.echo \"大众This costs a lot of $s.\"大众; // This costs a lot of dollars.更进一步

看完了双引号和单引号的外在表现,我们再来看看它们的opcode,一窥到底。

本操作中利用的是 PHP 7.3.0版本

先来看看单引号:

$s = 'world';echo 'hello ' . $s; // hello world

短短两行代码,看看底层是怎么实现的:

从上面的opcode可以看出,实在很大略,先赋值,然后再拼接输出,末了return,一共实行了4个步骤,同样的操作再来看看双引号:

$s = 'world';echo \"大众hello $s\"大众; // hello world

很明显可以看到,双引号实行了5步,多了NOP这一步,而且原来的CONCAT在这里变成了FAST_CONCAT,这里的NOP便是no operation的缩写,见告打算机不要做任何操作,但是也要摧残浪费蹂躏一个时钟周期,为啥要这么做呢?‍♂️

StackOverflow上的阐明如下(看了依然不明以是):

还有一个疑问,单引号和双引号分别利用了CONCAT和FAST_CONCAT,这两个都有什么差异?如果就字面意思来看是不是后者比前者更快?如果这样那为什么单引号中不该用FAST_CONCAT?有大佬知道的欢迎留言

标签:

相关文章

PHP实现文字转图片的代码与应用

图片处理技术在各个领域得到了广泛应用。在PHP编程中,文字转图片功能同样具有很高的实用价值。本文将针对PHP实现文字转图片的代码进...

网站建设 2025-03-02 阅读1 评论0

NAN0017探索新型纳米材料的奥秘与应用

纳米技术作为一门新兴的交叉学科,近年来在材料科学、生物医学、电子工程等领域取得了举世瞩目的成果。其中,NAN0017作为一种新型纳...

网站建设 2025-03-02 阅读3 评论0

L26368XO代码其背后的创新与突破

编程语言在各个领域发挥着越来越重要的作用。在众多编程语言中,L26368XO代码以其独特的优势,成为了业界关注的焦点。本文将深入剖...

网站建设 2025-03-02 阅读1 评论0

HTML字体背景打造个化网页设计的关键元素

网页设计已经成为现代网络传播的重要手段。在众多网页设计元素中,字体和背景的搭配尤为关键。本文将从HTML字体背景设置的角度,探讨其...

网站建设 2025-03-02 阅读1 评论0