php中定界符的使用

其实定界符在php中的应用还是挺好的,比如大名鼎鼎的Phpwind就是用了定界符。我在做项目的时候也用到,感觉可以利用它将代码和页面进行基本的分离。不过也得特别小心,很容易出错。下面引用某网络上的文章说明下定界符的使用及应该注意的地方。
定界符
另一种给字符串定界的方法使用定界符语法(“<<<”)。应该在 <<< 之后提供一个标识符,然后是字符串,然后是同样的标识符结束字符串。

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

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

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

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

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




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

$str = <<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 <<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
                    
                   
                   
                   
                    学生姓名
                   

                   
                   
EOT;
?>

 

总结

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

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

你可能感兴趣的:(php)

ClassIDstuno家长姓名家长手机号