php – 将参数传递给Pimple-> container-> factory

所以我基本上想要这样做:

$this->container['Menu_builder'] = $this->container->factory(function ($c) {
    return new Menu_builder($parameter_1, $parameter_2);
});

调用传入$parameter_1和$parameter_2的位置,如下所示:

$menu_builder = $this->container['Menu_builder']('account', 'reset_password');

我知道上面的语法不正确,但我想将这些字符串传递给$this-> container-> factory的调用.

这可能吗?

例如,如果我想从各种控制器函数中实例化Menu_builder,并为每个控制器函数使用不同的参数.

解决方法:

您可以使用use()将变量传递给匿名函数,例如

//your parameters needs to be defined here:
$parameter_1 = "XY";
$parameter_2 = 42;

$this->container['Menu_builder'] = $this->container->factory(function ($c)use($parameter_1, $parameter_2) {
                                                                        //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ See here
    return new Menu_builder($parameter_1, $parameter_2);
});

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...