我快要哭了。我已经阅读了 php.net 手册页,用各种短语尝试了十几个 Google 搜索,并扫描了数百个 stackoverflow 线程。我已经看到使用这种方法,但它对我不起作用。看起来很基础。我有几个相关的问题或我不知道如何找到答案的问题。
PHP 文件的重要部分如下所示:
switch() {
…other cases…
default:
$tpl['title'] = "Newsletter Signup";
$tpl['description'] = "Newsletter description";
$tpl['page-content'] = file_get_contents('signup.html');
}
$tpl_src = addslashes(file_get_contents('index.tpl'));
eval("\$html = \"$tpl_src\";");
echo $html;
我的 index.tpl 文件包括这样的行:
<title>{$tpl['title']}</title>
<meta name="description" content="{$tpl['description']}" />
nav, etc…<br>
<div id="main-content"> {$tpl['page-content']} </div>
我喜欢代码的整洁和干净,没有一大堆额外<?=…?>
的 's。
首先,当大括号 {} 出现在字符串中时,它叫什么?如果我知道的话,我也许可以查一下并学习如何使用它们。
接下来,这根本行不通。如果我从变量键中删除单引号,这很好,但 php.net 说你永远不应该这样做,以防我的名字在某个时候成为语言常量。很公平。但是我该如何解决这个问题?如果我想构建一个 evalTemplate 子例程并且可以将 $tpl 传递给它,我喜欢为 vars 使用一个数组。
最后, $tpl['page-content'] 不会打印出来。变量设置好了;我可以echo $tpl['page-content']
用来测试,但它在最终的 HTML 中显示为一个空行。
我确信语言的某些方面我还不知道。任何帮助深表感谢!!