константы php и EOT - PullRequest
       20

константы php и EOT

3 голосов
/ 27 октября 2010

возможно ли отобразить EOT константы php?например:


<?
  define('Hey', "HellO");
  echo
<<<EOT
Hey
EOT;
?>

Ответы [ 3 ]

3 голосов
/ 27 октября 2010

Неа. Также как вы не можете отобразить константу внутри строки. Есть только два реальных способа получить доступ к значению константы:

Прямо в коде:

$foo = Hey;

Или с помощью функции constant:

$foo = constant('Hey');
1 голос
/ 27 октября 2010

Нет, синтаксис heredoc (<<<) действует как строка в двойных кавычках в PHP.Это расширит переменные, но не константы. </p>

Вы можете увидеть комментарий в документации PHP, указывающий это здесь .В комментарии также есть примечание редактора о том, что это правильно.

0 голосов
/ 13 ноября 2010

Я нашел решение, позволяющее отображать константы HTML / PHP и даже PHP, а затем сохранять расширенную строку в переменной:

my_file.php



Welcome back <?=$User -> get_display_name(); ?>!



index.php


<?

  define('HEY', "Welcome to my website!");

  ob_start(); ?>
  <div id=welcomeBox>
  <? if($User -> is_real()): ?>
  <? require_once("my_file.php"); ?>
  <? else: ?>
  <?=HEY; ?> Click <a href=JavaScript:SignUp()>here</a> to sign up!
  <? endif; ?>
  </div>
  <?
  $page_body = ob_get_contents();
  ob_end_clean(); ?>
  <div>
    Aye
  </div>
<?=$page_body;?>



Если пользователь реален, результат будет примерно таким:


  <div>
    Aye
  </div>
  <div id=welcomeBox>
    Welcome back Johnny Cash!
  </div>


В противном случае он скажет:


  <div>
   Aye
  </div>
  <div id=welcomeBox>
    Welcome to my website! Click <a href=JavaScript:SignUp()>here</a> to sign up!
  </div>


...