传说中的"<<<"名叫"heredoc"符号。这个heredoc符号在其他语言中也存在,这个我就不去考察了。我这里举个简单的例子:
<?php
$title="this is title";
$text="this is text";
echo<<< EOT
$title
<hr>
$text,you can use "quote" without ""
EOT;
?>
其中"EOT"表示"End of Template",与PHP或者C语言中的"EOF"符号命名方法类似,因为EOF表示"End of File"。你可以选择其他符号代替EOT,其效果是一样的,它只起一个标志作用,其间的任何变量若与本页上面的变量一样,则直接替换成变量的内容--这 是一个很有用的特性。
为了便于叙述,我和大家约定:从echo<<< EOT开始到"EOT;"结束这一段文本,称为"heredoc".
heredoc只起输出显示作用,属于MVC中的view层。这让我想起一个忽悠人的词语,叫做"显示逻辑"。
什么叫"显示逻辑"?英文翻译为"view logic"。其实很容易理解,就是"见人说人话,见鬼说鬼话".
例如:
<?php
$title="this is title";
$text="this is text";
$who="girl";
if($who=="PHPer"){
echo<<< EOT
$title
<hr>
$text,you can use "quote" without ""
EOT;
}
else if($who=="girl";){
echo<<< EOT
Hi,$who,I love you~~
EOT;
}
?>
从If开始到结束为止的代码,都属于"view logic",也就是“显示逻辑”.简单的说就是处理显示,也就是“输出”,也就是使用“echo”。既然如此,为什么要在“显示”后面跟个“逻辑”呢?因为我们要
"见人说人话,见鬼说鬼话"!如果"见鬼说人话,见人说鬼话",那么你在鬼面前就‘显示’为人,在人面前就‘显示’为鬼了。
若你是个彻头彻尾的唯物论者,你坚定这个世界上根本没有鬼,换言之你的“view logic”也就很简单,这样的话直接使用heredoc就可以了,不必在heredoc之前用if,else,for,foreach等等'逻辑型控制符号'.
为了便于叙述,我把只使用heredoc而不使用任何‘逻辑型控制符号’的代码,叫'simple view'.相反,若在你的heredoc之前使用了任意一种‘逻辑型控制符号’,则表示你使用了'complex view'.