void smarty_function_name( |
$params, | Â |
| Â |
$template); |
 |
array $params;object $template;
模æ�¿ä¼ 递到函数的å�‚æ•°å�˜é‡�,
都包�在$params数组内。
å‡½æ•°è¾“å‡ºï¼ˆè¿”å›žå€¼ï¼‰çš„å†…å®¹å°†æ›¿ä»£å‡½æ•°æ ‡ç¾è°ƒç”¨çš„ä½�置,
如{fetch}函数。
�时,函数也�以仅执行一些任务而没有输出,如
{assign}函数。
如果函数ä¸å¯¹æ¨¡æ�¿èµ‹å€¼ï¼Œæˆ–使用其他Smartyæ��供的功能,
�以通过 $template对象�进行,
例如$template->foo()。
Example 18.1. 带输出的函数�件
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* File: function.eightball.php
* Type: function
* Name: eightball
* Purpose: 输出一个éš�æœºçš„ç”æ¡ˆ
* -------------------------------------------------------------
*/
function smarty_function_eightball($params, Smarty_Internal_Template $template)
{
$answers = array('Yes',
'No',
'No way',
'Outlook not so good',
'Ask again soon',
'Maybe in your reality');
$result = array_rand($answers);
return $answers[$result];
}
?>
模æ�¿ä¸ï¼š
Question: Will we ever have time travel?
Answer: {eightball}.
Example 18.2. �带输出的函数�件
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* File: function.assign.php
* Type: function
* Name: assign
* Purpose: 赋值一个��到模�
* -------------------------------------------------------------
*/
function smarty_function_assign($params, Smarty_Internal_Template $template)
{
if (empty($params['var'])) {
trigger_error("assign: missing 'var' parameter");
return;
}
if (!in_array('value', array_keys($params))) {
trigger_error("assign: missing 'value' parameter");
return;
}
$template->assign($params['var'], $params['value']);
}
?>
��:
registerPlugin(),
unregisterPlugin().
