Stel, ik heb de volgende functie:
In deze functie zijn de parameters $width, $height en $weight verplicht. De parameter $color krijgt een default waarde mee. Mijn vraag: is het mogelijk een functie te bouwen die voor een andere functie de parameters ophaalt en in een array zet? Met andere woorden:
Bovenstaande zou geven:
Mijn eerste idee zou zijn om alle php bestanden te doorlopen op de exacte string "function foo" en dan de parameters met een regex eruit te filteren, met andere woorden:
Twee vragen:
PHP:
1
2
3
| function foo($width, $height, $weight, $color = null) { // do stuff... } |
In deze functie zijn de parameters $width, $height en $weight verplicht. De parameter $color krijgt een default waarde mee. Mijn vraag: is het mogelijk een functie te bouwen die voor een andere functie de parameters ophaalt en in een array zet? Met andere woorden:
PHP:
1
2
3
4
5
| function get_parameters($function) { // do stuff... } print_r(get_parameters(foo)); |
Bovenstaande zou geven:
code:
1
2
3
4
5
6
7
8
| // [parameter] => default_value array ( [width] => [height] => [weight] => [color] => null ) |
Mijn eerste idee zou zijn om alle php bestanden te doorlopen op de exacte string "function foo" en dan de parameters met een regex eruit te filteren, met andere woorden:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| function get_parameters($file, $function) { $file = file_get_contents($file); $file = str_replace(array("\n", "\r"), ' ', $file); $hasMatch = preg_match_all("??", $file, $matches); if ($hasMatch) { foreach ($matches as $match) { $parameters[$match['parameter']] = $match['value']; } } return $parameters; } |
Twee vragen:
- is er geen eenvoudiger manier om de parameters van een functie te vinden?
- wanneer niet, zou iemand mij dan kunnen helpen met de benodigde regex?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."