PHP表达式<<< EOB

rog*_*pvl 17 html php heredoc

我已经用PHP开发了几年了,最近发现了这段代码:

<?php
    echo <<<EOB
        <html>
        <head>
            <title>My title</title>
        </head>
        ...
    EOB;
?>
Run Code Online (Sandbox Code Playgroud)

我从来没有见过这种打印HTML的方法,这似乎非常有用,并且不太容易出现一些奇怪的变量或双引号语法错误.

我已经搜索了一些关于此的官方信息,并且只找到了Rasmus谈论此事的帖子.

有关此功能的详细说明是什么,EOB是什么意思?可能结束了

Pao*_*ino 29

这称为heredoc语法.文档将告诉您需要知道的一切.

但基本上:

分隔字符串的第三种方法是heredoc语法:<<<.在此运算符之后,提供标识符,然后提供换行符.字符串本身跟随,然后再次使用相同的标识符来关闭引号.

结束标识符必须从该行的第一列开始.此外,标识符必须遵循与PHP中任何其他标签相同的命名规则:它必须仅包含字母数字字符和下划线,并且必须以非数字字符或下划线开头.

因此EOB,作者选择作为他的分隔符,并不确定它在他的情况下代表什么,但标识符可以是你想要的任何东西.

  • 我猜"块结束":). (6认同)

waz*_*oox 6

仅仅为了完整起见,PHP中的Heredoc继承自Perl,后者本身从Bourne shell继承它.