Twig - 如何检查变量是不是为数字/整数

Posted

技术标签:

【中文标题】Twig - 如何检查变量是不是为数字/整数【英文标题】:Twig - How to check if variable is a number / integerTwig - 如何检查变量是否为数字/整数 【发布时间】:2016-08-22 01:31:39 【问题描述】:

如何检查变量是数字、整数还是浮点数?我找不到任何关于此的信息。在 Symfony 3 中制作项目。

【问题讨论】:

如果它需要是一个 int,你为什么不在把它交给视图之前验证呢? 关键是它并不总是一个 int。这就是为什么我必须这样做。 这更有意义:) 添加一个新的test不是更好吗?它使您的模板保持可读性和可重用性。 @Yoshi 可能是。我现在只是 Twig 的初学者:/. 【参考方案1】:

终于找到了一些东西。答案之一来自: https://craftcms.stackexchange.com/questions/932/how-to-check-variable-type

# Match integer #
% if var matches '/^\\d+$/' %
% endif %

# Match floating point number #
% if var matches '/^[-+]?[0-9]*\\.?[0-9]+$/' %
% endif %

【讨论】:

谢谢,简单又好用的解决方案 如果您需要纯 Twig 解决方案,这个答案是可以的,但是在 Twig 和 Symfony 的文档中创建扩展是推荐的方法。 ***.com/a/52946699/1440932【参考方案2】:

您可以创建一个树枝扩展来添加测试“数字”

有了它,你就可以写了:

% if foo is numeric %...% endif %

创建你的扩展类:

namespace MyNamespace;
class MyTwigExtension extends \Twig_Extension


    public function getName()
    
        return 'my_twig_extension';
    

    public function getTests()
    
        return [
            new \Twig_Test('numeric', function ($value)  return  is_numeric($value); ),
        ];
    

在你的配置中:

services:
    my_twig_extension:
        autowire: true
        class: AppBundle\MyNamespace\MyTwigExtension
        tags:
            -  name: twig.extension 

查看文档:

https://twig.symfony.com/doc/2.x/advanced.html#tests

https://symfony.com/doc/current/templating/twig_extension.html

【讨论】:

以上是关于Twig - 如何检查变量是不是为数字/整数的主要内容,如果未能解决你的问题,请参考以下文章

检查数组TWIG中是否存在值

如何检查我的双变量是不是为整数? [复制]

如何检查今天是不是在 Twig 的两个日期之间?

PHP检查变量是不是为整数

如何使用 Python 在 Selenium WD 中检查变量的值是不是为整数? [复制]

检查实体字段类型是不是在 Twig 中返回值