Heredoc和Nowdoc

就象heredoc结构类似于双引号字符串,Nowdoc结构是类似于单引号字符串的。Nowdoc结构很象heredoc结构,但是 nowdoc不进行解析操作 。 这种结构很适合用在不需要进行转义的PHP代码和其它大段文本。与SGML的 <![CDATA[ ]]> 结构是用来声明大段的不用解析的文本类似,nowdoc结构也有相同的特征。

一个nowdoc结构也用和heredocs结构一样的标记 <<<, 但是跟在后面的标志符要用单引号括起来,就像<<<‘EOT‘这样。heredocs结构的所有规则也同样适用于nowdoc结构,尤其是结束标志符的规则。

Example #2 Heredoc结构的字符串示例

<?php
$str = <<<EOD
Example of string //注释也会被输出
spanning multiple lines
using heredoc syntax.
EOD;

class foo
{
    var $foo;
    var $bar;

function foo()
    {
        $this->foo = ‘Foo‘;
        $this->bar = array(‘Bar1‘, ‘Bar2‘, ‘Bar3‘);
    }
}

$foo = new foo();
$name = ‘MyName‘;

echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital ‘A‘: \x41
EOT;
?>

以上例程会输出:

My name is "MyName". I am printing some Foo.
Now, I am printing some Bar2.
This should print a capital ‘A‘: A

Example #6 Nowdoc结构字符串示例

<?php
$str = <<<‘EOD‘
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;

class foo
{
    public $foo;
    public $bar;

function foo()
    {
        $this->foo = ‘Foo‘;
        $this->bar = array(‘Bar1‘, ‘Bar2‘, ‘Bar3‘);
    }
}

$foo = new foo();
$name = ‘MyName‘;

echo <<<‘EOT‘
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital ‘A‘: \x41
EOT;
?>
以上例程会输出:

My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital ‘A‘: \x41

时间: 2024-08-24 20:32:01

Heredoc和Nowdoc的相关文章

PHP中的heredoc和nowdoc

为了在PHP中插入字符串看起来更直观,结构更清晰,引入了使用heredoc或nowdoc,二者用于插入大量类似HTML或XML文件,heredoc如下: <?php $str = <<<THE_XML <animals> <type>dog</type> <name>snoopy</name> </animals> THE_XML; echo $str; ?> 请注意:作为结束的THE_XML;和开始&l

heredoc 和 nowdoc

heredoc 和 nowdoc     多次使用 php nowdoc HereDoc 插入大量Hmtl都没有成功,一样提示语法有问题,事实上PHP手册注明是这样写的,实在很奇怪 最后发现了问题所在,原来这类文档在结束时,一定要靠近行的第一位,就是说EOF前面不能有空格,而为了代码缩进,正好产生了这样的问题. 复制代码 代码如下: $str = <<<'EOD'Example of stringspanning multiple linesusing nowdoc syntax.EOD

php中heredoc与nowdoc的使用方法

一.heredoc结构及用法 Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义.其结构中的变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心.其对格式化输出内容时,比较有用 .具体其有以下特点: 1.开始标记和结束标记使用相同的字符串,通常以大写字母来写. 2.开始标记后不能出现空格或多余的字符. 3.结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 . 4.位于开始标记和结束标记之间的变量可以被正常解析,

php heredoc 与 nowdoc

php heredoc 与 nowdoc heredoc 结构 heredoc 句法结构:<<<.在该运算符之后要提供一个标识符,然后换行.接下来是字符串本身,最后要用前面定义的标识符作为结束标志. <?php $content = <<<FDIPZONE <html> <head> <title>test</title> </head> <body> <p><img src

php中heredoc与nowdoc的使用方法、定界符&lt;&lt;&lt;的使用方法

一.heredoc结构及用法 Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义.其结构中的变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心.其对格式化输出内容时,比较有用 .具体其有以下特点: 1.开始标记和结束标记使用相同的字符串,通常以大写字母来写. 2.开始标记后不能出现空格或多余的字符. 3.结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 . 4.位于开始标记和结束标记之间的变量可以被正常解析,

heredoc和nowdoc的区别

heredoc使用 <<< EOT 的标示符,而nowdoc使用 <<< 'EOT' 这样的标示符,其中nowdoc是PHP5.3引进的新技术,它包含了heredoc的语法,只是其中的内容绝对不会进行任何的转义和解释,是什么内容就 是什么内容,不会解析PHP相关的内容heredoc中的PHP变量建议使用{$name->change()} 大括号括起来,这样可以避免一定的歧义,如果要原样输出可以使用传说中的转义字符 \ ,转义字符本身可以使用转义字符进行输出,即 \

php中的heredoc和nowdoc对比

两者的不同就相当于php双引号和单引号的不同,双引号会解析里边的变量,而单引号不会 heredoc语法 <?php $a = 'cqh'; $str = <<<HTML hello,$a HTML; echo $str; 或 <?php $a = 'cqh'; $str = <<<"HTML" hello,$a HTML; echo $str; 输出 hello,cqh 即heredoc语法是<<<后的标识符不加引号/加

什么是PHP中的heredoc和nowdoc

heredoc结构类似于双引号字符串,nowdoc结构是类似于单引号字符串的.nowdoc结构很像heredoc结构,但是 nowdoc不进行解析操作. 这种结构很适合用在不需要进行转义的PHP代码和其它大段文本.与SGML的 <![CDATA[ ]]> 结构是用来声明大段的不用解析的文本类似,nowdoc结构也有相同的特征.一个nowdoc结构也用和heredocs结构一样的标记 <<<, 但是跟在后面的标志符要用单引号括起来,就像<<<'EOT'这样.h

PHP中字符串的heredoc结构和nowdoc结构

最近在维护一个古老的PHP网站,没有前后台的分离,代码看起来很吃力,上面大段大段的HTML输出.在看的时候发现很多地方用了「<<<」这样的符号来标记字符串,好像之前学习PHP的时候,只讲了单双引号两种表示字符串的方式.今天偶然在书上看到了,这种「<<<」表示字符串的方式是heredoc和nowdoc结构. echo <<<EOT <html> <head><title>主页</title></hea