テンプレートの割り当て問題 终 最終的なページのコードは次のとおりです
<?php require "system/system.php"; $tpl = new KSeeing(); $tpl->assign("show",'success'); $show = '111'; include('templates/index.html'); =======================这样写的话 $show能成功赋值 //include('F:/AppServ/www/temp/tpl/com_index.html.php'); //$tpl->compile('index.html');===================这样写的话$show不能赋值?>
<div class="logo"><?php echo $show ?></div>
ディスカッションへの返信 (解決策)
KSeeing::assign メソッドはどのように書かれていますか?
一般的に言えば
$tpl->assign("show",'success');
は $tpl の show 属性に 'success' を代入するもので、通常はキャリア
があるため、このようになります。 -> data['show'] = 'success';
したがって、コンパイルメソッドは
function compile($fileName){ $ducument_root = $_SERVER['DOCUMENT_ROOT']; $tplFile = $ducument_root.$this->template_dir.$fileName; //找到模版文件 if(!file_exists($tplFile)){ return false; } $comFile = $ducument_root.$this->compile_dir.'com_'.basename($tplFile).'.php';//构造编译后的文件 if(!file_exists($comFile) || filemtime($comFile)<filemtime($tplFile)){ $repContent = $this->tpl_replace(file_get_contents($tplFile));//获取源文件内容并替换成php源格式 $handle = fopen($comFile,'w+'); fwrite($handle,$repContent); fclose($handle); } include($comFile); }
extract($this->data);include($comFile);
extract($this->data);include($comFile);
<?php require "system/system.php"; $tpl = new KSeeing(); $tpl->assign("show",'success'); //$show = '111'; include('templates/index.html'); //include('F:/AppServ/www/temp/tpl/com_index.html.php'); $tpl->compile('index.html');?>
一般的に言えば
$tpl->assign("show",'success');
は $tpl の show 属性に 'success' を代入するもので、通常はキャリア
があるため、このようになります。 -> data['show'] = 'success';
あなたのテンプレートは ですので、コンパイル方法は
<?php require "system/system.php"; $show = '111'; $tpl->compile('index.html');?>
extract($this->data);include($comFile);