PHP 表达式 <<
发布于 2024-07-25 11:23:00 字数 396 浏览 3 评论 0 原文

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

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

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

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

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

I've been developing with PHP for some years now, and recently came across this code:

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

I've never seen this approach to print HTML, which seems to be pretty useful and less prone to some weird variable or double quote syntax error.

I've searched for some official information about this and only found a post of Rasmus talking about this.

What is a detailed explanation about this functionality and what does EOB mean? Maybe end of block?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

南烟 2024-08-01 11:23:00

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

然而,本质上:

分隔字符串的第三种方法是定界语法:<<<。 在该运算符之后,提供一个标识符,然后提供一个换行符。 接下来是字符串本身,然后再次使用相同的标识符来结束引用。

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

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

This is known as heredoc syntax. The documentation will tell you everything you need to know.

Essentially, however:

A third way to delimit strings is the heredoc syntax: <<<. After this operator, an identifier is provided, then a newline. The string itself follows, and then the same identifier again to close the quotation.

The closing identifier must begin in the first column of the line. Also, the identifier must follow the same naming rules as any other label in PHP: it must contain only alphanumeric characters and underscores, and must start with a non-digit character or underscore.

So EOB is just what the author chose as his delimiter, not really sure what it stands for in his case but the identifier can be whatever you want.

木有鱼丸 2024-08-01 11:23:00

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

Just for the sake of completeness, Heredoc in PHP is inherited from Perl, which itself inherited it from the Bourne shell.

只是一片海 2024-08-01 11:23:00

它称为heredoc,并在

It´s called heredoc and is described in the manual.

绝影如岚 2024-08-01 11:23:00

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

The official term is 'here document' I believe, usually shortened to 'heredoc'.

尘世孤行 2024-08-01 11:23:00

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

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

This is called heredoc syntax. It lets you treat large blocks of text like a string. It allows for newlines as well. Variables can be inserted into the block of text, just like using the double quotation marks for strings.

A more useful explanation can be found on PHP's own website: http://php.net/manual/en/language.types.string.php

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文