繁体   English   中英

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

[英]How to convert a variable to int in Phalcon's .volt?

我在.volt(Phalcon)中有以下代码:

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

它返回非负数,问题是当它为空时,我得到的是""而不是"0" 如何强制volt始终将int作为foo返回,以便一切都能按预期工作,但不会引发empty variable错误?

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

我一直在浏览http://voltframework.com/docs ,但没有运气。

谢谢。

您可以选择两个选项:

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语法,这有点难看:)

...还有另一种方法:) Volt已经以名称format实现了php sprintf函数。 因此,您可以执行以下操作:

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

The int of "foo" is: {{ "%d"|format(foo) }}

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM