单引号、双引号与定界符——PHP
单引号与双引号
单引号和双引号在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的更多相关文章
- 转发:【PHP】转义和过滤html单、双引号及HTML标签
一.单引号和双引号转义在PHP的数据存储过程中用得比较多,即往数据库里面存储数据时候需要注意转义单.双引号: 先说几个PHP函数: 1.addslashes — 使用反斜线引用(转义)字符串: 返回字 ...
- Linux中的元字符和转义符 单引号 硬引号 双引号 软引号
Linux中的元字符和转义符 单引号 硬引号 双引号 软引号 Linux就这个范儿 Linux就这个范儿 P182单引号:硬引号,所有元字符特殊意义都会关掉双引号:软引号,只允许出现特定元字符 ...
- PHP中单引号双引号使用原则
PHP中单引号双引号使用原则 1.PHP中尽量用单引号,HTML代码全部用双引号 2.在包含变量的时候,用双引号可以简化操作 3.复杂的情况下用大括号包起来 4 PHP引号还有一个用处 ...
- python中的单引号,双引号,三引号
转载自: http://blog.csdn.net/wanghai__/article/details/6285310 先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1 ...
- Python 基础 (单、双引号区别) 不断补充
最近开始学习Python ,一些小细节的东西不是很理解,所以就记录一下,方便自己以后查看. 我的Python环境: Mac pro 10.12.3,Python3.5 ,Pycharm 多句题外话:公 ...
- python:单引号,双引号和三引号
python中字符串可以用单引号括起来,也可以用双引号,这两种方式是等价的需要表示一个字符串对象的话,单引号和双引号没有区别 为什么需要单引号和双引号同时支持,而一般都是”呢? 比如” 双引号’里面有 ...
- XML中& <> 单引号' 双引号 " 报错
由于xml中 这些字符是特殊字符,所以把&改成& 就行了 ,注意后面一定要带一个分号; < < 小于号> > ...
- python中单引号, 双引号,三引号的差异
1. 单引号和双引号用法都是一样的,但是如果字符串里有相同的字符时要使用\进行转义 举例:1) print 'hello'2) print "hello"1和2,结果都是hello ...
- HTML 如何显示英文单、双引号
// 过滤英文引号替换成中文引号 function pregstring($str){ return preg_replace('/"([^"]*)/','"${1 ...
- 【python】字符串变量赋值时字符串可用单或双引号
>>> name='萧峰' >>> print(name) 萧峰 >>> name="独孤求败" >>> p ...
随机推荐
- zookeeper与kafka集群部署实现
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作.最终, ...
- 无法安装64位office,因为您的PC上有32位
场景:安装visio2013时,突然报以下错误 解决方案: 1. 单击开始--所有程序--附件--运行,在运行输入“regedit“ 2. 弹出注册表编辑器窗口,选择HKEY_CLASSES_ROOT ...
- Charles 修改请求/compose和Compose New
本文参考:撰写工具/compose和Compose New 撰写工具/compose和Compose New compose 是在原有的请求基础上,修改: 可以写各种状态: – URL: – Meth ...
- 控制执行流程之switch语句
switch语句,同时也是一种选择性语句,其根据整数表达式的值(整数选择因子)选择一段代码去执行.整数选择因子为int类型或者char类型.
- input和btton的相互使用————小程序
input和btton的相互使用----小程序 index.js data: { userxx:'1111', }, changeSum(){ // this.data.userxx="ch ...
- 从Hybrid到React-Native: JS在移动端的南征北战史
注:因为不了解Dart,所以本文不对flutter相关内容进行阐述, 实在抱歉 Hybrid Hybird是一种混合开发应用,可以实现JS和Java代码的互通,单纯使用ios/android原生实现, ...
- Java 自定义注解 校验指定字段对应数据库内容重复
一.前言 在项目中,某些情景下我们需要验证编码是否重复,账号是否重复,身份证号是否重复等... 而像验证这类代码如下: 那么有没有办法可以解决这类似的重复代码量呢? 我们可以通过自定义注解校验的方式去 ...
- sql server 使用 partition by 分区函数 解决不连续数字查询问题
sql server表中的某一列数据为不一定连续的数字,但是需求上要求按照连续数字来分段显示,如:1,2,3,4,5,6,10,11,12,13, 会要求这样显示:1~6,10~13.下面介绍如何实现 ...
- mysql备份脚本并保留7天
脚本需求: 每天备份mysql数据库,保留7天的脚本. 存放在/opt/dbbak目录中. 脚本名称为database_xxxx-xx-xx.sql 脚本内容: #!/bin/bash export ...
- Redis基础(官方文档总结)
REmote DIctionary Server(Redis) Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供 ...