Mam tę funkcję

0
ACDC 24 czerwiec 2021, 00:11

4 odpowiedzi

Najlepsza odpowiedź

Nie możesz

Dokument PHP:

Gets an array of the function's argument list.

Ta metoda zwraca wszystkie argumenty

Przy okazji, musisz też użyć array_shift lub unset

1
Mohammad 23 czerwiec 2021, 21:20

Staram się zrozumieć, co próbujesz tutaj osiągnąć.

Jeśli chcesz, aby rawInfo zwracało tylko arg_1 i arg_2, po prostu zwróć $args.

Jeśli chcesz, aby $args było „arg_1” i „arg_2”, po prostu nie zmieniaj $args.

Jeśli jest to część większej aplikacji, pomocne może być posiadanie udokumentowanego kodu, który pomoże nam zrozumieć, co aplikacja ma tutaj zrobić.

1
moonman239 23 czerwiec 2021, 21:23

Możesz użyć func_get_arg(int $position) do zwróć tylko konkretny argument. W twoim przypadku byłoby to func_get_arg(1)

<?php

function rawInfo($secretWord, $args){
    $args = func_get_arg(1);
    return $args;
}
$args = ['arg_1', 'arg_2'];
print_r(rawInfo('secret_word',$args));
1
Samir 23 czerwiec 2021, 21:24

Nie ma sensu, dlaczego przekazujesz trzy parametry do funkcji z dwoma argumentami. Wygeneruje to błąd w PHP. Jeśli potrzebujesz przekazać arg_1 i arg_2, możesz to zrobić za pomocą tablicy.

<?php

function rawInfo($secretWord, $args){
    $args = func_get_args();
    return $args;
}

print_r(rawInfo('secret_word', ['arg_1', 'arg_2']));

?>

Spowoduje to wygenerowanie następującego wyniku:

Array ( [0] => secret_word [1] => Array ( [0] => arg_1 [1] => arg_2 ) )

Wygląda na to, że próbujesz przekazać wiele argumentów i przypisać je do jednej zmiennej $args. Przekazanie arg_1 i arg_2 w tablicy takiej jak ta pomoże Ci zwrócić tablicę z funkcji rawInfo().

1
solidforge 23 czerwiec 2021, 21:28