【问题标题】:How to convert a variable to int in Phalcon's .volt?如何在 Phalcon 的 .volt 中将变量转换为 int?
【发布时间】:2016-07-21 01:53:59
【问题描述】:

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

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

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

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

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

谢谢。

【问题讨论】:

    标签: php variables int phalcon volt


    【解决方案1】:

    有两个选项可供您选择:

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

    【讨论】:

      【解决方案2】:

      ...还有另一种方法 :) Volt 实现了名称为 format 的 php sprintf 函数。所以,你可以这样做:

      {% set foo = myFunction(data, 'data_source', 0) %}
      
      The int of "foo" is: {{ "%d"|format(foo) }}
      

      祝你好运!

      【讨论】:

        猜你喜欢
        • 2015-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-03
        • 2012-08-15
        • 2017-07-05
        • 1970-01-01
        • 2012-09-02
        相关资源
        最近更新 更多