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


Twig Error : Warning: Missing argument 1 for {closure}()

我正在用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')) ;

`

我以前从未使用过Twig,但闭包似乎是用参数调用的,但您在闭包中没有定义任何参数。试试这个:

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

我知道这个答案真的很晚了,但我终于找到了解决问题的方法。我的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')) ;