我想在smarty插件目录中编写一个smarty函数 . 它是一个递归函数 . 它在普通的php文件中运行良好,并会生成一个下拉选择框 . 现在我想使它成为一个聪明的功能,并希望从tpl调用它 .
<?php
/*
* Smarty plugin
* ————————————————————-
* File: function.recurse_array.php
* Type: function
* Name: recurse_array
* Purpose: prints out elements of an array recursively
* ————————————————————-
*/
function smarty_function_recurse_array($arr,$depth=0, &$smarty)
{
$html = '';
foreach ( $arr as $v ) {
$html.= '<option value="' . $v['id'] . '">';
$html.= str_repeat('-', $depth);
$html.= $v['cata_name'] . '</option>' . PHP_EOL;
if ( array_key_exists('subcategories', $v) ) {
$html.= smarty_function_recurse_array($v['subcategories'], $depth+1);
}
}
return $html;
}
此文件存储在smarty插件目录中,并且想要调用
{recurse_array array=$myarray}
现在我对递归调用函数参数部分感到困惑
$html.= smarty_function_recurse_array($v['subcategories'], $depth+1);
它会生成一个警告
Warning: Missing argument 3 for smarty_function_recurse_array()
我怎么解决这个问题?
1 回答
试试这个: