GVKun编程网logo

php中, 双引号(PHP中双引号字符串支持变量解析以及转义字符)

1

本文将为您提供关于php中,双引号的详细介绍,我们还将为您解释PHP中双引号字符串支持变量解析以及转义字符的相关知识,同时,我们还将为您提供关于PHP中单双引号和双引号有什么区别、PHP中单引号与双引

本文将为您提供关于php中, 双引号的详细介绍,我们还将为您解释PHP中双引号字符串支持变量解析以及转义字符的相关知识,同时,我们还将为您提供关于PHP中单双引号和双引号有什么区别、PHP中单引号与双引号、php中单引号与双引号区别详细、PHP中单引号与双引号实例用法的实用信息。

本文目录一览:

php中, 双引号(PHP中双引号字符串支持变量解析以及转义字符)

php中, 双引号(PHP中双引号字符串支持变量解析以及转义字符)

1:当是字符串的时候单双皆可

2:当有双引号的时候,变量可直接解析

 

$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 

 

 echo $car[$i].''<br/>''; 是对的

 echo $car[$i].''<br/>''; 错误

PHP中单双引号和双引号有什么区别

PHP中单双引号和双引号有什么区别

单引号和双引号到底有啥区别呢?很多朋友都不太清楚,下面通过本文给大家介绍php中单双引号的区别详解,感兴趣的朋友一起学习吧。

在PHP中,字符串的定义可以使用英文单引号'' ‘,也可以使用英文双引号” “。

但是必须使用同一种单或双引号来定义字符串,如:''Hello World”和”Hello World''为非法的字符串定义。

单引号和双引号到底有啥区别呢?下面通过本文学习一下吧。

1、定义字符串  

立即学习“PHP免费学习笔记(深入)”;

点击下载“修复打印机驱动工具”;

在PHP中,字符串的定义可以使用单引号,也可以使用双引号。但是必须使用同一种单或双引号来定义字符串,如:‘Hello"和“Hello''为非法的字符串定义。   
定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:

Php代码

$s = "I am a &#39;single quote string&#39; inside a double quote string"; 
$s = &#39;I am a "double quote string" inside a single quote string&#39;; 
$s = "I am a &#39;single quote string&#39; inside a double quote string"; 
$s = &#39;I am a "double quote string" inside a single quote string&#39;;  
登录后复制

而串 "Why doesn''t "this" work?" 则会被分为三段。如果在这个串中想要表示出双引号,则可以使用转义符"\"(反斜线),变成 "Why doesn''t \"this\" work?" 即可。

2、字符串变量中的单、双引号   

PHP允许我们在双引号串中直接包含字串变量,我们可以发现下面的两个字串的处理结果是相同的。

$full_name = $first_name . &#39; &#39; . $last_name; 
$full_name = "$first_name $last_name";
登录后复制

单引号串和双引号串在PHP中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如:

Php代码

$foo = 2; 
echo "foo is $foo"; // 打印结果: foo is 2 
echo &#39;foo is $foo&#39;; // 打印结果: foo is $foo 
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行) 
echo &#39;foo is $foo\n&#39;; // 打印结果: foo is $foo\n 
$foo = 2; 
echo "foo is $foo"; // 打印结果: foo is 2 
echo &#39;foo is $foo&#39;; // 打印结果: foo is $foo 
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行) 
echo &#39;foo is $foo\n&#39;; // 打印结果: foo is $foo\n  
登录后复制

正如你所看到的,在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠\\和插入单引号\'')。所以,当你想在字串中进行变量代换和包 含\n(换行符)等转义序列时,你应该使用双引号。单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些,因为PHP语法分析器对单引号串 的处理方式比较单纯,而双引号的处理由于串内部也需要解析,因此更复杂些,所以处理速度略慢。   

在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作:

Php代码

echo "value = $foo"; 
echo "value = $a[$i]"; 
echo "value = $foo"; 
echo "value = $a[$i]";
登录后复制

而下面的代码却不能得到我们希望的结果:

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}"
登录后复制

3、在SQL语句中   

这是会经常遇到的问题,在插入数据库的SQL语句是采用单引号来定义字符串,如果要将一个含有单引号的字符串插入数据库,这个SQL语句就会出错。

如:

$sql="insert into userinfo (username,password) Values(&#39;O&#39;Kefee&#39;,&#39;123456&#39;)"   
登录后复制

此时,处理的方法之一是在SQL语句中加入转义符反斜线,

即:……Values(''O\''Kefee'',……   

当然也可以使用函数 addslashes(),该函数的功能就是加入转义符,

即:$s = addslashes("O''Kefee") ……Values(''".$s."'',……   

还有一种方法是设置php.ini中的magic-quotes选项,打开该选项,则通过表单提交的信息中如果有单引号是,将会自动加上如转义符。因此不用使用其他函数了。

补充: 这就要从双引号和单引号的作用讲起: 双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需要解释,直接输出。

例如:

$abc=&#39;I love u&#39;; 
echo $abc //结果是:I love u 
echo &#39;$abc&#39; //结果是:$abc 
echo "$abc" //结果是:I love u
登录后复制

所以在对数据库里面的SQL语句赋值的时候也要用在双引号里面SQL="select a,b,c from ..." 但是SQL语句中会有单引号把字段名引出来

例如:

select * from table where user=&#39;abc&#39;;
登录后复制

这里的SQL语句可以直接写成SQL="select * from table where user=''abc''"

但是如果象下面:

$user=&#39;abc&#39;; 
SQL1="select * from table where user=&#39; ".$user." &#39; ";对比一下 
SQL2="select * from table where user=&#39; abc &#39; "
登录后复制

我把单引号和双引号之间多加了点空格,希望你能看的清楚一点。

也就是把''abc'' 替换为 ''".$user."''都是在一个单引号里面的。只是把整个SQL字符串分割了。 SQL1可以分解为以下3个部分

1:"select * from table where user='' "

2:$user

3:" '' "

字符串之间用 . 来连接,这样能明白了吧。

以上所述是小编给大家介绍的PHP中单双引号的区别详解,希望对大家有所帮助,如果大家想了解更多内容敬请关注网站!

【相关教程推荐】

1. php编程从入门到精通全套视频教程 

2. php从入门到精通  

3. bootstrap教程 

PHP中单引号与双引号

PHP中单引号与双引号

PHP的字符串可以通过单引号定义,也可通过双引号。由于之前从事的是非程序员工作,所以经常会忘记两者的区别。最近又碰到这个问题,就上网查了。其实很简单,就是双引号会解析包含在里面的变量而单引号不会。

例子如下:

$str = "Hello";

    echo "$str World!";    // 输出Hello World!
    echo ''$str World!'';    // 输出$str World!


如果遇到数组或对象的情况,就会复杂一些,需要用到花括号或者点号来实现。如:

//下面是更复杂的情况
$user=array(
	"first_name"=>"Davey",
	"last_name"=>"Shafik"
);
//用花括号
echo "Hello {$user[''first_name'']} {$user[''last_name'']}";

//用点号
echo ''Hello ''.$user[''first_name''].'' ''.$user[''last_name''];
但是,单引号和双引号需要注意的大概也就这么多。

个人认为,还是尽量不要把变量写进引号内,这样代码会更清晰。


php中单引号与双引号区别详细

php中单引号与双引号区别详细

关于php中单引号与双引号区别有那些很,至于大家都说的下面我用我的理解来说说关于单引号与双引号的区别所在吧,单引号在其中间的变量是不被执行的,把变量当成了一个普通的字符串,而双引号php会去解析中间有变量没有,有的话解析变量,这样双引号在一些方法更费服务器资源.

单引号和双引号大体相同,但有一点非常重要,就是变量引用问题,你把下面代码运行即可明白了,代码如下:

<?php
$x = "中国";
echo "我是$x人"; //双引号
echo "<br />";
echo &#39;我是$x人&#39;; //单引号
?>
登录后复制

变量用双引号括起来,单引号中的则不是(即单引号中的变量符号不解析),单引号内部的变量不会执行,双引号会执行,代码如下:

$name = ''hello'';echo "the $name";,会输出 the hello,而如果是单引号,代码如下:

$name = ''hello'';echo ''the $name'';会输出 the $name,主要区别就是这个,在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作:

立即学习“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}"
登录后复制

看个实例,代码如下:

<?php
$var1 = "chris mao"; //assign the value "chirs mao" to $var1
$var2 = & $var1; //reference $var1 via $var2
echo &#39;<b>the value of $var2 is: </b>&#39;, $var2, "<br>"; //$var2 and $var1 have the same value "chris mao"
$var2 = &#39;my name is $var2&#39;; //modify $var2, the sametime $var1 was modified
echo &#39;<b>the value of $var1 is: </b>&#39;, $var1, "<br>"; //the value of $var1 is "my name is $var2"
$var2 = "my new name is $var1"; //modify $var2, the sametime $var1 was modified
echo &#39;<b>the value of $var2 is: </b>&#39;, $var2, "<br>"; //the value of $var1 is "my new name is my name is $var2"
echo &#39;<b>the value of $var1 is: </b>&#39;, $var1, "<br>"; //the value of $var1 is "my new name is my name is $var2"
?>
登录后复制


教程链接:

随意转载~但请保留教程地址★

PHP中单引号与双引号实例用法

PHP中单引号与双引号实例用法

""双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。

'''' 单引号里面的不进行解释,直接输出。

单引号和双引号都有自己的用途。

单引号的内容不会被解析,效率更高。

如下面代码:


$url=''http://www.bkjia.com'';

//单引号输出

$output= ''$url'';

echo ''单引号输出:''.$output.''
'';

//双引号输出

$output="$url";

echo "双引号输出:".$output;

?>

立即学习“PHP免费学习笔记(深入)”;

输出如下:

关于php中, 双引号PHP中双引号字符串支持变量解析以及转义字符的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于PHP中单双引号和双引号有什么区别、PHP中单引号与双引号、php中单引号与双引号区别详细、PHP中单引号与双引号实例用法的相关信息,请在本站寻找。

本文标签: