单引号、双引号与定界符——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 ...
随机推荐
- java.lang.UnsupportedClassVersionError:JDK版本不一致报错
交代一下背景:公司运行的一个上线项目,打了个补丁发给客户后,反馈说运行不了.把源码拿回来场景重现.贴上报错信息: 08-15 14:13:29 ERROR doPost(jcm.framework.r ...
- Java web 修改默认web部署路径
转载自:https://blog.csdn.net/lcczpp/article/details/79968070 在eclipse上面部署web项目后,它没有将你的项目文件放到tomcat 的目录下 ...
- JVM性能监视
1,按照如下图步骤将-XX:PermSize及 -XX:MaxPermSize的值修改到足够小,故意造项目启动报错,我设置为32m.然后保存. 2.在IDE中启动tomcat的同时打开dos窗口,使用 ...
- 纯纯的css画美美的彩虹
效果 效果图如下 实现思路 使用box-shadow画赤橙黄绿蓝靛紫7个弧形,拼接在一起 after伪元素写投影样式 彩虹和投影都有动画 dom结构 用两个嵌套的div容器,父容器来控制图标显示的 ...
- SQL手工注入基础篇
0.前言 本篇博文是对SQL手工注入进行基础知识的讲解,更多进阶知识请参考进阶篇(咕咕),文中有误之处,还请各位师傅指出来.学习本篇之前,请先确保以及掌握了以下知识: 基本的SQL语句 HTTP的GE ...
- chrome,firefox浏览器字体发虚解决办法
打开微软自家的edge浏览器,字体就没有问题,刚开始以为是浏览器的问题,调整半天也没有效果,后来怀疑是Windows系统的问题,于是尝试调整字体,成功解决! 解决方案: 进入个性化->字体-&g ...
- PTA A1014
A1014 Waiting in Line (30 分) 题目内容 Suppose a bank has N windows open for service. There is a yellow l ...
- nested exception is java.lang.NoClassDefFoundError: javax/xml/soap/SOAPElement
JavaSE 8 includes package java.xml.soap.JavaSE 9 moved package javax.xml.soap to the module java.xml ...
- ActiveMQ基本使用
消息队列,目前在实际的开发项目中应用十分广泛.本文主要介绍入门级的ActiveMQ的基本使用以及相关的概念. 一.JMS 全称 Java Message Service,即Java消息服务.JMS是一 ...
- 怎样用手机把视频变成GIF表情包?原来那么简单,网友:看完涨知识了
现如今表情包几乎成了,我们手机聊天的必需品了.不过相比于普通表情包,大家更喜欢用GIF表情包,因为动图表情包不仅更加搞笑,而且能更形象的表达我们的情绪.比较有想法的朋友甚至想自己制作GIF表情包,但是 ...