PHP中的定界符 EOT

定界符
另一种给字符串定界的方法使用定界符语法(“<<<”)。应该在 <<< 之后提供一个标识符,然后是字符串,然后是同样的标识符结束字符串。 

结束标识符必须从行的第一列开始。同样,标识符也必须遵循 PHP 中其它任何标签的命名规则:只能包含字母数字下划线,而且必须以下划线或非数字字符开始。 

警告 
很重要的一点必须指出, 结束标识符所在的行不能包含任何其它字符,可能除了一个分号(;)之外。这尤其意味着该标识符不能被缩进,而且在分号之前和之后都不能有任何空格或制表符。同样重要的是要意识到在结束标识符之前的第一个字符必须是你的操作系统中定义的换行符。例如在 Macintosh 系统中是 /r。

如果破坏了这条规则使得结束标识符不“干净”,则它不会被视为结束标识符,PHP 将继续寻找下去。如果在这种情况下找不到合适的结束标识符,将会导致一个在脚本最后一行出现的语法错误。 

不能用定界符语法初始化类成员。用其它字符串语法替代。 例子 11-3. 非法的例子

<?php
class foo {
         public $bar = <<<EOT
bar
EOT;
}
?>  




定界符文本表现的就和双引号字符串一样,只是没有双引号。这意味着在定界符文本中不需要转义引号,不过仍然可以用以上列出来的转义代码。变量会被展开,但当在定界符文本中表达复杂变量时和字符串一样同样也要注意。 例子 11-4. 定界符字符串例子

<?php
$str = <<<EOT
Example of string
spanning multiple lines
using heredoc syntax.
EOT;

/* More complex example, with variables. */
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;
?>  

注: 定界符支持是 PHP 4 中加入的。

 

如何在php中输出html代码(EOT)
<? php
echo <<< EOT
                     <table width=80% border="2" cellpadding="3" cellspacing="0" bordercolor="#808080">
                    <tr bgcolor="#84A9E1">
                    <td align="center">ClassID</td>
                    <td align="center">stuno</td>
                    <td      align="center">学生姓名</td>
                    <td align="center">家长姓名</td>
                    <td align="center">家长手机号</td>
                    </tr>
EOT;
?>

 

总结

 定界符“<<<”的后面紧接着的是定界标识符。标识符由字母、数字或下划线构成,并且不能以数字开始。结尾的标识符必须定格书写,其前不能有任何其他字符。通常的错误是将结尾的定界标识符进行缩进。定界符中的变量可以被解析,可以使用转义字符,但不必转义引号。当需要定义或输出大量的文本时,使用定界符显得尤为方便。
官方参考手册相关内容:http://www.php.net/manual/zh/language.types.string.php

刚开始看书上的 EOT ,EOD 以为有什么区别,结果我试了下,随便写。前后对应,符合标识符的命名规则就行。eg.
<<<abc
    .......
abc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值