From: http://www.jb51.net/article/53973.htm

在PHP中,我们可以使用单引号或者双引号来表示字符串。不过我们作为开发者,应该了解其中的区别。单引号与双引号对于定义字符一个是可以解析变量一个是会把变量直接输出来,同时单引号与双引号在字符处理上单引号要优与双引号
 
 

①转义的字符不同

单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身。如果用双引号(“”)括起字符串,PHP懂得更多特殊字符串的转义序列。

1
2
3
4
5
6
7
<?php
$str1 = '\',\\,\r\n\t\v\$\"';
echo $str1,'<br />';
   
$str2 = "\",\\,a\r\n\tb\v\$\'";
echo $str2,'<br />';
?>

②对变量的解析不同
单引号字符串中出现的变量不会被变量值替代。即PHP不会解析单引号中的变量,而是将变量名原样输出。双引号字符串最重要的一点是其中的变量名会被变量值替代,即可以解析双引号中包含的变量。

1
2
3
4
5
6
7
<?php
$age = 20;
$str1 = 'I am $age years old';
$str2 = "I am $age years old";
echo $str1,'<br />'; // I am $age years old 
echo $str2,'<br />'; // I am 20 years old;
?>

③解析速度不同

单引号不需要考虑变量的解析,速度比双引号快.推荐用单引号.有的时候双引号也比较好用,比如在拼凑sql 语句

反斜杠

1
2
3
4
5
6
7
8
9
10
11
12
//使用单引号
echo ' this \n is \r the blog \t of \\ zhoumanhe \\'
//上面使用单引号输出的值是 this \n is \r the blog \t of \ zhoumanhe \
   
echo '
';
echo "
";
   
//使用双引号
echo "this \n is \r the blog \t of \\ zhoumanhe \\"
//上面使用双引号输出的值是 this is the blog of \ zhoumanhe \

使用sql

假设查询条件中使用的是常量,例如:

1
select * from abc_table where user_name='abc';

SQL语句可以写成:

1
SQLstr = “select * from abc_table where user _name= ‘abc'” ;

假设查询条件中使用的是变量,例如:

1
$user_name = $_REQUEST['user_name']; //字符串变量

1
$user=array (”name”=> $_REQUEST['user_name‘,"age"=>$_REQUEST['age'];//数组变量

SQL语句就可以写成:

1
2
SQLstr = “select * from abc_table where user_name = ‘ ” . $user_name . ” ‘ “;
SQLstr = “select * from abc_table where user_name = ‘ ” . $user["name"] . ” ‘ “;

对比一下:

1
2
3
SQLstr=”select * from abc_table where user_name = ‘ abc ‘ ” ;
SQLstr=”select * from abc_table where user_name =' ” . $user _name . ” ‘ “;
SQLstr=”select * from abc_table where user_name =' ” . $user["name"] . ” ‘ “;

SQLstr可以分解为以下3个部分:

1
2
3
1:”select * from table where user_name = ‘ ” //固定SQL语句
2:$user //变量
3:” ‘ ”

附:大家也看到了 echo '<br/>'; html中的标签在单引号和双引号中都有效。

总结一下PHP引号使用原则

1.字符串的值用引号

2.PHP中尽量用单引号,HTML代码全部用双引号

3.在包含变量的时候,用双引号可以简化操作

4.复杂的情况下用大括号包起来

PHP引号还有一个用处就是,有的时候需要用php生成文本文件,换行符n需要用双引号才能好使,单引号则会直接把n当成字符输出。

使用总结:在字符串里面不需要加入 变量 或者 单引号(')和反斜杠(\)
时,尽量用单引号引字符串,因为省去了双引号检查处理转义和解析变量上面的时间。能用单引号尽量用单引号。

PHP中单引号与双引号的区别分析的更多相关文章

  1. js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和php很像:单引号快,双引号可转义字符,双引号可解析变量)

    js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和php很像:单引号快,双引号可转义字符,双引号可解析变量) 一.总结 1.html中属性规范是 ...

  2. 20、oralce中单引号和双引号的区别

    20.oralce中单引号和双引号的区别: 20.1.单引号和双引号oracle都支持,但是两者是有区别的: 20.2.双引号在 Oracle 中的作用: 1.双引号的作用是:假如建立对象的时候,对象 ...

  3. Python中单引号,双引号,三引号的区别

    Python中的字符串一般用单引号('A'),双引号("A")和三引号('''A''')或者("""A""") 1.单引 ...

  4. Shell脚本中单引号(‘)和双引号(“)的使用区别

    在Linux操作系统上编写Shell脚本时候,我们是在变量的前面使用$符号来获取该变量的值,通常在脚本中使用”$param”这种带双引号的格式,但也有出现使用'$param'这种带引号的使用的场景,首 ...

  5. php 单引号,双引号,反引号区别

    PHP中单引号,双引号,反引号具有不同的含义,最大的几项区别如下: 一.单引号中,任何变量($var).特殊转义字符(如"\t \r \n"等)不会被解析,因此PHP的解析速度更快 ...

  6. Unix Shell中单引号、双引号字符、反斜杠、反引号的使用[转]

    在执行shell脚本的时候,shell将会对脚本中的行进行解释,然后执行:对于一些特殊处理的句子,我们可以使用引号或者反斜线来避免shell解释执行之.如下,当在命令行中输入:echo *child. ...

  7. PHP三种字符串界定符的区别(单引号,双引号,<<<)

      单引号,双引号,<<<的区别如下: 前续:今天突然遇到了<<<EOT,可在运行的时候出错了,所以就度娘了下. 1.单引号:’a string’  \’是唯一的转 ...

  8. python单引号(')、双引号(")、三引号(''',""")

    python对字符串的表示方法比c更有灵活性,但是也更难理解. 为了在平时使用.看代码过程中对着单引号(').双引号(").三引号(''',""")不混淆,知道 ...

  9. 每日linux命令学习-引用符号(反斜杠\,单引号'',双引号"")

    引用符号在解析器中保护特殊元字符和参数扩展,其使用方法有3种:反斜杠(\),单引号(’‘),双引号(“”). 单引号和双引号必须匹配使用,均可在解析器中保护特殊元字符和通配符,但是单引号(硬转义)主要 ...

随机推荐

  1. linux centOS6 nexus 开启自动启动

    sudo ln -s /opt/nexus-2.6.4/nexus-2.6.4-02/bin/nexus /etc/init.d/nexus 使用  service nexus status/star ...

  2. js判断浏览器内核和版本(包括手机端设备)

    var X, xue;xue = xue || function(expr, fn) {    return xue.dom ? xue.dom(expr, fn) : {};};X = xue;wi ...

  3. 【TensorFlow】tf.nn.embedding_lookup函数的用法

    tf.nn.embedding_lookup函数的用法主要是选取一个张量里面索引对应的元素.tf.nn.embedding_lookup(tensor, id):tensor就是输入张量,id就是张量 ...

  4. 【Python】打印object对象

    print (object .__dict__) print (dir(object))

  5. 应对新型“蠕虫”式比特币勒索软件“wannacry”的紧急措施

     1.防火墙屏蔽445端口 命令行操作: 以管理员打开命令行执行以下命令 netsh firewall set opmode enable netsh advfirewall firewall add ...

  6. Delphi中的三目运算函数有哪些?(XE10.2+WIN764)

    相关资料:https://www.cnblogs.com/rogge7/p/6078903.html 问题现象:在做一个判断时突然想到了C++的三目运算,就在想Delphi中一共有几个? 问题处理: ...

  7. docker探索-docker私有仓库搭建(九)

    前言 本文讲解搭建docker的私有仓库,和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库 一.环境 ip 主机名 操作系统 角色 19 ...

  8. VMware下的Centos7联网并设置固定IP

    安装CentOS7之后总得联网呀,而且不能一直连服务器,我们需要一个其他工具连它,所以一个固定IP也很重要了. 工具/原料   CentOS7 VMware 方法/步骤     首先设置vmware能 ...

  9. Android——ViewPager滑动背景渐变(自定义view,ViewPager)

    效果: ActivityBackgroundImage,java(自定义视图) package com.example.chenshuai.test322; import android.conten ...

  10. 【机器学习】 Matlab 2015a 自带机器学习算法汇总

    MATLAB机器学习没看到啥教程,只有一系列函数,只好记录下: MATLAB每个机器学习方法都有很多种方式实现,并可进行高级配置(比如训练决策树时设置的各种参数) ,这里由于篇幅的限制,不再详细描述. ...