纯 PHP 模板

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您的旅程的每个阶段提供云产品。 立即开始使用 价值 200 美元的免费积分!

有了像 JavaScript 中的 模板字面量 和 JSX 等模板语言,我已经习惯了想要将我的 HTML 模板写成一个漂亮的块,并在需要的地方撒上变量。

前几天我遇到了一种情况,需要在“原始”PHP 中这样做,所以我只是在这里记录一下。

假设我有一些像这样的数据…

$title = "The Title";
$desc  = "Some information about this thing blah blah.";
$img   = "/images/header.jpg";

但是这些数据会发生变化,或者可能有多组数据,我想能够将这些数据传递给一个函数,并让它吐出一些 HTML。这样,就可以轻松地更改模板,并使其影响到所有使用它的位置。

我不想 将它散布到一些 HTML 中 作为一次性操作。我更希望有一个函数。

function echo_card($title = "Default Title", $desc = "Default Description", $img = "/images/fallback.jpg") {
   echo "";
}

PHP 并没有像 JavaScript 模板字面量那样将一堆 HTML 字符串插值在一起,而是有 HEREDOC 语法,它有点类似于 JavaScript 的模板字面量。

function echo_card($title = "Default Title", $desc = "Default Description", $img = "/images/fallback.jpg") {
   $html = <<<"EOT"
      <div class="card">
         <img src="$img" alt="">
         <h2>$title</h2>
         <p>$desc</p>
      </div>
EOT;

   echo $html;
}

现在,我可以调用此函数来使用我的数据回显 HTML 模板。

echo_card($title, $desc, $img);

我发现这是一种相当舒适的工作方式,不需要任何其他库或任何东西。