php模板中的数组在哪,php – Twig:从包含的模板中添加项目到数组

这不能在Twig中完成,如模板的编译源中所示,每个包含的templats都有自己的私有范围,因为上下文数组是基于值而不是引用

$this-> loadTemplate(“bar.twig”,“main.twig”,2) – > display($context);

然后在包含的模板中调用doDisplay

protected function doDisplay(array $context,array $blocks = array())

注意

你可以通过创建自己的Twig_Environment和Twig_Template来改变这种行为,但是快速浏览一下我会发现你需要覆盖一些功能.

main.twig

{% set foo = 'bar' %}

{% include 'bar.twig' %}

Foo in foo: {{ foo }}

bar.twig

{% set foo = 'foo' %}

Foo in bar: {{ foo }}

来源main.twig

/* main.twig */

class __TwigTemplate_4ba23e628289532331bb5889dca1a4ec57774924d21a760ca6fe6f575a3978b5 extends Twig_Template

{

public function __construct(Twig_Environment $env)

{

parent::__construct($env);

$this->parent = false;

$this->blocks = array(

);

}

protected function doDisplay(array $context, array $blocks = array())

{

// line 1

$context["foo"] = "bar";

// line 2

$this->loadTemplate("bar.twig", "main.twig", 2)->display($context);

// line 3

echo "

Foo in foo: ";

// line 4

echo twig_escape_filter($this->env, ($context["foo"] ?? null), "html", null, true);

}

public function getTemplateName()

{

return "main.twig";

}

public function isTraitable()

{

return false;

}

public function getDebugInfo()

{

return array ( 26 => 4, 23 => 3, 21 => 2, 19 => 1,);

}

public function getSourceContext()

{

return new Twig_Source("", "main.twig", "/fuz/twigfiddle.com/files/environment/k85WDdymIFgSoXLc/twig/main.twig");

}

}

来源bar.twig

/* bar.twig */

class __TwigTemplate_16789decfbb837d4631acf2e648380c0658722c50a0b53184b3f3c5f68f9b0ae extends Twig_Template

{

public function __construct(Twig_Environment $env)

{

parent::__construct($env);

$this->parent = false;

$this->blocks = array(

);

}

protected function doDisplay(array $context, array $blocks = array())

{

// line 1

$context["foo"] = "foo";

// line 2

echo "Foo in bar: ";

echo twig_escape_filter($this->env, ($context["foo"] ?? null), "html", null, true);

}

public function getTemplateName()

{

return "bar.twig";

}

public function isTraitable()

{

return false;

}

public function getDebugInfo()

{

return array ( 21 => 2, 19 => 1,);

}

public function getSourceContext()

{

return new Twig_Source("", "bar.twig", "/fuz/twigfiddle.com/files/environment/k85WDdymIFgSoXLc/twig/bar.twig");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值