17

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

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

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

我搜索了一些关于这个的官方信息,只找到了一篇关于 Rasmus 的帖子。

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


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

然而,本质上:

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

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

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

4

5 回答 5

30

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

然而,本质上:

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

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

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

于 2009-06-26T10:54:07.770 回答
6

为了完整起见,PHP 中的 Heredoc 继承自Perl,Perl 本身继承自Bourne shell

于 2009-06-26T11:00:32.343 回答
3

它被称为heredoc,并在手册中进行了描述。

于 2009-06-26T10:55:38.423 回答
2

我相信官方术语是“here document”,通常缩写为“heredoc”。

于 2009-08-21T12:51:08.703 回答
0

这称为heredoc语法。它使您可以将大块文本视为字符串。它也允许换行。变量可以插入到文本块中,就像对字符串使用双引号一样。

更有用的解释可以在 PHP 自己的网站上找到:http: //php.net/manual/en/language.types.string.php

于 2016-01-27T21:31:58.510 回答