assign("時間",d"/> assign("時間",d">

ホームページ  >  記事  >  バックエンド開発  >  ヒーロー、スマーティについての質問

ヒーロー、スマーティについての質問

WBOY
WBOYオリジナル
2016-06-13 13:46:28788ブラウズ

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")); でしょうか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。