今天看到老外提到了PHP的单引号的问题,其中提到了有趣的东西,摘录如下:
其中说装了PHP扩展 Vulcan Logic Disassembler 后,可以看到PHP生成的中间码,
首先是:echo "This is a string";
会转变为:
ECHO 'This is a string'
而echo 'This is a string';
则变成 ECHO 'This is a string'
,是一样的
如果是echo "This is a $variable";
则PHP产生的OPCODE为
INIT STRING ~0
2 ADD_STRING ~0 ~0 'This'
3 ADD_STRING ~0 ~0 ' '
4 ADD_STRING ~0 ~0 'is'
5 ADD_STRING ~0 ~0 ' '
6 ADD_STRING ~0 ~0 'a'
7 ADD_STRING ~0 ~0 ' '
8 ADD_VAR ~0 ~0 !0
9 ECHO ~0
而echo "This is a " . $variable;
则会变成
CONCAT ~0 'This is a ' !0
2 ECHO ~0
可以见到,速度快很多了,用.连接的话
分享到:
相关推荐
然而,在**单引号('')**中,除了`\'`(单引号)和`\\`(反斜杠)之外,其他转义序列都不会被解析,这使得单引号字符串处理更简单、更快,但同时也限制了其灵活性。 ### 多行字符串定义 对于多行字符串,PHP提供了...
2. 单引号中的字符串解析: 使用单引号定义字符串时,PHP不会解析其中的变量。如果在单引号字符串中使用变量,它们将被视为普通字符,不会被替换。例如: ``` $name = "John"; echo 'Hello, $name!'; ``` 这段...
因为oracle每次in()数据不能超过1000行,但是每个数据都要接单引号,所以写了这个程序,使用方法:复制多行数据,然后双击程序,会自动把数据加上单引号更新粘贴板,粘贴到in()中去就可以了。
相反,单引号字符串不会解析这些转义序列,除非它们是变量的一部分,如 "\$name"(在双引号中会被解析为 "$name",在单引号中则保持原样)。 3. 性能考量: 由于单引号字符串不需要进行变量解析和特殊字符转义,...
在单引号中,只有两个转义序列会被解析:'\''(单引号自身)和 '\\\'(反斜杠)。这意味着在单引号内,其他转义序列如'\n'(换行)、'\r'(回车)和'\t'(制表符)都不会被解析,它们会被当作普通字符输出。而双引号...
然而,双引号与单引号的最大区别在于,双引号中的字符串可以包含变量或特殊字符的解析。当一个字符串使用双引号定义时,PHP解析器会检查字符串中的内容,对于变量,会将其值插入到字符串中,对于如换行符(\n)、制表...
PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出。 例如: <?php $name=string; echo 字符串 . '...
- **单引号**:相比之下,单引号中的变量不会被解析。`echo 'hello is $hello '`会原样输出`hello is $hello`,变量 `$hello` 不会被替换为它的值。 2. **转义序列**: - **双引号**:双引号字符串支持更多的转义...
1. 单引号中的变量不会被解析,双引号中的变量会被解析。 2. 在不包含变量的字符串中,使用单引号比双引号更高效。 3. 使用转义字符`\`可以输出特殊字符,如`\"`用于输出双引号,`\'`用于输出单引号,`\\`用于输出反...
在PHP编程中,单引号(')和双引号(")的使用是一个常见的主题,它们在处理字符串时有着不同的行为。本文将详细讲解如何防止单引号和双引号在PHP页面中被转义,并探讨它们的区别。 首先,我们要解决的问题是“如何...
在这个例子中,单引号被用来定义字符串,所以当你在单引号中直接插入双引号时,它会被视为字符串的一部分并正常输出。 方法二: ```php $str = "输出双引号\""; echo $str; ``` 这里使用了双引号来定义字符串,然后...
在PHP中,字符串可以用单引号(')或双引号(")来定义,但这两者之间存在一些微妙的差异,特别是在性能方面。本文将深入探讨这些差异,并通过具体的测试代码和opcode分析来揭示它们的工作原理。 首先,我们要明白...
这种行为使得双引号中的字符串更加强大和灵活,但同时也会略微增加解析的时间,因为PHP需要执行变量解析和字符转义的过程。 相比之下,使用单引号定义的字符串则不会对其中的内容进行解析或转义。这意味着在单引号...
在MySQL查询中,正确处理带有单引号的字符串至关重要,因为单引号是SQL语句中的特殊字符,未正确处理可能导致语法错误或者更严重的安全问题,如SQL注入攻击。SQL注入是恶意用户通过输入带有特殊SQL命令的数据来操纵...
- 单引号中的变量不会被解析,除非使用转义字符 `\`。例如:`echo 'Hello, $name';` 将输出 "Hello, $name"。 2. 字符串效率: - 使用单引号的字符串解析速度稍快于双引号,因为解析器不需要检查单引号字符串内的...
4. **字符串中的特殊字符**:在双引号中,特殊字符如`\n`(换行)和`\t`(制表符)会被解析为对应的转义字符,而在单引号中则不会。 了解这些差异后,你可以根据实际需求选择合适的引号类型。如果你只需要输出纯...
•单引号字串中不能出现单引号(对单引号使用转义符后也不行)。 双引号 代码如下: your_name=’qinjx’ str=”Hello, I know your are \”$your_name\”! \n” 双引号的优点: •双引号里可以有