如何在PHP中修改标准命令

时间:2015-08-05 11:50:20

标签: php replace command standards

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

在我的练习中,我经常使用' echo“'和'”; '来打印整个字符串。例如:

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

对于我而言,它更加方便,并且在每个新行使用“ echo ”时,代码看起来更具可读性。但是,有可能让它看起来更漂亮,例如在Laravel Framework中。

{{
<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);

所以问题是:一般是否可能

2 个答案:

答案 0 :(得分:1)

您可以定义一个功能:

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

然后在你的代码中使用:

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

您也可以使用:

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

缩短方式。

但总的来说,你将无法做到这一点,你可以看到所有模板引擎,如Smarty或Twig,他们解析模板代码,以{{替换echo

答案 1 :(得分:0)

有一些合法的方法可以使定义的文本“更漂亮”,但不完全是你想要的方式。

首先,您可以在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; ?>