我在.volt(Phalcon)中有这段代码:
{% set foo = myFunction(data, 'data_source', 0) %}
它返回非负数,问题是当它为空时我得到""
而不是"0"
。如何强制伏特始终将int
作为foo
返回,这样一切都会按预期工作但不会抛出empty variable
错误?
我宁愿避免使用<?php ... ?>
。
我一直在查看http://voltframework.com/docs但没有运气。
谢谢。
答案 0 :(得分:2)
您可以选择两个选项:
1)创建自己的伏特功能:
$compiler->addFilter(
'int',
function ($resolvedArgs, $exprArgs) {
return 'intval(' . $resolvedArgs . ')';
}
);
此处有更多信息:https://docs.phalconphp.com/en/latest/reference/volt.html#id2
2)使用伏特内置滤波器。在您的情况下,如果没有返回值,您可以使用DEFAULT fitler将默认值设置为0。完整的内置函数列表:https://docs.phalconphp.com/en/latest/reference/volt.html#filters
当然其他选项可能是修改你的函数以便总是返回一个值或者在volt内部使用PHP语法,这有点难看:)
答案 1 :(得分:1)
......还有另一种方式:) Volt实现了名为format
的php sprintf函数。所以,你可以这样做:
{% set foo = myFunction(data, 'data_source', 0) %}
The int of "foo" is: {{ "%d"|format(foo) }}
祝你好运!