8

给定以下代码:

$myString = <<<script
   .
   .
   .
 script;

感谢这个问题的原始版本的答案,我理解 <<< 是 heredoc 语法,被视为双引号而不需要转义引号。

更进一步,如何最好地利用这一点?具体来说,这是否应该减轻处理包含代码语法的混合引号字符串的压力?

IE..

attribute="name-like string" attribute="property: 'value("value")';"

想法是这可能很有用(如果按照我现在猜测的方式实现),尤其是在处理更大的复杂性和/或寻找代码注入时。同样,寻找heredoc 特别有用或可利用的任何场景。

4

3 回答 3

9

这是 Heredoc 语法:http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

它最大的优点是您不必担心转义引号,因为字符串不是引号分隔的。

于 2011-04-19T02:22:58.457 回答
2

它被称为heredoc语法:

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

在这里阅读更多

于 2011-04-19T02:24:23.583 回答
2

它充当双引号字符串,更好地使用双引号,在我看来更易于理解和维护!

于 2011-04-19T02:25:20.110 回答