我试图从外部文件插入字符串,但我使用复杂花括号有问题。变量没有按预期填充?如果我把代码从外部模板文件它成功地返回一个值为每个变量。
index . php
function getIncludeContents($included_file_path, $post){
if ( !file_exists( __DIR__ . $file ) ) {
return 'nofile';
}
if ( is_array( $post ) ){
extract( $post );
}
ob_start();
include($included_file_path);
return ob_get_clean();
}
$navigation = getIncludeContents('layouts/test.php', $post);
var_dump($navigation);
test.php
<div id="post-{$post['id']}"></div>
这回报…'<div id="post-${post['id']}"></div>'
当它应该返回…'<div id="post-201"></div>
知道为什么吗?由于
由于test.php
没有<?php
,它被视为固定文本,而不是PHP代码来执行。它需要echo
语句来回显变量,或者您可以使用短echo标记。
<div id="post-<?= $post['id'] ?>"></div>
试试这个
<div id="post-<?php echo $post['id']?>"></div>