Smarty註冊函數,請指點

來源:互聯網
上載者:User
請問smarty註冊函數問題。

$smarty->register_function('dateline', 'handle_dateline'); //這是註冊函數 ,第一個參數是什麼意思?

function handle_dateline($params, &$smarty) {} //這是被註冊函數 ,這2個參數是什麼意思?

註冊函數是不是會導致函數執行?是不是類似於調用函數?


回複討論(解決方案)

$smarty->register_function(' dateline', 'handle_dateline');
dateline 是在模板裡使用的名字

{dateline time="$time" format="Y-m-d"}
而不是
{handle_dateline time="$time" format="Y-m-d"}
呵呵,自己找罪受

function handle_dateline($params, &$smarty) {}
$params 傳入的參數數組,比如上例中就有兩個元素
函數體你可能會這樣寫
extract($params);
echo date($format,$time);

$smarty smarty 對象本身,因為你有可能需要在函數體內訪問 $smarty 的屬性和方法

$smarty->register_function(' dateline', 'handle_dateline');
dateline 是在模板裡使用的名字

{dateline time="$time" format="Y-m-d"}


hello,這樣說的話,
$smarty->register_function('dateline', 'handle_dateline');
並沒有傳遞任何參數給function handle_dateline($params, &$smarty) {}??
註冊函數上面的語句,會不會導致函數 “function handle_dateline($params, &$smarty) {} ” 執行?

不會執行,它只是註冊了一個函數,需要你在模板中調用時才會執行,參數也是此時傳遞的。

不會執行,它只是註冊了一個函數,需要你在模板中調用時才會執行,參數也是此時傳遞的。


參數是在調用時候才會傳遞的 ,也就是說跟註冊函數無關。那註冊函數到底有什麼用??難道只是為了讓它的值在tpl中顯示嗎?

註冊的目的是讓 smarty 找到他,不然就會出錯!

說白了,它就是註冊一個函數,讓你在tpl調用。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.