`
sony-soft
  • 浏览: 1105521 次
文章分类
社区版块
存档分类
最新评论

php中有关单引号和双引号的使用

 
阅读更多
PHP中单引号和双引号具有不同的含义,最大的几项区别如下:
单引号中,任何变量($var)、特殊转义字符(如“/t /r /n”等)不会被解析,因此PHP的解析速度更快,转义字符仅仅支持“/’”和“//”这样对单引号和反斜杠本身的转义;
双引号中,变量($var)值会代入字符串中,特殊转义字符也会被解析成特定的单个字符,还有一些专门针对上述两项特性的特殊功能性转义,例如“/$”和“{$array[‘key’]}。这样虽然程序编写更加方便,但同时PHP的解析也很慢;
数组中,如果下标不是整型,而是字符串类型,请务必用单引号将下标括起,正确的写法为$array[‘key’],而不是$array[key],因为不正确的写法会使PHP解析器认为key是一个常量,进而先判断常量是否存在,不存在时才以“key”作为下标带入表达式中,同时出发错误事件,产生一条Notice级错误。
因此,在绝大多数可以使用单引号的场合,禁止使用双引号。依据上述分析,可以或必须使用单引号的情况包括但不限于下述:
l 字符串为固定值,不包含“/t”等特殊转义字符;
l 数组的固定下标,例如$array[‘key’]
l 表达式中不需要带入变量,例如$string = ‘test’;,而非$string = “test$var”
例外的,在正则表达式(用于preg_系列函数和ereg系列函数)中,phpcms全部使用双引号,这是为了人工分析和编写的方便,并保持正则表达式的统一,减少不必要的分析混淆。
数据库SQL语句中,所有数据都不得加单引号,但是在进行sql查询之前都必须经过intval函数处理;所有字符串都必须加单引号,以避免可能的注入漏洞和SQL错误。正确的写法为:
$catid = intval($catid);
SELECT * FROM phpcms_member WHERE username=’$_username’ AND catid=$catid;
所有数据在插入数据库之前,均需要进行addslashes()处理,以免特殊字符未经转义在插入数据库的时候出现错误。phpcms中如果已经引入了文件 common.inc.php,则所有通过 GET, POST, FILE,取得的变量默认情况下已经使用了addslashes()进行了转义,不必重复进行。如果数据处理必要(例如用于直接显示),可以使用 stripslashes() 恢复,但数据在插入数据库之前必须再次进行转义。
缓存文件中,一般对缓存数据的值采用 addcslashes($string, '/'//')进行转义。












分享到:
评论

相关推荐

    php单引号和双引号的区别

    选择使用单引号还是双引号取决于具体的场景和需求。双引号因其可变性、灵活性和对转义序列的支持而适用于动态内容和复杂字符串处理;而单引号则因其简洁性和执行效率,更适合静态文本和性能敏感的应用。理解并熟练...

    php双引号、单引号的区别.zip

    如果在单引号字符串中使用变量,它们将被视为普通字符,不会被替换。例如: ``` $name = "John"; echo 'Hello, $name!'; ``` 这段代码会原样输出 "Hello, $name!",因为单引号告诉PHP这是个纯字符串,不包含...

    PHP中单引号与双引号的区别分析

    在PHP编程语言中,单引号(')和双引号(")在表示字符串时具有不同的特性和用途。理解这些区别对于编写高效且可读性强的代码至关重要。 首先,让我们看看转义字符的不同处理方式。在单引号中,只有两个转义序列会...

    PHP双引号与单引号的区别,很多人认为php双引号单引号一样,其实还是有区别的

    在PHP编程语言中,双引号(")和单引号(')在表示字符串时确实存在一些微妙的差异,这些差异可能对程序性能和代码编写方式产生影响。以下是关于PHP双引号与单引号区别的详细解释。 首先,我们要明白PHP中的字符串...

    简单概括PHP的字符串中单引号与双引号的区别

    在PHP编程语言中,字符串可以用单引号 `'` 或双引号 `"` 来定义。虽然两者都用于创建字符串,但它们在处理变量和转义序列时存在显著差异,这些差异对性能和代码的可读性都有影响。 1. **变量插入**: - **双引号**...

    php中的单引号、双引号和转义字符详解

    PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name);最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出。 例如: <?php $name=string; echo 字符串 . '...

    PHP的单引号和双引号 字符串效率

    在不涉及变量替换的情况下,单引号和双引号字符串的opcode可能相同,如示例中的前四行代码所示。然而,一旦引入变量,如第4到第12行所示,双引号字符串会涉及到额外的opcode来处理变量的插入。例如,使用双引号时,...

    浅谈PHP中单引号和双引号到底有啥区别呢?

    这与在PHP中使用单引号在某些场景下可能更方便的情况类似。 总结来说,尽管在两种不同的编程语言中处理字符串时,单引号和双引号的用法和效果有所差异,但基本的思路是相同的,即根据实际需求选择更合适的引号类型...

    php 防止单引号,双引号在接受页面转义

    在PHP编程中,单引号(')和双引号(")的使用是一个常见的主题,它们在处理字符串时有着不同的行为。本文将详细讲解如何防止单引号和双引号在PHP页面中被转义,并探讨它们的区别。 首先,我们要解决的问题是“如何...

    PHP 单引号与双引号的区别

    在PHP编程语言中,字符串的定义可以使用单引号(')或双引号(")。单引号与双引号在处理字符串时存在明显的区别,这主要体现在变量解析和转义字符的处理上。 首先,关于字符串的定义,必须使用一致的引号来封闭字符串...

    分析PHP中单双引号的误区和双引号小隐患

    在PHP编程语言中,单引号(')和双引号(")的使用是许多初学者容易混淆的地方。它们虽然在很多情况下可以互换,但在特定场景下却有着显著的差异,这些差异可能会影响到代码的性能和安全性。下面我们就详细分析PHP...

    php 输出双引号"与单引号'的方法

    在PHP编程语言中,字符串可以用两种引号来定义:单引号(')和双引号(")。这两种引号在处理字符串时有着微妙的区别,理解它们的不同对于编写高效的PHP代码至关重要。 首先,我们来看看如何在PHP中输出双引号。在...

    Shell脚本字符串单引号和双引号的区别浅析

    字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。 单引号 代码如下: str=’this is a ...

    再谈PHP中单双引号的区别详解

    - 对于包含复杂变量组合的字符串,如二维数组 `$a[$i][$j]`,直接在双引号字符串中使用可能无法得到预期效果。这时可以采用以下两种方法: - 使用点运算符(.)连接字符串和变量:`echo 'value = ' . $a[$i][$j];`...

    php下防止单引号,双引号在接受页面转义的设置方法

    在PHP编程语言中,单引号(')和双引号(")在处理字符串时有不同的行为,这在编写代码时需要特别注意。本篇文章将详细介绍这两种引号的区别以及如何防止它们在页面上被转义。 首先,让我们来理解PHP中的`magic_...

    替换php字符串中的单引号为双引号的方法

    在PHP中,单引号和双引号在处理字符串时有所不同。以下是它们的主要区别: 1. 变量插值: - 双引号中的变量会被解析。例如:`$name = "John"; echo "Hello, $name";` 将输出 "Hello, John"。 - 单引号中的变量...

    php 输出双引号与单引号的方法

    在PHP中,`\` 是转义字符,它允许你在字符串中使用特殊字符,如 `\"` 表示双引号,`\n` 表示换行,`\t` 表示制表符等。当你需要在字符串内使用这些特殊字符时,记得在其前面加上反斜杠。 6. 相关知识点: - PHP字符...

    单双引号交叉使用

    本文将深入探讨在SQL语句中如何正确地使用单引号和双引号,并通过具体的例子来说明。 #### 二、基本概念 在SQL语言中,字符串常量通常使用单引号 (`'`) 来界定。例如,`'Hello'` 表示字符串“Hello”。然而,在实际...

Global site tag (gtag.js) - Google Analytics