php定界符eof如何使用?定界符内的变量会被解析么?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
php
里面的eof
学名叫做定界符,在php
里面可以用于变量定义大段文字。主要的知识点就是写法及格式。
大家好,这里是苏南大叔的“程序如此灵动”博客。苏南大叔在本文中将要讲述的问题是:php
定界符是怎么使用的呢?本文测试环境:win10
,php@7.3
。
基本使用方式
$test = <<<EOF
文字,文字,文字
文字,
文字
EOF;
这里一个非常令人觉得不爽的地方就是:定界符的结束部分,必须顶格写,前面不能有空格。
在通篇格式化良好的代码中,忽然就出现那么一行不符合要求的顶格的定界符,是非常令人不舒服的。
"定界符的结束部分,必须顶格写,前面不能有空格" 这个垃圾定界符格式规定,在php7.3
系列中,被取消了。喜大普奔!
可能碰到的错误提示
在php
版本号<=php7.2
的代码中,可能还会碰到定界符的结束部分,引发的错误提示信息。例如:
Parse error: syntax error, unexpected end of file
但是,从php@7.3
开始,这个令苏南大叔非常不爽的设定取消了。也就是说,从php@7.3
开始,php
代码中的eof
的结束部分,可以按照心意常规编写放置了,喜大普奔。然而,您可能会碰到下面的错误提示:
Parse error: Invalid body indentation level (expecting an indentation level of at least 1) i
意思就是:
定界符内的主体内容的缩进有问题,不能比下面这个截至符号靠前。也就是说,全选定界符内的内容,然后tab
增加一下左侧缩进即可解决问题。
经验表明:从php@7.3
开始,截至符号可以前面有空格了,但是,主体内容也要跟着缩进才行,否则报错。
eof
字样并不是定界符唯一选择
上述代码中,eof
可以用其它任意普通英文字母或数字组合来代替(其它符号不行),大小写均可。
比如:
$test = <<<abc
文字,文字,文字
文字,
文字
abc;
或者
$test = <<<mydiy
文字,文字,文字
文字,
文字
mydiy;
变量可以解析 引号转义符原样输出
如果定界符内存在有变量,那么是会被解析的。例如:
$name = "sunan";
$test = <<<abc
hello $name
hi'' "hello"
<<<abc
\abc;
abc;
echo $test;
如果定界符内的内容存在有定界符相同的字符,那么可能会出现问题,记得换个别的定界符吧。例如:
$test = <<<abc
hi'' "hello"
<<<abc
abc;
abc;
最后的两个abc;
就是起冲突的,适当修改一下定界符即可。例如:
$test = <<<abc1
hi'' "hello"
<<<abc
abc;
abc1;
如果定界符内存在单引号或者双引号或者转义符,那么都会被原样输出。
相关文章
总结
一般来说,定界符就是用来定义一段html代码,所以以这个作为目标取考虑上述情况就基本上符合需求了。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。