【问题标题】:How to modify standard commands in PHP如何在 PHP 中修改标准命令
【发布时间】:2015-08-05 11:50:19
【问题描述】:

是否可以在 PHP 中修改标准命令?例如,我想使用“{{”而不是“echo”。

在我的实践中,我经常使用 ' echo " ' 和 ' "; ' 来打印整个字符串。例如:

echo "
<div class='someClass'>
  <table id='someTable'>
    <tr>
      <td> Hello </td>
      <td> World </td>
    </tr>
  </table>
</div>
";

对我来说,使用'echo'来换行更方便,而且代码看起来更易读。但是是否有可能让它看起来更漂亮,例如在 Laravel 框架中。

{{
<div class='someClass'>
  <table id='someTable'>
    <tr>
      <td> Hello </td>
      <td> World </td>
    </tr>
  </table>
</div>
}}

我试图定义一个常数:

define ('{{', 'echo "');
define ('}}', '";');

但这不起作用。以及使用 str_replace 将一个变量中的所有代码替换为所需的符号,然后打印出来。

$a = str_replace('{{', 'echo "', $someVariableWithAllCodeAsText);
$a = str_replace('}}', '";', $someVariableWithAllCodeAsText);

所以问题是:一般来说有可能吗?

【问题讨论】:

  • 何必呢,它是一个四字符指令。当其他人获得维护您的代码的工作时会发生什么。他们不会知道发生了什么
  • 即使有可能,我强烈建议您不要这样做,这将使您的代码几乎无法被除您以外的任何人理解,并且如果您需要重写整个代码发布到任何地方。
  • @RiggsFolly 好吧,我只是好奇它是否可能,以及这个功能是如何在不同的框架中实现的。
  • 您能否指出一些在 Laravel 或其他地方使用 {{}} 的文档
  • 我认为唯一可行的方法是编写自己的解析器。不过,这是一个有趣的问题!我不明白,为什么人们只是投反对票。当然,无缘无故地更改echo 之类的东西有点疯狂,但知道这是否可能会很有趣。所以这个问题很好,只要没有人想到真正做到这一点! ;)

标签: php replace command standards


【解决方案1】:

你可以定义一个函数:

function _($html)
{
    echo $html;
}

然后在你的代码中使用:

_('<h1>Hello World !</h1>');

你也可以使用:

<?= '<h1>Hello Worlds !' <?>

为了更短的方式。

但一般情况下,您将无法做到这一点,您可以看到 Smarty 或 Twig 等所有模板引擎,它们会解析模板代码以将 {{ 替换为 echo

【讨论】:

    【解决方案2】:

    有一些合法的方法可以使定义的文本“更漂亮”,但并不完全符合您的意图。

    首先,您可以在 HTML 文件中定义 HTML 块,然后使用 includerequire 语句插入块。但是,这对动态内容不利。

    其次,您可以使用heredoc 语法来定义字符串。这将允许使用变量。

    第三,您不必包含所有在 PHP 中输​​出的内容,即使它是动态的。在 PHP 文档站点上查看 escaping from HTML。这是那里的一个例子:

    <?php if ($expression == true): ?>
        This will show if the expression is true.
    <?php else: ?>
        Otherwise this will show.
    <?php endif; ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 2016-09-03
      • 1970-01-01
      • 2011-06-05
      • 2011-04-02
      相关资源
      最近更新 更多