PHP 表达式 <<<EOB

2022-08-30 22:58:21

我已经用PHP开发了几年了,最近遇到了这个代码:

<?php
    echo <<<EOB
        <html>
        <head>
            <title>My title</title>
        </head>
        ...
    EOB;
?>

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

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

关于此功能的详细说明是什么,EOB是什么意思?也许是块的结束


答案 1

这称为遗传语法。该文档将告诉您需要了解的所有内容。

然而,从本质上讲:

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

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

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


答案 2

只是为了完整性,PHP中的Heredoc是从Perl继承的,Perl本身也从Bourne shell继承了它。


推荐