gpt4 book ai didi

Twig:while-workaround

转载 作者:行者123 更新时间:2023-12-05 04:16:13 27 4
gpt4 key购买 nike

我已经有了一个解决方案,但只适用于 JavaScript。不幸的是,Twig 中不存在 while 循环。

我在 JavaScript 中的 Twig-target:

var x = 10; // this is an unknown number
var result = x;
while (100 % result !== 0) {
result++;
}
console.log(result);

我知道如何在 Twig 中执行此操作吗?

我的目标是什么:(如果您已经理解则不重要)

我想得到我的未知号码后的第一个号码,它满足以下条件:

100 除以(第一个数字)等于一个整数作为结果。

编辑:我无法访问 PHP 或 Twig-core。

最佳答案

你可以像这样做一个 Twig 扩展:

namespace Acme\DemoBundle\Twig\Extension;

class NumberExtension extends \Twig_Extension
{


public function nextNumber($x)
{
$result = $x;
while (100 % $result !== 0) {
$result++;
}
return $result;
}

public function getFunctions()
{
return array(
'nextNumber' => new \Twig_Function_Method($this, 'nextNumber'),
);
}


/**
* Returns the name of the extension.
*
* @return string The extension name
*/
public function getName()
{
return 'demo_number';
}
}

并在bundle的service.xml中定义:

<service id="twig.extension.acme.demo" class="Acme\DemoBundle\Twig\Extension\NumberExtension" >
<tag name="twig.extension" />
</service>

然后在模板中使用它:

{{ nextNumber(10) }}

更新

一个(不是很好)但可能满足您需要的方法是做这样的事情:

{%  set number = 10  %}
{% set max = number+10000 %} {# if you can define a limit #}
{% set result = -1 %}
{% for i in number..max %}
{% if 100 % i == 0 and result < 0 %} {# the exit condition #}
{% set result = i %}
{% endif %}
{% endfor %}

<h1>{{ result }}</h1>

希望对你有帮助

关于Twig:while-workaround,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28604861/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com