Возвращает ассоциативный массив, содержащий список аргументов функции в php

В php func_get_args - возвращает массив, содержащий список аргументов функции

возвращает массив числовых индексов

Есть ли какая-либо функция / путь в php, с помощью которого мы получаем ассоциативный массив, то есть ключ => пара значений

я объясняю с примером:

test.php

<?php

function foo() {
    include './fga.inc';
}
$x=20;
$y=30;

foo($x, $y);
?>

fga.inc

<?php

$args = func_get_args();
echo "<pre>";
print_r($args);
echo "</pre>";

?>

который должен вернуть

array (
  'x'=> 20,
  'y' => 30,
)

1 ответ

Решение

Вы не можете сделать это в вашем foo() функция, потому что PHP не передает имена переменных вашей функции, только их значения. Кроме того, PHP не поддерживает именованные аргументы в функциях, и не похоже, что это будет сделано в ближайшее время.

Обходной путь должен был бы передать ассоциативный массив в качестве единственного аргумента вашей функции. Ты можешь использовать compact() для сопоставления переменных в вызывающей области, которые вы хотите передать, например:

function foo($args) {
    echo "<pre>";
    print_r($args);
    echo "</pre>";
}

$x = 20;
$y = 30;

foo(compact('x', 'y'));

Выход:

Array
(
    [x] => 20
    [y] => 30
)
Другие вопросы по тегам