这个符号是什么“<<

时间:2015-01-05 06:16:15

标签: php html html5

在阅读另一位程序员的代码时,我遇到了<<<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>");
}

3 个答案:

答案 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;

Also prefer