辛星和你彻底解读单引号和双引号的区别

本以为PHP中单引号的区别这么简单而基础的知识应该是每个PHPer都知道的,结果还是有很多PHPer不清楚,这一点我也非常痛心,痛定思痛,于是,我们就来彻底搞定PHP中的单引号和双引号的差别,其实很简单的。

当PHP解析双引号的时候,会自动的被分析器分析一次,进行一次到字符串的转化,因此如果双引号的 字符串中有变量,会被自动用变量去替代,比如如下代码:

<?php
$xin = "辛星";
echo "$xin";
echo '$xin';

上述代码的输出如下:

辛星$xin

原因很简单,就是当我们使用双引号的时候,会自动被解析为辛星,当我们使用单引号的时候,会原样输出。

其实不仅仅是变量,某些转义符号也会在双引号中被解析,比如我们看如下代码:

<?php
$xin = "辛\"星";
echo "$xin";
echo "<br />";
echo '$xin';

我想大家应该猜到输出是什么了吧,没错,输出内容如下:

辛"星
$xin

当然啦,有一个小误区,不知道大家是否知道,那就是大家猜测一下如下代码会有什么效果呢?代码如下:

<?php
$xin = "辛星";
echo "$xin你好";

如果读者认为输出“辛星你好”,那还说明没有用过,其实它的输出如下:

( ! ) SCREAM: Error suppression ignored for
( ! ) Notice: Undefined variable: xin你好 in D:\MyApp\wamp\www\api.php on line 3
Call Stack
#	Time	Memory	Function	Location
1	0.0021	138760	{main}( )	..\api.php:0

通过阅读上述错误信息,我们知道了,原来它把“xin你好”当成一个变量来解析,显然这个变量是不存在的,于是,我们的程序出了bug,那么怎么修改它呢?其实加一个空格就好了,修改后的代码如下:

<?php
$xin = "辛星";
echo "$xin 你好";

它的输出结果如下:

辛星 你好

对了,还有一点忘记说了,那就是用单引号会稍微快一点,因为它没有这个解析变量的过程,原因很好理解吧。。

时间: 2024-08-27 00:40:10

辛星和你彻底解读单引号和双引号的区别的相关文章

[转载]PHP效率计:从引号开始(单引号、双引号效率区别)

原文地址:http://blog.sina.com.cn/s/blog_640b03390100sham.html 一直以来,程序的执行效率就是人们所关注的,在PHP中也不例外,从最简单的引号,也在思考他的效率.我们特别做了实验,我们自称这个实验可能前无古人,后无来者.我们的实验是借助最初级的实验方法:累积法和多次实验求平均值. 实验一:在普通情况下的效率我们的实验是5000次执行10000个字节的文件,获得解析过程中的速度.首先,本实验特别规定一个单位,这是为了更好地表示以及排除计算机本身效率

Delphi学习手记——单引号和双引号的区别

单引号和双引号的区别 双引号表示其中字符可能包含变量,而单引号表示整个引号内的东西都当成字符串来处理. 也就是说:没有内设变量就用单引号'',有就用双引号"". 举例说明: $var = 'this'; print "haha $var"; //OUT: haha this print 'haha $var'; //OUT: haha $var

单引号和双引号的区别、linux快捷键、zip压缩、lrzsz、vim常见问题

Day11-12-21 怎么去记忆? 大脑: 意识 == 内存 潜意识 === 硬盘 如何将知识放到潜意识中: 1. 交流讨论 - - 说出来 睡觉前,把当天学的内容和复习的内容,以语音的形式表达出来. 微信群里说出来. 自学知识点,分享给大家. 2. 画图表达出来 本章正题:单引号和双引号的区别.linux快捷键.zip压缩.lrzsz.vim常见问题 1.1 单引号.双引号.反引号的区别: 1)单引号:单引号的内容会原封不动的先试穿了,所见即所得,吃啥吐啥 2)双引号:与单引号类似,双引号里

linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

" "(双引号)与 ' '(单引号)的区别  你在shell prompt后面敲打键盘.直到按下enter的时候,你输入的文字就是command line了,然后shell才会以进程方式执行你所提交的命令.但是,你又可知道:你在command line输入的每一个文字,对shell来说,有什么类别之分呢? 简单而言,command line的每一个charactor分为如下两种:   *literal:也就是普通纯文字,对shell来说没有特殊功能.   *meta:对shell来说,

php中超全局数组变量$_GET和$_POST以及单引号和双引号的区别

1,$_GET的传参是在地址栏明文显示的,$_POST是通过http主体请求,页面上看不到(通过firebug可以查看): 2,http并没有明确规定$_GET和$_POST所能提交的数据的限制,$_GET受浏览器和web服务器的相关设置,$_POST也受web服务器以及php.ini中的相关设置而定,$_GET一般提交数据的大小不超过2k: 3.从设定上来说$_GET一般用于获取或查询数据而进行传参,$_POST一般用于更新,插入,删除数据而进行传参,用$_POST提交数据相对于$_GET安全

单引号和双引号的区别

首先, 单引号和双引号,都是为了解决中间有空格的问题. 因为空格在linux中时作为一个很典型的分隔符,比如 string1=this is a string,这样执行就会报错.为了避免这个问题,因此就产生了单引号和双引号.他们的区别在于,单引号将剥夺其中的所有字符的特殊含义,而双引号中的 '$'(参数替换)和'`'(命令替换)是例外.所以,两者基本上没有什么区别,除非在内容中遇到了参数替换符$和命令替换符`. num=3 echo '$num' echo xxxxx echo "$num&qu

PHP定义字符串时单引号和双引号的区别

一般用单引号或双引号标识一个字符串.单引号串与双引号串,在PHP中的处理是不同的.双引号中的内容可以被解释并被替换,单引号串中的内容则被作为普通字符处理. 例如: [php] view plain copy $str=6; echo "str is $str\n"; echo 'str is $str\n'; 输出结果为 str is 6 str is $str\n 注:单引号中输出的内容是"所见即所得"的,无论有无变量,都被当做普通字符原样输出. 说明:在定义简单

PHP效率计:从引号开始(单引号、双引号效率区别)

一直以来,程序的执行效率就是人们所关注的,在PHP中也不例外,从最简单的引号,也在思考他的效率.我们特别做了实验,我们自称这个实验可能前无古人,后无来者.我们的实验是借助最初级的实验方法:累积法和多次实验求平均值. 实验一:在普通情况下的效率我们的实验是5000次执行10000个字节的文件,获得解析过程中的速度.首先,本实验特别规定一个单位,这是为了更好地表示以及排除计算机本身效率的差异.时间单位 TT,表示约 7.2×10[sup]-8[/sup]s .我们获得四组实验数据,可理解为表示 'a

辛星和你彻底解读单引號和双引號的差别

本以为PHP中单引號的区别这么简单而基础的知识应该是每一个PHPer都知道的,结果还是有非常多PHPer不清楚,这一点我也非常痛心,痛定思痛,于是,我们就来彻底搞定PHP中的单引號和双引號的区别,事实上非常easy的. 当PHP解析双引號的时候,会自己主动的被分析器分析一次,进行一次到字符串的转化,因此假设双引號的 字符串中有变量,会被自己主动用变量去替代,比方例如以下代码: <?php $xin = "辛星"; echo "$xin"; echo '$xin