php常量和EOT

时间:2010-10-27 13:30:49

标签: php html printing echo

是否可以显示常量php的EOT?例如:


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

3 个答案:

答案 0 :(得分:3)

不。就像你不能在字符串中显示常量一样。只有两种实际方法可以访问常量值:

直接在代码中:

$foo = Hey;

或使用constant功能:

$foo = constant('Hey');

答案 1 :(得分:1)

不,heredoc语法(&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;它会扩展变量,但不会扩展常量。

您可以在PHP文档中看到指示此here的注释。评论中还有一份编辑说明,这是正确的。

答案 2 :(得分:0)

我找到了能够显示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>