php中有哪些字符串定界符

php字符串定界符有两种:1、heredoc定界符,在“<<<”运算符之后要提供一个标识符,然后换行,接下来是字符串本身,最后要用前面定义的标识符作为结束标志。2、nowdoc定界符,在“<<<”运算符之后要提供一个被单引号括起来的标识符,然后换行,接下来是字符串本身,最后要用前面定义的标识符作为结束标志。

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

PHP定界符

PHP定界符是从PHP4.0版本开始支持的。

定界符用于定义一段格式化的文本,格式化是指文本中的格式将被保留,所以文本中不需要使用定义符。在使用时后接一个标识符,然后是格式化的文本(即字符串),最后使用同样的标识符结束字符串,这段格式化的文本也可以称为长字符串。

为什么使用定界符

因为PHP是一个Web编程语言,在编程过程中难免会遇到使用echo来输出大段的HTML代码或者JavaScript脚本的情况。如果用传统字符串输出的话,肯定要使用大量的转义字符来对字符串中的特殊字符进行转义,比如单引号‘’、双引号“”等等,难免会出现语法错误。

而PHP中定界符能够定义一段较长的字符串,并且可以按照原样输出在其内部的东西,包括换行、缩进等格式,在定界符中任何特殊字符都不需要转义,而且定界符中的变量也能被解析。这也是为什么 PHP 要引入定界符的原因之一。

php中字符串定界符有几种

PHP中有两种定界符:heredoc(双引号定界符)和nowdoc(单引号定界符)

1、“Heredoc”定义方式

heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志。

结束标识符可以使用空格或制表符(tab)缩进,此时文档字符串会删除所有缩进。 在 PHP 7.3.0 之前的版本中,结束时所引用的标识符必须在该行的名列前茅列。

而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。

<?php$str = <<<EOF  url:  https://www.yisu.com/EOF;echo $str;?>

php中有哪些字符串定界符

PHP 7.3.0 之后的基础 Heredoc 示例

<?php// 无缩进echo <<<END      a     b    cnEND;// 4 空格缩进echo <<<END      a     b    c    END;

php中有哪些字符串定界符

如果结束标识符的缩进超过内容的任何一行的缩进,则将抛出 ParseError 异常:

示例:结束标识符的缩进不能超过正文的任何一行

<?phpecho <<<END  a bc   END;

以上例程在 PHP 7.3 中的输出:

PHP Parse error:  Invalid body indentation level (expecting an indentation level of at least 3) in example.php on line 4

制表符也可以缩进结束标识符,但是,关于缩进结束标识符和内容, 制表符和空格不能混合使用。在以上任何情况下, 将会抛出 ParseError 异常。 之所以包含这些空白限制,是因为混合制表符和空格来缩进不利于易读性。

示例:内容(空白)和结束标识符的不同缩进

<?php// 以下所有代码都不起作用。// 正文(空格)和结束标记(制表符),不同的缩进{    echo <<<END     a        END;}// 在正文中混合空格和制表符{    echo <<<END        a     END;}// 在结束标记中混合空格和制表符{    echo <<<END          a         END;}

以上例程在 PHP 7.3 中的输出:

PHP Parse error:  Invalid indentation - tabs and spaces cannot be mixed in example.php line 8

内容字符串的结束标识符后面不需要跟分号或者换行符。 例如,从 PHP 7.3.0 开始允许以下代码:

示例:在结束标识符后继续表达式

<?php$values = [<<<ENDa  b    cEND, 'd e f'];var_dump($values);

以上例程在 PHP 7.3 中的输出:

array(2) {  [0] =>  string(11) "a  b    c"  [1] =>  string(5) "d e f"}

2、“Nowdoc”定义方式

就象 heredoc 结构类似于双引号字符串,Nowdoc 结构是类似于单引号字符串的。Nowdoc 结构很象 heredoc 结构,但是 nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义,与 SGML 的<![CDATA[ ]]> 结构是用来声明大段的不用解析的文本类似,nowdoc 结构也有相同的特征。

一个 nowdoc 结构也用和 heredocs 结构一样的标记 <<<, 但是跟在后面的标识符要用单引号括起来,即 <<<'EOT'。Heredoc 结构的所有规则也同样适用于 nowdoc 结构,尤其是结束标识符的规则。

示例:

<?phpecho <<<'EOD'Example of string spanning multiple linesusing nowdoc syntax. Backslashes are always treated literally,e.g. \ and '.EOD;

php中有哪些字符串定界符

<?php/* 含有变量的更复杂的示例 */class foo{    public $foo;    public $bar;    function __construct()    {        $this->foo = 'Foo';        $this->bar = array('Bar1', 'Bar2', 'Bar3');    }}$foo = new foo();$name = 'MyName';echo <<<'EOT'My name is "$name". I am printing some $foo->foo.Now, I am printing some {$foo->bar[1]}.This should not print a capital 'A': x41EOT;?>

php中有哪些字符串定界符

注意:

Nowdoc 结构是在 PHP 5.3.0 中加入的。

“php中有哪些字符串定界符”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

文章标题:php中有哪些字符串定界符,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/30000

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年9月26日 上午2:02
下一篇 2022年9月26日 上午2:04

相关推荐

  • 电脑键盘锁住了如何解决

    键盘锁住了的解决方法 1、如果着急打字的话,按“ctrl”加“win”键加“o”键,调出软键盘打字。 2、右键点击此电脑的“管理”,点击进入“系统工具”。 3、点击“设备管理器”,点击“键盘”。 4、右键点击“更新驱动程序”即可。 读到这里,这篇“电脑键盘锁住了如何解决”文章已经介绍完毕,想要掌握这…

    2022年9月6日
    13200
  • mathtype下载和安装的方法是什么

    mathtype下载和安装步骤介绍 1、首先我们点击上方的下载链接进入软件页面,然后点击“立即下载” 2、下载完成之后运行下载好的安装文件。 3、选择试用30天,如果已经购买可以选择输入序列号,然后点击“下一步” 4、点浏览设置安装位置,然后点击“确定” 5、然后等待软件安装完成。 6、接着打开wo…

    2022年9月15日
    46000
  • windows 0xc0000221如何解决

    解决方法: 方法一: 1、首先我们将系统光盘插入到电脑中,在bios设置中选择光盘启动。 2、然后跟着提示,连续选择“下一步” 3、进入安装界面后,点击其中的“修复计算机”就可以引导修复了。 方法二: 1、没有光盘也没有关系,只要准备一块系统u盘就可以了。 2、我们还需要另一台使用相同系统的电脑,将…

    2022年9月16日
    23800
  • windows驱动精灵drivergenius删不了如何解决

    解决方法: 1、右击桌面任务栏,点击“任务管理器”。 2、右击“drivergenius”,选择“结束任务”。 3、右击此电脑,选择“管理”。 4、点击“服务和应用程序”的下拉,选择“服务”。 5、在右侧文件中找到“Drivergenius core service”双击打开。 6、将“启动类型”改…

    2022年9月10日
    23100
  • vue-router中children怎么使用

    关于children的使用 children的使用场景 比如页面左侧显示菜单,右侧显示不同菜单下的内容,类似如下element网站,那么右侧部分的内容就是当前页面的children 存在如下场景,点击导航一跳转至页面1,导航二跳转页面2,且页面1中存在子页面 路由js如下: const routes…

    2022年8月30日
    22800
  • Vuex怎么获取getter对象中的值

    Vuex获取getter对象中的值 getter取值与state取值具有相似性 1.直接从根实例获取 // main.js中,把store注册在根实例下,可使用this.$stroe.getters直接取值computed: { testNum1() { return this.$store.get…

    2022年8月31日
    46200
  • vlookup函数匹配不出来的原因是什么

    vlookup函数匹配不出来的原因 一、单元格空白 1、首先任选一个单元格,输入“=E2=A9”,回车查看结果。 2、如果和图示一样,显示“FALSE”,说明原本应该一致的“E2”和“A9”并不一致。 3、接着我们在对应一列中使用“LEN”函数,可以看到数值不一样,一个3一个5。 4、这时候,我们只…

    2022年9月24日
    1.1K00
  • MySQL中一条SQL是怎么执行的

    大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server层 主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数 (如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。…

    2022年9月18日
    22000
  • 笔记本电脑键盘打不出字怎么解决

    笔记本键盘打不出字多种解决方法 名列前茅种方法 1、先按住【Fn键】(Fn键一般在键盘的左下角),再按【Num Lk】(Num Lk一般在右上角,F11键的上面,当然不同的笔记本所在位置有所不同),我们可以按这二个组合键进行字母变数字,这也是最常用的方法。 2、点击【开始】菜单,然后选择【程序】,然…

    2022年9月6日
    2.4K00
  • Git远程仓库配置SSH怎么实现

    1. 设置本地git账户邮箱和用户名 输入命令git config –global user.name “Git账号”以及git config –global user.email “Git邮箱”。 输入命令git config –global –list,查看配置是否正确。 2. 生成新的…

    2022年9月20日
    18200
联系我们
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部