Я слежу за процедурно-ориентированным программированием
function getTest($p1='', $p2='', $p3='')
{
return ('$p1='.$p1.' : $p2='.$p2.' : $p3='.$p3);
}
Вместо вызова функции ниже,
echo getTest($p1='para 1', '', '');
echo getTest('', $p2='para 2', '');
echo getTest('', $p2='para 2', $p3='para 3');
Я хочу использовать метод ниже
echo getTest($p1='para 1');
echo getTest($p2='para 2');
echo getTest($p3='para 3');
Текущий результат
$p1=para 1 : $p2= : $p3=
$p1=para 2 : $p2= : $p3=
$p1=para 3 : $p2= : $p3=
ожидаемый результат
$p1=para 1 : $p2= : $p3=
$p1= : $p2=para 2 : $p3=
$p1= : $p2= : $p3=para 3
Как я могу получить результат на основе заданного параметра?
Моя цель состоит в том, чтобы функция идентифицировала имя переменной и продолжала, а не продолжала использовать порядок параметров.
function getTest($args = array())
{
$arg1 = isset($args['arg1']) ? $args['arg1'] : "";
$arg2 = isset($args['arg2']) ? $args['arg2'] : "";
$arg3 = isset($args['arg3']) ? $args['arg3'] : "";
return ('$p1='.$arg1.' : $p2='.$arg2.' : $p3='.$arg3);
}
// now simply call function..
$para= array("arg1"=>"para 1",
"arg2"=>"para 2",
"arg3"=>"para 3");
$para2= array("arg2"=>"para 2",
"arg3"=>"para 3");
$para3= array("arg3"=>"para 3");
echo getTest($para);
echo getTest($para2);
echo getTest($para3);
Вы можете добиться этого, передав массив в качестве аргумента, как в следующем примере
function foo($args)
{
print "named_arg1 : " . $args["named_arg1"] . "\n";
print "named_arg2 : " . $args["named_arg2"] . "\n";
}
foo(array("named_arg1" => "arg1_value", "named_arg2" => "arg2_value"));
Php не поддерживает именованные аргументы