【问题标题】:PHP error when attempting to print variables within an echo using heredoc尝试使用heredoc在回声中打印变量时出现PHP错误
【发布时间】:2011-06-25 02:49:29
【问题描述】:

当我尝试这样做时:

var $example = "Example";
echo <<<EOT
<p>$example</p>
EOT;

我收到此错误:

解析错误:语法错误,意外 T_VAR in .....在线...

这是怎么回事??据我所知,这应该可行。

我使用的是 PHP 5.3.5。

【问题讨论】:

  • 问题不在于heredoc。这是var
  • O_o "var"... 这让我想起了旧事。你为什么使用这个关键字?为什么不直接删除它?
  • var?就像在 Pascal 或 JavaScript 中......不是在 PHP 中

标签: php variables echo php-5.3 heredoc


【解决方案1】:

【讨论】:

    【解决方案2】:

    PHP 中没有关键字var。无论如何,在 PHP5 中都没有 - 它只是由于向后兼容性而被接受,并用于定义类变量。

    【讨论】:

      【解决方案3】:

      第一行的var 关键字仅用于在类中声明变量。把它放在一边。

      【讨论】:

      • 即使在那里,它也只是 PHP 4 的遗留物。
      【解决方案4】:

      哦。删除 'var' 关键字修复了它。感谢您的投入!

      不幸的是,它并没有解决我的实际问题。见这里:

      $param = array_merge($_REQUEST, $_FILES, $_COOKIE);
      
      $param['example'] = "example";
      
      example();
      
      function example()
      {
          global $param;
          echo <<<EOT
              <p>$param['example']</p>
      EOT;
          return;
      }
      

      这次投诉是:

      解析错误:语法错误,意外 T_ENCAPSED_AND_WHITESPACE,期待 T_STRING 或 T_VARIABLE 或 T_NUM_STRING 在.....上线...

      再次,这里发生了什么?

      【讨论】:

      • 去掉引号。即写$param[example]。或写{$param['example']}
      • 尝试用花括号括起来参数:{$param['example']}
      • 也谢谢你。我其实更喜欢这种方式。
      猜你喜欢
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 2017-09-28
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      相关资源
      最近更新 更多