如何在Phalcon的.volt中将变量转换为int?

时间:2016-04-01 09:55:04

标签: php variables int phalcon volt

我在.volt(Phalcon)中有这段代码:

{% set foo = myFunction(data, 'data_source', 0) %}

它返回非负数,问题是当它为空时我得到""而不是"0"。如何强制伏特始终将int作为foo返回,这样一切都会按预期工作但不会抛出empty variable错误?

我宁愿避免使用<?php ... ?>

我一直在查看http://voltframework.com/docs但没有运气。

谢谢。

2 个答案:

答案 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) }}
祝你好运!