Avatar billede swaxi Nybegynder
08. december 2003 - 03:02 Der er 6 kommentarer og
1 løsning

få oplysninger om en funktions parameterliste

jeg har brug for at afgøre hvilke argumenter en funktion accepterer.
altså, hvis jeg har defineret :
function foo($bar, $test) { }
vil jeg have følgene array :
array(2) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(4) "test"
}
Avatar billede detox Nybegynder
08. december 2003 - 03:37 #1
Jeg kender ikke en funktion der kan bruges direkte, men en hjemmelavet kan vel gøre det:

<?php
if (isset($_POST['func']) && $_POST['func'] != "") {
    $arr = args($_POST['func']);
    $i = 0;
    foreach ($arr as $item) {
        $i++;
        echo "Argument nr.: ".$i." = ".trim($item)."<br />";
    }
} else {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input name="func" type="text" />
<input name="send" type="submit" value="Send" />
</form>
<?
}
function foo($bar, $test) { }

function bar($foo, $test) { }

function args($name) {
    $ind = file_get_contents($_SERVER['PATH_TRANSLATED']);
    $pat = "|function ".$name."\((.*)\)|";
    preg_match_all($pat, $ind, $match);
    $arr = explode(",", $match[1][0]);
    return $arr;
}

?>
Avatar billede swaxi Nybegynder
08. december 2003 - 14:59 #2
tak, men ...
jeg havde overvejet noget i den stil, men det er bare en ret klodset måde at gøre det på. dels er det langsomt, dels er sikkert mange ting, der kan gå galt. i øvrigt kræver det at man kender navnet på den fil, der indeholder funktionen.
når nu der findes funktionen get_class_methods og get_class_vars, så er det da lidt underligt, at man ikke kan få oplysninger om parametrene ?!?
Avatar billede swaxi Nybegynder
08. december 2003 - 15:13 #4
nej, de funktioner kan fortælle hvilke værdier en funktion er blevet kaldt med. men det jeg vil vide er hvilke værdier, jeg _kan_ kalde en funktion med.
Avatar billede mikl-dk Nybegynder
08. december 2003 - 18:00 #5
Ahhh - min fejl :s
Avatar billede detox Nybegynder
08. december 2003 - 19:32 #6
Ja, det ville da være rarere, hvis der fandtes en funktion der kunne give de oplysninger. Og måske endda hvilken type værdier funktionen forventede, men jeg er ikke bekendt med en sådan )o;
Avatar billede swaxi Nybegynder
26. februar 2004 - 23:33 #7
lukketid.
jeg er bange for, at der ikke findes noget svar på mit spørgsmål - andet end, at det kan man ikke i php (gud ved hvorfor?)
selvom det ikke løste mit problem, får detox alligevel point, for at have givet et godt bud.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester