【问题标题】:How to pass variable to $callback Collection::map($callback) in CakePHP 4.2?如何在 CakePHP 4.2 中将变量传递给 $callback Collection::map($callback)?
【发布时间】:2023-04-11 10:31:02
【问题描述】:

我不是 CakePhp 4 中集合概念的专家,也不知道如何在 Collection::map() 中传递变量

$item = [
        'attributes' => [
            'class' => 'mon-li-{{id}}',
            'data-truc' => 'li-{{id}}'
        ],
        'linkAttrs' => ['class' => 'mon-lien', 'style' => 'text-transform: uppercase']
    ];

    $id = 5;
    
    $item = collection($item)
                    ->map(function ($value, $key){
                        return preg_replace('/{{id}}/', $id, $value); // $id is undefined

                    })
                    ->toArray();

它给出:注意(8):未定义变量:id

如何让我的函数知道 $id ?

【问题讨论】:

    标签: php collections cakephp-4.x


    【解决方案1】:

    use 关键字有助于解决这个问题:

    $item = collection($item)
          ->map(function ($value, $key) use ($id) { // <-- See `use`
              return preg_replace('/{{id}}/', $id, $value);
          })
          ->toArray();
    

    PHP 手册:Anonymous Functions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2021-07-30
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多