我使用 lexpyrocms 解析器作为与 composer 一起安装的包以及带有 HMVC 的 codeigniter 框架,它允许我在模板/视图中使用 {{pseudo-variable}}。
在我看来,解析器语法有一个非常奇怪的行为:
我有这个简单的 $modules 数组作为数据,我可以在视图/模板中 print_r()
$modules =
Array (
[users] => stdClass Object ( [id_mdl] => 8 [name_mdl] => users ),
[actions] => stdClass Object ( [id_mdl] => 9 [name_mdl] => actions )
);
如果我使用基本 Lex 语法,我可以毫无问题地显示 name_mdl
{{modules}} {{name_mdl}} {{/modules}}
=> 输出“用户”和“操作”
但是当我在循环中使用条件“if”时,当我测试变量是否存在时,我得到了错误的匹配:
{{modules}}
{{name_mdl}}
{{/modules}}
这正确输出users actions
{{modules}}
{{if exists name_mdl}}
name_mdl OK {{name_mdl}}
{{endif}}
{{/modules}}
但这不会输出任何东西:/
{{modules}}
{{if not exists name_mdl}}
name_mdl NOT OK {{name_mdl}}
{{endif}}
{{/modules}}
这将输出'name_mdl NOT OK users
name_mdl NOT OK actions'
解析器正确显示它刚刚回避为存在于条件中的变量..
我到处搜索了一下,但它看起来像一个孤儿问题,在任何地方都找不到线索..