Working on old scripts can be quite annoying, particularly when you encounter an undocumented function and are trying to figure out firstly which inputs that function accepts, and secondly what it actually then does with it!
Of course, the easiest way of determining this is to call the function and print out what variables are coming into it, and thanks to some native PHP functions, this turns out to be quite the easy thing to do.
First up is func_num_args() which returns the number of arguments passed into the current user-defined function. Then comes the handy func_get_args() which returns an array which contains all the arguments (corresponding to the user-defined function’s argument list) passed into the function. Finally, func_get_arg() is used to return a specified argument from the passed in arguments, starting from a zero index.
If we grab a test argument to show all of the above functions in action, we get this: (grabbed off the main PHP documentation site)
function foo() { $numargs = func_num_args(); echo "Number of arguments: $numargs
\n"; if ($numargs >= 2) { echo "Second argument is: " . func_get_arg(1) . "
\n"; } $arg_list = func_get_args(); for ($i = 0; $i < $numargs; $i++) { echo "Argument $i is: " . $arg_list[$i] . "
\n"; } } foo(1, 2, 3);
Quite handy little functions, aren’t they?
(And to think that I didn’t even know of their existence up until now! :P)
You might also enjoy:
-
Today's little PHP hint is a pretty simple one, but one worth tackling if you are looking for a quick and easy way to strip a particular string pattern off ...
-
Just a quickie today, but a fairly important one at that. What is the difference between using include or require when pulling in data or functions from out ...
-
Before jQuery's native live() and delegate() functions came into being, the default for handling binding on late generated DOM elements was to make use of t ...
-
For example, let's say you currently do non-incremental backups of your data on a daily business. If you don't keep an eye on it, pretty soon your backup fo ...
-
Just a simple one this time around to give you the syntax for adding optional input variables to your PHP functions. This is pretty useful if you are going ...