php双引号变量
1. 浅谈php中单引号和双引号到底有啥区别呢
在PHP中,字符串的定义可以使用英文单引号'
',也可以使用英文双引号"
"。
但是必须使用同一种单或双引号来定义字符串,如:'Hello
World"和"Hello
World'为非法的字符串定义。
单引号和双引号到底有啥区别呢?
PHP允许我们在双引号串中直接包含字串变量。
而单引号串中的内容总被认为是普通字符,因此单引号中的内容不会被转义效率更高。
比如:
复制代码
代码如下:
$str='hello';
echo
"str
is
$str";
//运行结果:
str
is
hello
echo
'str
is
$str';
//运行结果:
str
is
$str
php中,双引号中的变量($var)和特殊字符(\r\n之类)会被转义,单引号中的内容不会被转义(所以效率更高)。
使用上的话,
我以前很喜欢在sql字符串里这样写$sql
=
"SELECT
*
FROM
table
WHERE
id
=
$id",这样里面的$id可以被转义,单引号就不行。
在JavaScript中
单引号
和双引号没有区别,只要成对使用就行。
我在JavaScript
中使用单引号大多是因为
Javascript
和
HTML
打交道比较多,输出
HTML
片段的时候不需要转义
HTML
中属性的引号。
总之,看实际情况来用啦,怎么方便怎么使用。
以上就是本文关于php中单双引号的区别分析了,希望大家能够喜欢
2. PHP中单引号与双引号的区别分析
①转义的字符不同
单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身。如果用双引号(“”)括起字符串,PHP懂得更多特殊字符串的转义序列。
<?php
$str1
=
'\',\\,\r\n\t\v\$\"';
echo
$str1,'<br
/>';
$str2
=
"\",\\,a\r\n\tb\v\$\'";
echo
$str2,'<br
/>';
?>
②对变量的解析不同
单引号字符串中出现的变量不会被变量值替代。即PHP不会解析单引号中的变量,而是将变量名原样输出。双引号字符串最重要的一点是其中的变量名会被变量值替代,即可以解析双引号中包含的变量。
<?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
语句
反斜杠
//使用单引号
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
假设查询条件中使用的是常量,例如:
select
*
from
abc_table
where
user_name='abc';
SQL语句可以写成:
SQLstr
=
“select
*
from
abc_table
where
user
_name=
‘abc'”
;
假设查询条件中使用的是变量,例如:
$user_name
=
$_REQUEST['user_name'];
//字符串变量
或
$user=array
(”name”=>
$_REQUEST['user_name‘,"age"=>$_REQUEST['age'];//数组变量
SQL语句就可以写成:
SQLstr
=
“select
*
from
abc_table
where
user_name
=
‘
”
.
$user_name
.
”
‘
“;
SQLstr
=
“select
*
from
abc_table
where
user_name
=
‘
”
.
$user["name"]
.
”
‘
“;
对比一下:
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:”select
*
from
table
where
user_name
=
‘
”
//固定SQL语句
2:$user
//变量
3:”
‘
”
附:大家也看到了
echo
'<br/>';
html中的标签在单引号和双引号中都有效。
总结一下PHP引号使用原则
1.字符串的值用引号
2.PHP中尽量用单引号,HTML代码全部用双引号
3.在包含变量的时候,用双引号可以简化操作
4.复杂的情况下用大括号包起来
PHP引号还有一个用处就是,有的时候需要用php生成文本文件,换行符n需要用双引号才能好使,单引号则会直接把n当成字符输出。
使用总结:在字符串里面不需要加入
变量
或者
单引号(')和反斜杠(\)
时,尽量用单引号引字符串,因为省去了双引号检查处理转义和解析变量上面的时间。能用单引号尽量用单引号。
3. 单引号和双引号在PHP代码中用法有什么不同
在PHP中,字符串的定义可以使用单引号,也可以使用双引号。但是必须使用同一种单或双引号来定义字符串,如:‘Hello"和“Hello'为非法的字符串定义。
定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:
$s = "I am a 'single quote string' inside a double quote string";
$s = 'I am a "double quote string" inside a single quote string';
$s = "I am a 'single quote string' inside a double quote string";
$s = 'I am a "double quote string" inside a single quote string';
PHP允许我们在双引号串中直接包含字串变量,单引号串和双引号串在PHP中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如如下代码:
$foo = 2;
echo "foo is $foo"; // 打印结果: foo is 2
echo 'foo is $foo'; // 打印结果: foo is $foo
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行)
echo 'foo is $foo\n'; // 打印结果: foo is $foo\n
$foo = 2;
echo "foo is $foo"; // 打印结果: foo is 2
echo 'foo is $foo'; // 打印结果: foo is $foo
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行)
echo 'foo is $foo\n'; // 打印结果: foo is $foo\n
在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠\\和插入单引号\')。所以,当想在字串中进行变量代换和包 含\n(换行符)等转义序列时,应该使用双引号。单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些,因为PHP语法分析器对单引号串 的处理方式比较单纯,而双引号的处理由于串内部也需要解析,因此更复杂些,所以处理速度略慢。 技术问题可到itjob技术交流群交流
4. php 的单引号和双引号的用法
$test1 = "PHP";
1:echo "互联网最流行的技术$test1" //输出 互联网最流行的技术PHP
2:echo '互联网最流行的技术$test1' //输出 互联网最流行的技术$test1
上面两个例子说明,双引号里面的变量,会当作变量解释,单引号里面的变量会直接当作字符串来处理,就是说,在单引号里面的变量会失去其变量的性质,变成一个字符串。
如果想用第一句的方法输入第二句的结果,加转义符号啊
3:echo "互联网最流行的技术\$test1" //输出 互联网最流行的技术$test1
4:echo "互联网最流行的技术$test1技术" //本来是想输出 互联网最流行的技术PHP技术,但是你发现,告诉你,找不到变量$test1技术,因为没有加空格,所以它把后面所有的都当成一个变量了。
所以你会发现,很多优秀的作品,都推荐使用''单引号来写变量,除非里面是SQL语句。就是防止这类的错误。至于为什么SQL除外,你可以自己想一下!
5. php中,中括号"[]"里什么时后用双引号什么时候用单引号
说的通俗一点,就是如果在引号内没有变量的话,还是使用单引号,有利于执行效率!
$a=10;
echo "$a是$a";输出:10=10
echo '$a=$a'; 输出:$a=$a
6. php 单双引号与转义的问题
在单引号串中反斜线失去了它的扩展含义(除了添入反斜杠\\和添入单引号\')。所以,当你想在字串中进行变量代换和包含\n(换行符)等转义序列时,你应该使用双引号。
所以单引号不会转义,\\只是添加了一个\,这个类似\' 添加了一个单引号。
7. php 单引号和双引号的区别
两者的区喊侍悄别如下:
1、变量上的区郑渣别
双引号能解释变量,谈前单引号不能解释变量。 单引号插入双引号中,如果单引号中包含变量,则变量解释。
2、效率上的区别
单引号比双问号更有效,因为首先需要遍历双引号以确定其中是否有变量,然后执行操作,并且不需要判断单引号。
3、字符上的区别
双引号解释转义符,单引号不解释转义符,而是解释'和。