PHP定界符
定界符
而 PHP 中的定界符能够定义一段较长的字符串,并且可以按照原样输出在其内部的东西,包括换行、缩进等格式,在定界符中的任何特殊字符都不需要转义,而且定界符中的变量也能被解析。这也是为什么 PHP 要引入定界符的原因之一。
另外,结束标识符后面的分号不能省略,同时结束标识符必须另起一行顶头写。还有就是标识符的命名必须遵循 PHP 中其他标签的命名规则:只能包含字母、数字、下划线,而且必须以下划线或非数字字符开始。
需要注意的是,使用定界符定义的字符串中虽然能解析变量,但是不能进行运算。
【示例】使用定界符输出变量中的值。
在上面的代码中,值得注意的是,在定界符内不允许添加注释,否则程序将运行出错。而且结束标识符所在的行不能包含任何其他字符,而且不能被缩进,在结束标识符分号前后不能有任何空白字符或制表符,否则将会出现语法错误。
最后总结一下使用定界符
<<<
是从 PHP4.0 开始支持的,用于定义一段格式化的文本,格式化是指文本中的格式将被保留,所以文本中不需要使用转义字符。在使用时后接一个标识符,然后是格式化的文本(即字符串),最后使用同样的标识符结束字符串,这段格式化的文本也可以称为长字符串。为什么使用定界符
因为 PHP 是一个 Web 编程语言,在编程过程中难免会遇到使用 echo 来输出大段的 HTML 代码或者 Javascript 脚本的情况。如果用传统字符串输出的话,肯定要使用大量的转义字符来对字符串中的特殊字符进行转义,比如单引号''
、双引号""
等等,难免会出现语法错误。而 PHP 中的定界符能够定义一段较长的字符串,并且可以按照原样输出在其内部的东西,包括换行、缩进等格式,在定界符中的任何特殊字符都不需要转义,而且定界符中的变量也能被解析。这也是为什么 PHP 要引入定界符的原因之一。
定界符的使用
定界符的语法格式如下:
<<<str
一段文本
str;
<<<
是关键字,必须使用;str 为我们自定义的标识符,用来当作文本的起始标识符和结束标识符,前后的标识符名称必须完全相同。另外,结束标识符后面的分号不能省略,同时结束标识符必须另起一行顶头写。还有就是标识符的命名必须遵循 PHP 中其他标签的命名规则:只能包含字母、数字、下划线,而且必须以下划线或非数字字符开始。
需要注意的是,使用定界符定义的字符串中虽然能解析变量,但是不能进行运算。
【示例】使用定界符输出变量中的值。
<?php $website = '新宝库'; $url = 'https://www.xinbaoku.com/php/'; $title = 'PHP 教程'; $str = <<<str <!DOCTYPE html> <html> <head> <title> $title </title> </head> <body> 您正在访问的是:<strong style="color:red">$website</strong><br> 网址:<a href="$url" target="_blank">$url</a> </body> </html> str; echo $str; ?>运行结果如下图所示:
在上面的代码中,值得注意的是,在定界符内不允许添加注释,否则程序将运行出错。而且结束标识符所在的行不能包含任何其他字符,而且不能被缩进,在结束标识符分号前后不能有任何空白字符或制表符,否则将会出现语法错误。
最后总结一下使用定界符
<<<
的注意事项:- 定界符标识必须前后一致;
- 可以任意定义定界符标识,比如 echo、html、div,尽量选用有意义的标识符,并遵循命名规范;
- 起始标识符后不能跟任何字符,空格也不可以,另起一行后再输入文本内容;
- 结束标识符后面要紧跟一个分号,并且前后都不能有任何字符,即结束标识要顶头写,且独占一行,其后除紧跟分号外,不能有任何字符(空格也不可以);
- 最后要注意的是,结束标识所在行不能成为脚本的最后一行,其下必须有空行或者其他代码行,否则报错。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算