问题标签 [heredoc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
17 回答
83438 浏览

php - 在 HEREDOC 字符串中调用 PHP 函数

在 PHP 中,HEREDOC 字符串声明对于输出 html 块非常有用。您可以通过在变量前加上 $ 来解析变量,但对于更复杂的语法(如 $var[2][3]),您必须将表达式放在 {} 大括号内。

在 PHP 5 中,实际上可以在 HEREDOC 字符串内的 {} 大括号内进行函数调用,但您必须做一些工作。函数名本身必须存储在一个变量中,并且您必须像调用它是动态命名的函数一样调用它。例如:

如您所见,这比仅仅更混乱一点:

除了第一个代码示例之外,还有其他方法,例如突破 HEREDOC 来调用函数,或者扭转问题并执行以下操作:

后者的缺点是输出直接放入输出流(除非我使用输出缓冲),这可能不是我想要的。

所以,我的问题的本质是:有没有更优雅的方法来解决这个问题?

根据回复进行编辑:看起来某种模板引擎确实会让我的生活更轻松,但它需要我基本上颠倒我通常的 PHP 风格。并不是说那是一件坏事,但它解释了我的惰性。不过,我正在想办法让生活更轻松,所以我现在正在研究模板。

0 投票
3 回答
484 浏览

ruby - 无法将 Ruby 块分类到文件

请帮忙,我被困在这里---

0 投票
4 回答
192 浏览

php - 我怎么写<<

我忘记了如何编写一个看起来像这样的命令

<<TOC


bla bla

bal bal


TOC;

又是怎么写的?


我忘记了如何编写一个看起来像这样的命令

又是怎么写的?


老实说,我会使用Superfish插件而不是重新发明轮子。将其与hoverIntent结合使用,它应该能够完成您需要的一切。

0 投票
2 回答
642 浏览

java - 如何在 Ant 脚本中内联几行 java 行?

如何将几行 Java 代码行内联(此处为文档)到 Ant 脚本中?请举个例子?

0 投票
3 回答
10173 浏览

java - 在 Java 源代码中处理大文本片段

有没有什么好的方法可以在 Java 源代码中处理文本块(字符串)?许多其他语言都有可用的heredoc语法,但Java没有。这使得使用诸如输出大量静态标记的标记库和需要断言与 XML 块进行比较的单元测试之类的东西非常不方便。

其他人如何解决这个问题?甚至可能吗?还是我只能忍受?

0 投票
43 回答
1989046 浏览

javascript - 在 JavaScript 中创建多行字符串

我在 Ruby 中有以下代码。我想将此代码转换为 JavaScript。JS中的等效代码是什么?

0 投票
3 回答
946 浏览

shell - shell脚本中的行错误

我在 shell 脚本中有以下代码。这似乎仅在在函数中定义时才有效。有问题的行是包含“<<”的行。错误信息是

“./run:第 210 行:语法错误:文件意外结束”

如何在函数中正确编写它?

0 投票
3 回答
8096 浏览

javascript - 在 Javascript 中使用长字符串文字的最佳方法是什么?

可能重复:
Javascript 中的多行字符串

在 Ruby 中,您可以执行以下操作:

这样,您的代码中就有很长的字符串文字,而不必转义很多字符。JavaScript中有类似的东西吗?

目前我有这样的 JavaScript 代码,它让我发疯......

0 投票
19 回答
22779 浏览

templates - Windows批处理的heredoc?

有没有办法以类似于 unix shell 中的 heredoc 的方式批量指定多行字符串。类似于:

这个想法是从模板文件创建一个自定义文件..

0 投票
5 回答
7287 浏览

php - PHP 表达式 <<

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

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

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

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


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

然而,本质上:

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

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

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