|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-08-13 04:05 UTC] martin at semester dot sk
Good day. It is not a really bug report but a little suggestion for new PHP relase. I'll be good thing to add to PHP
language ability to create functions with named parameters like in Visual Basic. For example:
//Classic function:
function printhello($name, $bold = false, $italic = false)
{
$ret = "Hello $name!"
if ($bold)
$ret = "<strong>$ret</strong>";
if ($italic)
$ret = "<em>$ret</em>";
echo $ret;
}
//Suggested function:
function printhello(name: $name, fat: $bold = false, emphased: $italic = false)
{
// same body as above ...
}
This new function could be called like: printhello("Martin", true);
or like new: printhello(fat: true, name: "Martin");
Thank you.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Dec 11 18:00:01 2025 UTC |
There is no need to change the function declaration. Consider this syntax: printhello (bold => true, name => 'Martin'); and let the compiler translate it to printhello ('Martin', true) given the traditional declaration.I would like to suggest the following syntax: function f ($un1, $un2, $un3 = 'default', 'hello' => 'goodbye', 'planet' => 'earth') { # $_FUNCARGS is a magic local short-hand for func_get_args() var_dump($_FUNCARGS); } When called as: f('one', 'named' => 'param', 'two', 5 => 'works', 'hello' => 'world', 'too'); ... the equivalent of this would happen behind the scenes: # (The order and position of the *named* parameters here are just # an example and not necessarily what PHP might implement) $_FUNCARGS = array(0 => 'one', 1 => 'two', 2 => 'default', 5 => 'works', 6 => 'too', 'named' => 'param', 'hello' => 'world', 'planet' => 'earth'); $un1 = &$_FUNCARGS[0]; $un2 = &$_FUNCARGS[1]; $un3 = &$_FUNCARGS[2]; The bottom line is that the parameters look like an array(), with both numeric and string keys, in any order, just like an array. For readability, developers should probably put the unnamed parameters before the named parameters just as a matter of style (for both function calls and declarations), but the PHP engine should take them as they come.