2015-01-05 6 views
0

При чтении кода другого программиста я столкнулся с <<<H.TML символом. Мои коллеги сказали, что он используется для написания html в 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

Где вы нашли этот код? Доступен ли он в хранилище с открытым исходным кодом, чью ссылку вы можете поделиться? – callmekatootie

ответ

2

Что вы ищете at называется heredoc.

Используется для объявления длинного строкового литерала, когда вы не хотите использовать кавычки. Из PHP документации:

$str = <<<EOD 
Example of string 
spanning multiple lines 
using heredoc syntax. 
EOD; 

В вашем случае, они используют HTML для этого символа вместо EOD. Фактически это вообще не имеет никакого отношения к HTML, но вы могли бы назначить большой блок HTML переменной, если хотите, точно так же, как и любое другое строковое литераловое значение.

+0

В принципе, это как теги xml. мы можем назвать их так, как нам нравится, верно? –

+0

@NuttyProgrammer Из документации: «Идентификатор должен следовать тем же правилам именования, что и любой другой ярлык в PHP: он должен содержать только буквенно-цифровые символы и символы подчеркивания и должен начинаться с символа без знака или подчеркивания». – Brad

+0

Получил. Большое спасибо. –

2

Да, он использует в синтаксисе PHP, когда вы хотите использовать большое содержание в качестве строки в переменной PHP, то вы можете использовать heredoc syntax синтаксис

Пример:

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

Это heredoc.it позволяет людям легко писать большие объемы текста из PHP, но без необходимости постоянно избегать вещей. Heredoc - отличная альтернатива цитируемым строкам из-за повышенной удобочитаемости и ремонтопригодности. Вам не нужно избегать цитат, и (хорошие) редакторы IDE или текстовые редакторы будут использовать правильную подсветку синтаксиса.

ОЧЕНЬ распространенный пример: вторя из HTML внутри PHP:

$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

+1

Большое спасибо. Я также чувствую, что это действительно повышает читаемость кода. –

+0

@ Nutty Programmer: пожалуйста, повысьте, если это вам полезно – Priyank

+0

Извините, моя репутация слишком низкая, чтобы ответить на ответ. –

Смежные вопросы