Smarty の質問をしたいのですが
タイトルの通り、ソース コードは次のとおりです:
index.php:
include 'main.inc.php';
header(" Content-Type:text/html;charset=UTF-8");
$sm->assign("time",date("Y-m-d H-i-s"));
class User{
function Smarty_function_myname ($param,&$smarty) {
if (isset($param['name'])) {
if ("xxx"==$param['name']) {
return "私はあなたを知っています".
}else {
return "私はあなたを知りません!";
}
}
}
}
$ user = new User();
$sm->register_function("myname", array($user,"smarty_function_myname"));
$sm->display("index.tpl");
?>
-------------------------------------- -------- ------------------
index.tpl:
< title>ここにタイトルを挿入
<{myname name="xxx"}>
-------------------------------------- -------- --
index.php にアクセスするとエラーが発生し続けるのはなぜですか? エラーは次のとおりです:
致命的なエラー: F:AppServwwwDemotemplates_c%% の未定義関数 Smarty_function_myname() の呼び出し45^45E^45E480CD%%index.tpl.php 12 行目
追記:index.php を次のものに置き換えると、通常どおり使用できます:
include 'main.inc.php';
header("Content-Type:text/html;charset=UTF-8");
function Smarty_function_myname($param,&$smarty) {
//$ param は、<{myname}> 関数
if (isset($param['name'])) {
if ("Xu Xiaoxia"==$param['name') を使用する場合の属性配列です。 ]) {
return "I know".date("Y-m-d H-i-s" );
}else {
return "I know you!";
}
}
}
$sm->register_function("myname", " Smarty_function_myname");
$sm->display("index.tpl");
?>
専門家のアドバイスを求めてください...
----- -解決策------------------
わかりません~~これはすべて PHP で処理され、smarty~
array(&$object, $method) 配列形式で表示されます。ここで、&$object はオブジェクトへの参照であり、$method はそのオブジェクトの 1 つですメソッド;
$sm->register_function("myname", array(&$user,"smarty_function_myname")); でしょうか?