单引号与双引号

单引号和双引号在echo输出时的区别

echo输出时,如果使用单引号,那么echo会把单引号之间的全部内容当成普通字符串输出,不能识别变量和转义字符(单引号串中的内容总被认为是普通字符)

 $str1 = "Hello";
echo '$str1<br/>';

运行结果:

echo输出时,如果使用双引号,那么echo会识别双引号之间的变量和转义字符

 $str1 = "Hello";
echo '$str1<br/>';
echo "$str1<br/>";

运行结果:

在上面的测试代码中,给$str1变量赋值的内容只有普通字符,所以使用单引号和双引号赋值的作用时一样的

------------------------------------------------------

单引号和双引号在给变量赋值时的区别

 $str1 = "Hello";
$str2 = '$str1 my friend';
$str3 = "$str1 my friend";
echo "$str2<br/>";
echo "$str3<br/>";

运行结果:

-----------------------------------------------------

PHP语法分析器是用成对的引号来判断一个字符串的。因此,所有字符串必须使用同一种单或者双引号来定义开始和结束,也就是说可以在双引号中包含单引号,单引号中包含双引号

 /* 双引号中包含单引号 和 单引号中包含双引号 */
$str6 = "Maybe today 'maybe tomorrow'";
$str7 = 'Maybe today "maybe tomorrow"';
echo "$str6<br/>";
echo "$str7<br/>";

运行结果:

如果想在单引号中包含单引号,双引号中包含双引号,则需要使用转义符\

 /* 在双引号中包含双引号 */
$str8 = "Who How What \"Why\" No";
echo "$str8<br/>"; /* 在单引号中包含单引号 */
$str9 = 'Who How What \'Why\' No';
echo "$str9<br/><br/>";

运行结果:

定界符

使用格式:

 <<<EOF
`````
EOF;

简单来说定界符的作用有:

1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西

2.在PHP定界符中的任何特殊字符都不需要转义

3.PHP定界符中的PHP变量会被识别,并用变量本身的值替换

(从上面三条可以看出定界符和双引号非常相似)

使用定界符注意事项:

1、EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致,并且开始标记和结束标记不在正文中出现即可(意思是可以写成如下形式)

<<<TODAY
`````
TODAY;

2、结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)

正确的示例:

 $str1 = 'Hello';
echo <<<EOF
{$str1}
EOF;

运行结果:

错误的示例:

 $str1 = 'Hello';
echo <<<EOF
{$str1}
EOF;

运行结果:

3、开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号

第一部分:不带引号与带双引号效果一致

 $str1 = 'Hello';
echo <<<EOF
{$str1}
EOF; $str2 = 'Hi';
echo <<<"EOF"
{$str2}
EOF;

运行结果:

第二部分:带单引号则不解释内嵌的变量和转义符号

 $str1 = 'Hello';
echo <<<'EOF'
{$str1}\n
EOF;

运行结果:

4、当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义

 $str1 = 'Hello';
echo <<<EOF
{$str1}"Hi"'Yo'
EOF;

运行结果:

定界符与双引号

当需要用echo输出大量的html和js代码时,定界符的优势便体现出来了,以html为例,当echo输出的html代码中含有单引号或双引号时,如果使用普通的双引号输出,则需要手动的添加转义符(\)来保证语法不会出错,如果使用定界符则不需要手动添加转义符,测试代码如下

使用echo""输出html代码

 echo "<a href=\"https://www.baidu.com\">此连接使用了href属性</a><br/>";

运行结果:

在上面代码中,如果不对html代码中的双引号添加转义符,则会报错

使用echo定界符输出html代码

 echo <<<EOF
<a href="https://www.baidu.com">此连接使用了href属性</a><br/>
EOF;

运行效果:

————————————————————————————

编辑器:Notepad++

环境:WampServer Version 3.1.9 64bit

PHP Version:7.3.5

单引号、双引号与定界符——PHP的更多相关文章

  1. 转发:【PHP】转义和过滤html单、双引号及HTML标签

    一.单引号和双引号转义在PHP的数据存储过程中用得比较多,即往数据库里面存储数据时候需要注意转义单.双引号: 先说几个PHP函数: 1.addslashes — 使用反斜线引用(转义)字符串: 返回字 ...

  2. Linux中的元字符和转义符 单引号 硬引号 双引号 软引号

    Linux中的元字符和转义符  单引号  硬引号  双引号  软引号 Linux就这个范儿 Linux就这个范儿 P182单引号:硬引号,所有元字符特殊意义都会关掉双引号:软引号,只允许出现特定元字符 ...

  3. PHP中单引号双引号使用原则

    PHP中单引号双引号使用原则   1.PHP中尽量用单引号,HTML代码全部用双引号   2.在包含变量的时候,用双引号可以简化操作   3.复杂的情况下用大括号包起来   4 PHP引号还有一个用处 ...

  4. python中的单引号,双引号,三引号

    转载自: http://blog.csdn.net/wanghai__/article/details/6285310 先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1 ...

  5. Python 基础 (单、双引号区别) 不断补充

    最近开始学习Python ,一些小细节的东西不是很理解,所以就记录一下,方便自己以后查看. 我的Python环境: Mac pro 10.12.3,Python3.5 ,Pycharm 多句题外话:公 ...

  6. python:单引号,双引号和三引号

    python中字符串可以用单引号括起来,也可以用双引号,这两种方式是等价的需要表示一个字符串对象的话,单引号和双引号没有区别 为什么需要单引号和双引号同时支持,而一般都是”呢? 比如” 双引号’里面有 ...

  7. XML中& <> 单引号' 双引号 " 报错

    由于xml中 这些字符是特殊字符,所以把&改成&  就行了 ,注意后面一定要带一个分号; <         <         小于号>         >  ...

  8. python中单引号, 双引号,三引号的差异

    1. 单引号和双引号用法都是一样的,但是如果字符串里有相同的字符时要使用\进行转义 举例:1) print 'hello'2) print "hello"1和2,结果都是hello ...

  9. HTML 如何显示英文单、双引号

    // 过滤英文引号替换成中文引号 function pregstring($str){ return preg_replace('/"([^"]*)/','&quot${1 ...

  10. 【python】字符串变量赋值时字符串可用单或双引号

    >>> name='萧峰' >>> print(name) 萧峰 >>> name="独孤求败" >>> p ...

随机推荐

  1. .Net基础篇_学习笔记_第三天_Convert类型转换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. Winform中对ZedGraph的曲线标签进行设置,比如去掉标签边框

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  3. Python实现语音识别和语音合成

    声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移. 通过傅里叶变换,可以将时间域的声音函数分解为一系列不同频率的正弦函数的叠加,通过频率谱线的特殊分布, ...

  4. 01 (OC)* @property 后面可以有哪些修饰符?

    一:@property 后面可以有哪些修饰符? 1:线程安全的: atomic,nonatomic 2:访问权限的 readonly,readwrite 3:内存管理(ARC) assign, cop ...

  5. 13 (OC)* SDWebImage

    IOS SDWebImage实现原理详解   在之前我写过SDWebImage的使用方法,主要是用与获取网络图片,没有看过的朋友可以看看. 这篇文章将主要介绍SDWebImage的实现原理,主要针对于 ...

  6. 2019 DevOps 必备面试题——配置管理篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  7. 【linux】【Zookeeper】Centos7安装Zookeeper-3.5.5

    一 .下载zookeeper wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5 ...

  8. Python 为什么要保留显式的 self ?

    花下猫语:前两天,我偶然在一个知识星球(刘欣老师的"码农翻身")里看到一篇主题,刘老师表示 Python 的类方法非要带个 self,而不像其它语言那样隐藏起来,这让人很不爽.我对 ...

  9. 站内搜索(ELK)之数据表字典类型字段的索引思路

    数据表字典类型的字段,如人员表中的“性别”.流程表中的“处理状态”,此类字段中的值高度重复,不建议放到可检索的索引字段中,原因如下: 若数据表字典类型字段的值索引到单独的索引字段中,因字典数据字符数一 ...

  10. redis分布式锁-基本概念与实现方式对比

    1.redis中使用WATCH实现锁机制,是最次之的方式.WATCH只会在数据被其他客户端抢先修改了的情况下,“通知”执行了这个命令的客户端,而不会阻止其他客户端对数据进行修改.此类锁成为“乐观锁” ...