Передача пользовательских данных в качестве ссылки на array_walk_recursive в Php

Я пытаюсь передать третий параметр по ссылке на Phps array_walk_recursive

 $field = 'foo'; array_walk_recursive($config, function($value, $key, &$field) { $field = 'bar'; }, $field); echo $field // 'foo' 

Почему $field все еще 'foo' , хотя он передан функции в качестве ссылки?

Я сам отвечу на него:

Согласно документации php анонимных функций унаследованные переменные замыкания должны быть определены в заголовке функций с использованием ключевого слова, что оставляет мой пример:

 function($value, $key) use (&$field) { ... } 

Хотя функция обратного вызова наследует параметры, объявленные с use из своего родителя, что означает из области / функции, в которой она была объявлена ​​(не выполнена).

  <?php $field = array('foo'); array_walk_recursive($field, function($value, $key) use(&$field) { $field = 'bar'; }); print_r($field); ?>