单引号、双引号与定界符——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 ...
随机推荐
- 【深入浅出-JVM】(75):class 装载
过程 装载 条件 主动使用 class时 创建一个类的实例 (new .反射.克隆.反序列化) 调用类的静态方法(invokestatic) 使用类或接口的静态字段(getstatic.putstat ...
- PythonI/O进阶学习笔记_5.python的set和dict
前言: 我一直觉得对我来说学习知识很忌讳不系统.本篇内容与上一篇 自定义序列类是有联系的. 上一篇比较通范的了解了序列类的一些协议和特性,并且有些list的内容.这篇更加具体到set和dict这两个序 ...
- Net基础篇_学习笔记_第十天_方法_方法的调用问题
在Main()函数中,调用Test()函数,我们管Main()函数称之为调用者,管Test()函数称之为被调用者.如果被调用者想要得到调用者的值:1).传递参数.2).使用静态字段来模拟全局变量.如果 ...
- Android静态注册广播无法接收的问题(8.0+版本)
如果你静态注册的广播无法接收到消息,请先检查下:你的安卓版本是不是8.0+ * 前言** Google官方声明:Beginning with Android 8.0 (API level 26), t ...
- 零基础快速入门Java的秘诀
刚开始学习Java时要端正自己的学习的目标和态度,明确学习Java基础重点要做什么. 首先第一点,Java基础的学习,基础很重要,基础好地基牢,才能爬的高! 大家要从以下4个方向努力: 代码能力:一定 ...
- js/jquery去掉空格,回车,换行
Jquery:$("#accuracy").val($("#accuracy").val().replace(/\ +/g,""));//去 ...
- Python3.7.4入门-3函数
3 函数 3.1 定义函数 def fib(n): # write Fibonacci series up to n """Print a Fibonacci serie ...
- Linux常用命令(常用)
一,Linux常用命令二,CentOS没有盘符,只有根目录/,可以理解为只有一个盘有一个文件夹有点特殊,画了一个房子,代表当前用户的家 1.记住一个点:区分根目录和当前用户的家cd ~ 代表回家cd ...
- Windows认证 | Windows本地认证
Windows的登陆密码是储存在系统本地的SAM文件中的,在登陆Windows的时候,系统会将用户输入的密码与SAM文件中的密码进行对比,如果相同,则认证成功. SAM文件是位于%SystemRoot ...
- Java查询判断素数实验报告
实验源代码: package sushu; import java.util.Scanner; public class First { int size=2; int data[]=new int[ ...