Do you want to vary the number of arguments you pass in to a PHP function?
loadarticles(2,3,6,5,4);
loadarticles(5,7);
Simply declare your function with a minimum of parameters that you need (perhaps zero) and use the
func_get_args() function to get you an array of all the parameters. Here's an example:
function loadarticles() {
$abase = array();
database_connect();
$inputs = func_get_args();
foreach ($inputs as $article) {
$row = database_get("select * from mt_entry where entry_id = $article");
$abase[body] .= "<tr><td class=\"pageName\">$row[entry_title]</td></tr>";
$abase[body] .= "<tr><td class=\"bodytext\">$row[entry_text]</td></tr>";
}
return $abase;
}
The
func_num_args function can be used to obtain just the number of arguments used to call your current function, and the
func_get_arg function to obtain a specific argument by position number.
Although you can write a function to pick up a variable number of arguments, it is usually better programming practice to pass in an array of varying length ... so in other words, I'm advising you to used
func_get_args sparingly!
(written 2009-11-02)
Associated topics are indexed under
H105 - PHP - Functions [3026] Coding efficiency - do not repeat yourself! - (2010-11-02)
[2929] Passing a variable number of parameters in to a function / method - (2010-08-20)
[2737] Improving your function calls (APIs) - General and PHP - (2010-04-24)
[2682] Adding extensions to PHP Open Source applications - callbacks - (2010-03-17)
[2630] Static variables and ampersands in PHP - (2010-02-10)
[1784] Global - Tcl, PHP, Python - (2008-09-03)
[1380] Static variables in PHP - (2007-10-05)
[1357] Clean my plate, but keep my wine bottle. (PHP; Static) - (2007-09-18)
[1267] is there a lookup function in php? - (2007-07-15)
[1202] Returning multiple values from a function (Perl, PHP, Python) - (2007-05-24)
[1163] A better alternative to cutting and pasting code - (2007-04-26)
[1021] PHP - static declaration - (2007-01-04)
[936] Global, Superglobal, Session variables - scope and persistance in PHP - (2006-11-21)
[866] A lazy programmer is a good programmer - (2006-09-15)
[775] Do not duplicate your code - (2006-06-23)
[421] Don't repeat code - use loops or functions - (2005-08-21)
[409] Functions and commands with dangerous names - (2005-08-11)
[340] Code and code maintainance efficiency - (2005-06-08)
[339] Passing information into and out of PHP functions - (2005-06-07)
[308] Call by name v call by value - (2005-05-11)
[223] There is a function in PHP to do that - (2005-02-21)
[96] Variable Scope - (2004-10-22)
Some other Articles
Lua Classes - open enrolementRoot is root for a reason!Friendly Hotel in Melksham, near BathParallel Pinging, using Python Threads or Expect spawn listsA variable number of arguments in a PHP functionMelksham ForumSanta Special - Trowbridge and Melksham to SwindonHow do I set up a constant in Python?Finding text and what surrounds it - contextual grepClustering on Tomcat