本文主要是介绍php heredoc用法注意事项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
echo <<<JS
<script type="text/javascript">
alert( '删除成功' );
window.location.href = "index.php?app=homepage&act=module_list";
</script>
JS;
格式如上
1、标记不能和内容出现在同一行上
2、结束标记必须紧靠行开头
3、标记左右两边不能出现空格
因为用的不多,用时又要忘, 所以记录下来以便查阅
<?php
header("content-type:text/html;charset=utf-8");
$name = '浅水游';
print <<<EOT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Untitled Document</title>
</head>
<body>
12321;
Hello,$name!
</body>
</html>
EOT;
?>
1.以<<<End开始标记开始,以End结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可。
2.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接,如下:
<?php
$v=2;
$a= <<<EOF
"abc"$v
"123"
EOF;
echo $a; //结果连同双引号一起输出:"abc"2 "123"
3.heredoc常用在输出包含大量HTML语法d文档的时候。比如:函数outputhtml()要输出HTML的主页。可以有两种写法。很明显第二种写法比较简单和易于阅读。
<?php
function outputhtml(){
echo "<html>";
echo "<head><title>主页</title></head>";
echo "<body>主页内容</body>";
echo "</html>;
}
function outputhtml()
{
echo <<<EOT<html><head><title>主页</title></head><body>主页内容</body></html>
EOT;
}
outputhtml();
结束时所引用的标识符必须在一行的开始位置, 而且,标识符的命名也要像其它标签一样遵守PHP的规则:只能包含字母、数字和下划线,并且不能用数字和下划线作为开头。
要注意的是结束标识符这行除了 可能有一个分号(;)外,绝对不能包括其它字符。这意味着标识符不能缩进,分号的前后也不能有任何空白或tabs。更重要 的是结束标识符的前面必须是个被本地操作系统认可的新行标签,比如在UNIX和Mac OS X系统中是\n ,而结束标识符(可能有个分号)的后面也必 须跟个新行标签。
如果不遵守该规则导致结束标签不“干净”,PHP将认为它不是结束标识符而继续寻找。如果在文件结束前也没有找到一个正确的结束标识符,PHP将会在最后一行产生一个句法错误。
Heredocs结构不能用来初始化class,而从PHP 5.3以后,则该限制只能用在包含变量的情况下。
Example #1 非法的示例
<?php
class foo {public $bar = <<<EOT
bar
EOT;
}
?>
Heredoc结构就象是没有使用双引号的双引号字符串, 这就是说在heredoc结构中引号不用被替换,但是上文中列出的字符 (\n等)也可使用。 变量将被替换,但在heredoc结构中字符串表达复杂变量时,要格外小心。
Example #2 Heredoc结构的字符串示例
<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
/* 含有变量的更复杂示例 */
<?php
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也可以把Heredoc结构用在函数参数中来传输数据:
Example #3 Heredoc结构在参数中的示例
<?php
var_dump(array(<<<EOD
foobar!
EOD
));
?>
在PHP 5.3.0以后,也可以用Heredoc结构来初始化静态变量和类的属性和常量:
Example #4 使用Heredoc结构来初始化静态值
<?php
// 静态变量
function foo()
{static $bar = <<<LABEL
Nothing in here...
LABEL;
}
// 类的常量、属性
<?php
class foo
{const BAR = <<<FOOBAR
Constant example
FOOBAR;public $baz = <<<FOOBAR
Property example
FOOBAR;
}
?>
在PHP 5.3.0中还在Heredoc结构中用双引号来声明标志符:
Example #5 在heredoc结构中使用双引号
<?php
echo <<<"FOOBAR"
Hello World!
FOOBAR;
?>
1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
2.在PHP定界符中的任何特殊字符都不需要转义;
3.PHP定界符中的PHP变量会被正常的用其值来替换。
这篇关于php heredoc用法注意事项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!