|
|
|
| Есть функция:
function name ($par1, $par2, $par3)
{
...
}
| Иногда мне нужно указать при вызове только $par1 и $par3, иногда только $par1 и $par2, иногда только $par3 и т.д. и т.п. Т.е. вариантов может быть уйма.
Можно ли при вызове функции не перечислять все параметры, а указать только лишь нужные, а остальные по умолчанию и так прописаны в функции, например;
echo name ($par1);
echo name ($par3);
echo name ($par1, $per2);
echo name ($par1, $par3);
...
|
| |
|
|
|
|
|
|
|
для: Maxam
(13.07.2011 в 22:42)
| | Задайте им по умолчанию пустые значения, вот так:
function name ($par1='', $par2='', $par3='')
{
...
}
|
| |
|
|
|
|
|
|
|
для: Maxam
(13.07.2011 в 22:42)
| | С учетом того, что написал Киналь, возможны первый и третий варианты. Второй и четвертый вариант в PHP невозможен (да и редко в каком C-подобном языке это возможно, пожалуй разве что в Python). | |
|
|
|
|
|
|
|
для: cheops
(13.07.2011 в 23:32)
| | Ясно, а можете что посоветовать в этом случае? Не хочется прописывать каждый раз все значения. Это в примере тут 3 параметра, а на самом деле их до 10 и больше может быть. | |
|
|
|
|
|
|
|
для: Maxam
(13.07.2011 в 23:34)
| | Передавайте один массив, проверяя в функции состояние его переменных, если где-то они не инициализированы - устанавливайте значение по умолчанию. | |
|
|
|
|
|
|
|
для: cheops
(13.07.2011 в 23:35)
| |
echo name(array ( $par1 , $par2 ));
| так? | |
|
|
|
|
|
|
|
для: Maxam
(15.07.2011 в 02:31)
| | http://php.su/functions/custom/?2
Там рассказывается довольно подробно в разделе «Переменное число аргументов в функциях» | |
|
|
|
|
|
|
|
для: iv4art
(16.07.2011 в 12:03)
| | Спасибо, интересно. | |
|
|
|
|
|
|
|
для: Maxam
(15.07.2011 в 02:31)
| | Не совсем, вам нужно создать ассоциативный массив
echo name(array ( "par1" => $par1 , "par3" = > $par3 ));
| В таком массиве вы всегда сможете определить, что параметр par2 отсутствует. | |
|
|
|
|
|
|
|
для: cheops
(16.07.2011 в 12:32)
| | Спасибо. | |
|
|
|