php передается по ссылке в функции array_map

Я пытаюсь использовать функцию array_map для анализа строки запроса и получения пары ключ => значение:

function parse_query_string($string)
{
    $result = [];
    $arry = explode('&',$string);

    $get_qry_str_array = function($str, &$result) 
    {
        $a = explode('=',$str);
        $result[$a[0]] = $a[1];
    };

    array_map($get_qry_str_array,$arry, $result);
    return $result;
}

если я использую эту функцию, как показано ниже, я ожидал, что она вернет ассоциативный массив с каждым параметром строки запроса и значением в виде пары ключ => значение, потому что я передаю переменную $result в качестве ссылки.

$qry_str_array = parse_query_string('edit=1&delete=2');

print_r($qry_str_array);

То есть я ожидаю массив вроде:

[
    'edit' => 1,
    'delete' => 2,

] 

но я получаю пустой массив.

Я использую это неправильно? Я новичок в мире php, относительно.


person Yeasir Arafat Majumder    schedule 11.02.2018    source источник
comment
Просто используйте http://php.net/manual/en/function.parse-str.php для разбора таких строк   -  person splash58    schedule 11.02.2018
comment
Я посмотрю на это. Но мне на самом деле любопытно здесь. Почему не работает - @splash58?   -  person Yeasir Arafat Majumder    schedule 11.02.2018
comment
array_map устанавливает только один аргумент для каждого массива, чтобы ваша функция не получала результат. сделай это $get_qry_str_array = function($str) use(&$result)   -  person splash58    schedule 11.02.2018
comment
array array_map ( callable $callback , array $array1 [, array $... ] ) — в определении функции сказано, что можно передавать дополнительные аргументы для использования в качестве аргументов функции обратного вызова. Это из документации, и там тоже есть примеры... - @splash58   -  person Yeasir Arafat Majumder    schedule 11.02.2018
comment
comment
См. stackoverflow.com/questions/43559841/ для примера этого. Вам не нужно использовать ссылку для создания внешнего массива.   -  person Nicholas Shanks    schedule 23.08.2018