在阅读另一位程序员的代码时,我遇到了<<<H.TML
符号。我的同事说它用于在php文件中编写html。
我试图找到有关其用法的更多细节,但我找不到多少。请有人向我解释它是如何工作的,它叫什么?
public function SetContent($page = '') {
$this->_header->SetPageNavigation($page) ;
$budgetHTML = '';
$signup1 = '';
$GetHeader = $this->_header->GetHeader() ;
$GetFooter = $this->_footer->GetFooter() ;
$DocType = <<<HTML
<!DOCTYPE html>
<!--[if IE 8]> <html class="no-js ie8 ie" lang="en"> <![endif]-->
<!--[if IE 9]> <html class="no-js ie9 ie" lang="en"> <![endif]-->
<!--[if gt IE 9]><![endif]-->
HTML;
$this->_html = sprintf("{$DocType}<html>");
$this->_html .= sprintf("%s", $this->_head->GetHTML());
$bg=$this->_common->getBgImage();
$bg=json_decode($bg);
if(!empty($bg->BGImage)&&(file_exists($GLOBALS['DocumentRoot'].'/bgImages/'.$bg->BGImage)))
{
$backgroundImage='background: url('.$GLOBALS['DOCUMENT_ROOT'].'/bgImages/'.$bg->BGImage.') no-repeat fixed top center;background-size: cover !important;';
}
else
{
$backgroundImage='';
}
$this->_html .= sprintf( '<body style="'.$backgroundImage.'" >
<noscript>
<h1 style="color:red; text-align:center; padding-top:100px;">This page needs JavaScript activated to work</h1>
<style>div { display:none; }</style>
</noscript>
<div class="loading"><img src="'.$GLOBALS['RootURL'].'images/main-loader.GIF" width="128" height="128" ></div>
<div id="wrapper"><div class="page-bg">%s%s%s%s<div class="clear"></div></div></div>', $GetHeader, $budgetHTML, $this->_maincontenthtml, $GetFooter);
$this->_html .= sprintf("</body>");
}
答案 0 :(得分:2)
是的,当您想在PHP变量中使用大内容作为字符串时,它在PHP语法中使用,那么您可以使用heredoc syntax
语法
示例:
<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
答案 1 :(得分:2)
您正在查看的内容称为heredoc。
当您不想使用引号时,它曾用于声明一个长字符串文字。从PHP文档:
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
在您的情况下,他们会使用HTML
代替EOD
。它实际上与HTML无关,但是你可以根据需要为变量分配一大块HTML,就像任何其他字符串文字值一样。
答案 2 :(得分:0)
它是一个heredoc.it允许人们轻松地从PHP中编写大量文本,但不需要经常逃避.Heredoc是一个很好的替代引用字符串,因为提高了可读性和可维护性。你不必逃避引号,(好的)IDE或文本编辑器将使用正确的语法高亮。
一个非常常见的例子:在PHP中回显HTML:
$html = <<<HTML
<div class='something'>
<ul class='mylist'>
<li>$something</li>
<li>$whatever</li>
<li>$testing123</li>
</ul>
</div>
HTML;
// sometime later
echo $html;