正文
单引号、双引号与定界符——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