ホームページ > バックエンド開発 > PHPチュートリアル > PHPの問題 [緊急] [緊急] [緊急] [緊急] 助けてください

PHPの問題 [緊急] [緊急] [緊急] [緊急] 助けてください

WBOY
リリース: 2016-06-23 13:46:22
オリジナル
886 人が閲覧しました

テンプレートの割り当て問題 终 最終的なページのコードは次のとおりです

<?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不能赋值?>
ログイン後にコピー
E
Index.html の簡単なコード 以下は変数を出力します





問題は次のとおりです: このページに直接インクルード (上記の最初のコード ブロック) ) INCLUDE ('Templates/Index.html '); 代入が成功すると $ show 値が出力されます
以下のように、テンプレートのコア関数 $ TPL-& GT; を記述するだけでは、値を絶対に変更してください]、2 つの参照のパスはまったく同じです [絶対ではありません] が、機能しません。 ! ! GLOBAL に関係するかどうかはわかりません。詳しく説明してオンラインでお待ちください。


	<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);        }
ログイン後にコピー



KSeeing::assign メソッドはどのように書かれていますか? の?

一般的に言えば、
$tpl->assign("show",'success');
は、$tpl の show 属性に 'success' を代入することですが、通常はキャリア
があるため、このようになります $tpl -> data['show'] = 'success';

あなたのテンプレートは です
したがって、コンパイルメソッドは
extract($this->data);include($comFile);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
である必要があります

モデレーター コンパイル I には定期的な置き換えがあります。出力できるかどうかを確認するために、最終ページに変数 $show = '111'; を書き込みました。通常は $tpl->assign("show",'success');

function assign($tpl_var) となるはずです。 ,$ value = null){
if($tpl_var!=''){



具体的な状況は以下の通りです

これは究極のページです。
extract($this->data);include($comFile);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー


現在の究極page は正常に成功を出力するので問題ありません。その後、それを少し修正しました
<?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');?>
ログイン後にコピー


このように、index.html の $show は意味がありません。ここで問題が発生します。 ! ! $tpl->compile('index.html'); を

include('templates/index.html'); に変更すると機能します。 ! $tpl->compile('index.html'); によって得られる結果も include('templates/index.html'); なぜこれが機能しないのでしょうか?ページ 質問

KSeeing::assign メソッドの書き方は?

一般的に言えば
$tpl->assign("show",'success');
は $tpl の show 属性に 'success' を代入するもので、通常はキャリア
があるため、このようになります。 -> data['show'] = 'success';

あなたのテンプレートは ですので、コンパイル方法は

<?php     require "system/system.php";     $show = '111';        $tpl->compile('index.html');?>
ログイン後にコピー



======== となります。 = ======================================

の最終ページにはコメントはありません2階です、修正してください
extract($this->data);include($comFile);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー


なので、目標通りにできるように、assignメソッドのコードを教えてください
コンパイルに含められないのは、変数 $show がないからですコンパイル中

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート