澳门新浦京电子游戏PHP中单引号和双引号的区别

在PHP中,字符串的定义能够选择韩文单引号’ ‘,也足以接纳爱沙尼亚语双引号” “。

1、定义字符串   

而是必得运用相像种单或双引号来定义字符串,如:’Hello
World”和”Hello
World’为地下的字符串定义。

在PHP中,字符串的概念可以采取单引号,也能够运用双引号。但是必需运用同样种单或双引号来定义字符串,如:‘Hello”和“Hello’为地下的字符串定义。
  
概念字符串时,只有风华正茂种引号被视为定义符,即单引号或双引号。于是,借使四个字符串由双引号开端,那么唯有双引号被深入分析器深入分析。那样,你就足以在双引号串中包含其余其余字符,甚至单引号。上面包车型大巴引号串都是官方的:
Php代码
复制代码 代码如下:
$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’;   

单引号和双引号到底有甚差别吧?

而串 “Why doesn’t “this” work?”
则会被分为三段。假若在这里个串中想要表示出双引号,则足以行使转义符””(反斜线),变成
“Why doesn’t “this” work?” 即可。

PHP允许大家在双引号串中央市直机关接包罗字串变量。

2、字符串变量中的单、双引号  
 
PHP允许大家在双引号串中一贯包涵字串变量,我们得以开掘上面包车型大巴五个字串的管理结果是意气风发律的。
复制代码 代码如下:
$full_name = $first_name . ‘ ‘ . $last_name;
$full_name = “$first_name $last_name”;   

而单引号串中的内容总被感觉是平淡无奇字符,因此单引号中的内容不会被转义功用更加高。

单引号串和双引号串在PHP中的管理是不等同的。双引号串中的内容能够被演讲何况替换,而单引号串中的内容总被认为是惯常字符。举例:
Php代码
复制代码 代码如下:
$foo = 2;
echo “foo is $foo”; // 打字与印刷结果: foo is 2
echo ‘foo is $foo’; // 打字与印刷结果: foo is $foo
echo “foo is $foon”; // 打字与印刷结果: foo is 2 (同不经常候换行卡塔尔(قطر‎
echo ‘foo is $foon’; // 打字与印刷结果: foo is $foon
$foo = 2;
echo “foo is $foo”; // 打字与印刷结果: foo is 2
echo ‘foo is $foo’; // 打印结果: foo is $foo
echo “foo is $foon”; // 打字与印刷结果: foo is 2 (同期换行卡塔尔(قطر‎
echo ‘foo is $foon’; // 打字与印刷结果: foo is $foon   

比如:

正如您所阅览的,在单引号串中居然反斜杠也失去了她的增加含义(除了插入反斜杠\和插入单引号’)。所以,当您想在字串中开展变量代换和包涵n(换行符)等转义种类时,你应当运用双引号。单引号串可以用在任何任哪个地区方,脚本中选择单引号串管理速度会越来越快些,因为PHP语法深入分析器对单引号串
的管理情势相比较单纯,而双引号的管理由于串内部也急需解析,因而更复杂些,所以管理速度略慢。
  
在字符串中援用复杂的变量组合时,恐怕会生出一些主题材料,上边包车型大巴代码会平常专门的职业:
Php代码
复制代码 代码如下:
echo “value = $foo”;
echo “value = $a[$i]”;
echo “value = $foo”;
echo “value = $a[$i]”;   

$str='hello';
echo "str is $str"; //运行结果: str is hello
echo 'str is $str'; //运行结果: str is $str

而下边包车型大巴代码却不可能收获大家期望的结果:
echo “value = $a[$i][$j]”; //大家希望打字与印刷二维数组$a的有个别成分。
  
为制止那个字串使用中的潜在难题,大家数见不鲜把纷纷的变量从字串中分别开来,就好像这样:echo
‘value = ‘ . $a[$i][$j];//字符串的三翻五次用点(.卡塔尔(قطر‎   
还也可以有后生可畏种艺术是将复杂变量用花括号括起来,语法解析器就会准确识别了:
echo “value = {$a[$i][$j]}” //打印二维数组$a的某部成分   
如此,又并发新主题素材了。当大家想在字串中援用花括号字符自个儿时,就要记得使用转义符了:
Php代码
复制代码 代码如下:
$var = 3;
echo “value = {$var}”; // 打字与印刷结果 “value = 3”
echo “value = {$var}”; // 打印结果 “value = {3}”
$var = 3;
echo “value = {$var}”; // 打字与印刷结果 “value = 3”
echo “value = {$var}”; // 打字与印刷结果 “value = {3}”

php中,双引号中的变量($var卡塔尔(قطر‎和特殊字符(rn之类卡塔尔国会被转义,单引号中的内容不会被转义(所以功能越来越高)。

3、在SQL语句中  
 
那是会日常遇到的主题素材,在插入数据库的SQL语句是使用单引号来定义字符串,假如要将叁个满含单引号的字符串插入数据库,这几个SQL语句就能出错。
如:$sql=”insert into userinfo (username,password)
Values(‘O’Kefee’,’123456′)”   
那个时候,处理的措施之一是在SQL语句中参与转义符反斜线,
即:……Values(‘O’Kefee’,……   
当然也得以运用函数 addslashes(State of Qatar,该函数的意义就是踏向转义符,
即:$s = addslashes(“O’Kefee”) ……Values(‘”.$s.”‘,……   
再有生机勃勃种办法是设置php.ini中的magic-quotes选项,张开该选用,则透过表单提交的音信中生龙活虎经有单引号是,将会自动抬高如转义符。因而不用采纳此外函数了。
补偿: 那将要从双引号和单引号的成效讲起:
双引号里面包车型大巴字段会经过编写翻译器解释然后再作为HTML代码输出,不过单引号里面包车型客车不须要表达,直接出口。
例如:
复制代码 代码如下:
$abc=’I love u’;
echo $abc //结果是:I love u
echo ‘$abc’ //结果是:$abc
echo “$abc” //结果是:I love u

利用上的话,小编原先很赏识在sql字符串里这么写$sql = “SELECT * FROM table
WHERE id = $id”,那样里面包车型地铁$id能够被转义,单引号就拾分。

为此在对数据Curry面包车型大巴SQL语句赋值的时候也要用在双引号里面SQL=”select a,b,c
from …” 可是SQL语句中会有单引号把字段名引出来
例如:select * from table where user=’abc’;
此地的SQL语句能够一向写成SQL=”select * from table where user=’abc'”
而是若是象下边:
复制代码 代码如下:
$user=’abc’;
SQL1=”select * from table where user=’ “.$user.” ‘ “;相比较一下
SQL2=”select * from table where user=’ abc ‘ ”

在JavaScript中单引号和双引号未有区分,只要成对使用就行。

自我把单引号和双引号之间多加了点空格,希望你能看的接头一些。
也正是把’abc’ 替换为
‘”.$user.”‘都以在三个单引号里面包车型客车。只是把全部SQL字符串分割了。
SQL1足以表达为以下3个部分
1:”select * from table where user=’ “
2:$user
3:” ‘ “
字符串之间用 . 来连接,那样能理解了啊。 

自己在JavaScript 中动用单引号许多是因为 Javascript 和 HTML
打交道超多,输出 HTML 片段的时候不必要转义 HTML 中质量的引号。
简单的说,看其真实情状形来,怎么方便怎么采用。

朝气蓬勃、引号定义字符串

  在PHP中,平常三个字符串被定义在风度翩翩对引号中,如:
‘I am a string in single quotes’
“I am a string in double quotes”
  PHP语法深入分析器是用成没有错引号来决断贰个字符串的。由此,全部字符串必得使用相像种单照旧双
引号来定义初步和终止。举个例子,下边包车型客车字串定义是违规的:
“I am not a valid string since I have unmatching quote marks’
‘Me neither!”
  定义字符串时,独有黄金时代种引号被视为定义符,即单引号或双引号。于是,假使二个字符串由双引
号初叶,那么唯有双引号被剖析器深入分析。那样,你就可以在双引号串中饱含其余其余字符,以至单引
号。上面包车型地铁引号串都以法定的:
$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遭逢与串的发端相呼应的引号时,便感觉曾经到了字符串尾巴部分,于是:
“Why doesn’t “this” work?”
  实际上被PHP语法深入分析器分成三个部分:
“Why doesn’t “——包含叁个单引号的双引号串
this——多余的字符,剖判器无法处理
” work?” ——普通字符串
  上边的那个例子盘算在双引号串中满含双引号,而深入分析器在遭受第贰个双引号时便感觉字符串结
束了。要高达包括引号的目标,必需解析器在遭遇串内普通引号的时候不经意它的本意,大家在引号的
后边加上一个反斜杠来报告PHP:那个引号是字符串的风姿浪漫部分,准确的象征方法是那般:
“Why doesn’t “that” work?”
  在立陶宛共和国语字符串中二个周边的难点是撇号’的采纳,因为它正是两个单引号,而在日语串中特别科学普及
(英文全数格)。你必得小心管理那个字符:
‘You’d better escape your apostrophes’
  能够看出反斜杠在字符串中有她的独特意义,当我们须要在字符串中带有反斜杠本人时,须要在
该符号前边多加二个反斜杠。举个例子:
$file = “c:windowssystem.ini”;
echo $file; // 打字与印刷结果为: c:windowssystem.ini
$file = “c:\windows\system.ini”;
echo $file; // 打印结果为: c:windowssystem.ini
  另豆蔻梢头种字符串定义情势,能够消灭特殊字符的烦躁,并且有益于援用较长的公文。该字符串定义方
法以<<
二、字串的接连
  字串能够运用字串连接符(.卡塔尔来一而再,如:
$first_name = ‘Charlie’;
$last_name = ‘Brown’;
$full_name = $first_name . ‘ ‘ . $last_name;
  不足为道的用场是树立大块的HTML字串代码,赋值号 (=卡塔尔国 连接符 (.卡塔尔能够被简写合并为 (.=卡塔尔 符
号,如:
$html = ‘

‘;
$html .= ‘

number

square

‘;
for ( $i=0 ; $i<10 ; $i++) {
$square = $i * $i;
$html .= ‘

‘ . $i . ‘

‘ . $square . ‘

‘;
}
$html .= ‘

‘;

三、在字串中行使变量
  这一个功能令你绝不使用连接符号来粘和大气的总结字符串。PHP允许大家在双引号串中央直属机关接满含字
串变量,大家得以开掘上边包车型客车多少个字串的管理结果是如出意气风发辙的。
$full_name = $first_name . ‘ ‘ . $last_name;
$full_name = “$first_name $last_name”;
  单引号串和双引号串在PHP中的处理是不雷同的。双引号串中的内容能够被疏解并且替换,而单引
号串中的内容总被感觉是平凡字符。举个例子:
$foo = 2;
echo “foo is $foo”; // 打字与印刷结果: foo is 2
echo ‘foo is $foo’; // 打字与印刷结果: foo is $foo
echo “foo is $foon”; // 打字与印刷结果: foo is 2 (同一时间换行卡塔尔
echo ‘foo is $foon’; // 打字与印刷结果: foo is $foon
  正如你所观察的,在单引号串中居然反斜杠也遗失了她的扩展含义(除了插入反斜杠\和插入单
引号’)。所以,当您想在字串中进行变量代换和包蕴n(换行符)等转义种类时,你应当选取双引
号。单引号串能够用在其它任何处方,脚本中接纳单引号串管理速度会更加快些,因为PHP语法深入分析器对
单引号串的管理形式相比较单纯,而双引号的拍卖由于串内部也亟需剖判,因而更眼花缭乱些,所以拍卖速
度略慢。
  在字符串中引用复杂的变量组适当时候,只怕会产生局地标题,下边包车型地铁代码会符合规律干活:
echo “value = $foo”;
echo “value = $a[$i]”;
  而下边包车型地铁代码却不可能得到咱们期待的结果:
echo “value = $a[$i][$j]”; //大家目的在于打字与印刷二维数组$a的某些元素。
  为幸免那么些字串使用中的潜在难题,大家平日把复杂的变量从字串中抽离开来,就疑似这么:
echo ‘value = ‘ . $a[$i][$j];
  还应该有风度翩翩种情势是将复杂变量用花括号括起来,语法深入分析器就会准确识别了:
echo “value = {$a[$i][$j]}” //打字与印刷二维数组$a的某部成分
  那样,又并发新主题材料了。当大家想在字串中援引花括号字符本人时,就要记得使用转义符了:
$var = 3;
echo “value = {$var}”; // 打字与印刷结果 “value = 3”
echo “value = {$var}”; // 打字与印刷结果 “value = {3}”

三、斜杠和SQL语句

  生成HTML代码或SQL查询语句是编写制定PHP程序时平常遇上并且是件有意思的作业。为何这样说呢,
因为那关乎到变化其余一连串型的代码,你必须要紧凑地思考和坚决守护这种代码所须要的编辑语法和规
则。
  大家来看那样一个例子,假设你想查询数据库中名字是“O’Keefe”的客商,平常SQL语句的样式
是如此的:
select * from users where last_name = ‘O’Keefe’
  请用心SQL语句那一个法文全数格(撇号)需采纳反斜杠转义。PHP特意提供了有的函数来管理那样
的情事,函数AddSlashes($strState of Qatar的用处就是机关在字串中对引号字符插入反斜杠转义符:
$last_name = “O’Keefe”;
$sql = “select * from users where last_name = ‘” .
addslashes($last_name) . “‘”;
  在这里个例子中,你还要在last_name字串外面括上单引号(SQL语法须求),由于此地运用的是双
引号串,所以对那对单引号就绝不使用转义了。上边包车型地铁那些讲话是利用单引号串的十一分格局:
$sql = ‘select * from users where last_name = ” .
addslashes($last_name) . ”’;
  任几时候你要在数据库中写入字串,你都不得不确定保障内部的引号正确使用了转义符号,那是超多PHP
初读书人常犯的谬误。

**四、双引号和HTML

**  与SQL语句不一样,在规范HTML语言中双引号常被用来代表字串(以往广大浏览器材有较强的容错功
能,允许在HTML中用单引号以至不用引号表示字符串),例如:
$html = ”.$link.”;
$html = “$link”;
  HTML语言不帮忙反斜杠转义,这点在大家应用表单的hidden
inputs来传输数据的时候就能全部
咀嚼了。设置hidden
inputs的值的最棒情势,是运用htmlspecialchars(卡塔尔函数来编码。上边包车型客车语句可
以寻常传输多个恐怕满含双引号的数目:
  

生机勃勃、引号定义字符串。要达成满含引号的指标,
必得解析器在境遇串内普通引号的时候不经意它的本意,大家在引号的
前边加上一个反斜杠来告诉PHP:那么些引号是字符串的一片段,正确的表示方法是如此:单引号串可以用在其余任哪个地点方,脚本中选择单引号串管理速度会更加快些,因为PHP语法解析器对
单引号串的管理方式相比单纯,而双引号的管理由于串内部也急需解析,由此更复杂些,所以拍卖速
度略慢。

本条…双引号转义,单引号不转义
如:/r/n是换行,不过风流洒脱旦您用单引号写入文件,不会是换行,而是叁个字符,假使用双引号写入文件,就是换行.
同意。

发表评论

电子邮件地址不会被公开。 必填项已用*标注