Twig错误:警告:{closure}()缺少参数1

时间:2013-02-20 16:17:56

标签: php twig

我正在用PHP编写一个用于学校工作的应用程序,而我正在使用Twig模板引擎(没有框架)。

我有一个文件在我的项目中初始化Twig,我在所有需要它的文件中使用它。

include_once('./Twig/lib/Twig/Autoloader.php'); 
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem('./templates');    
$twig = new Twig_Environment($loader, array(
    'cache' => false,
    'charset' => 'utf-8'
));

我有一个Twig函数,它返回我的静态文件文件夹的路径。但是当我运行addFunction($my_function)时,我收到以下错误:

  

警告:{closure}()

缺少参数1

我的Twig功能:

$url_for_static = new Twig_SimpleFunction('static_folder', function () {
$static_folder = "./static" ;
    return $static_folder ;
});

$twig->addFunction($url_for_static);

我知道这个答案真的很晚,但我终于找到了解决问题的方法。我的Twig函数声明错了。 这对我有用:

`

function blank_space($size=100) {       
    echo "<div class='grid-". $size ." hidden'> <span> hidden </span> </div>" ;
}
$twig->addFunction('blank_space', new Twig_Function_Function('blank_space')) ;

`

2 个答案:

答案 0 :(得分:0)

我之前从未使用过Twig,但似乎用一个参数调用了闭包,但你没有在闭包中定义任何参数。试试这个:

$url_for_static = new Twig_SimpleFunction('static_folder', function ($arg) {
    var_dump($arg);
    $static_folder = "./static" ;
    return $static_folder ;
});

答案 1 :(得分:0)

我知道这个答案真的很晚,但我终于找到了解决问题的方法。我的Twig函数声明错了。

这对我有用:

function blank_space($size=100) { 
    echo "<div class='grid-". $size ." hidden'> <span> hidden </span> </div>" ; 
} 

$twig->addFunction('blank_space', new Twig_Function_Function('blank_space')) ;