Аргументы функций

Аргументы функций

Здравствуйте!

Возникла потребность в таком

PHP:
//......

function probe($arg1="1",$arg2="2")
{
echo "\$arg1 => ".$arg1."<br>";
echo "\$arg2 => ".$arg2."<br>";
}

//......
Скажите как можно изменить $arg2, не изменяя $arg1 при вызове функции, пробовал:
- probe(' ',"Hello"); // $arg1 => $arg2 => Hello
- probe(,"Hello"); // Parse error - ясен пень
- probe($arg2="Hello"); // $arg1 => Hello $arg2 => 2

P.S.: Поиск ("Аргумент") подобной темы не надыбал, даже в мануале не нашел в разделе "Функции".
 
Фанат
Все-таки не хочеться.
phprus
Значит будем искать другой метод.

Извините за напросно затраченое время и за ненужную темку.
 

phprus

Moderator
Команда форума
Curly-fingers
Можно передавать параметры в виде массива. в котором ключи - это имена параметров. В самой функции придется хранить массив параметров по умолчанию, а итоговый массив параметров придется получать путем объеделения массива параметров по умолчанию с массивом переданным в качестве аргумента функции.
 
Сергей Тарасов
Всё phprus правильно написал. Использую n-ное время такую конструкцию и ничего, работает. Но вот себе новую проблему придумал, решил эту конструкцию переделать "слегка" :). Всё равно спасибо.

phprus
Спасибо за ответ. Юзаю примерно то, что Вы написали.
 

Solid

Drosera anglica
Правильно, WP, говорит. Так и делайте. В PHP многие функции так и работают (к примеру, таким образом в file_get_contents() можно обойти опционные агументы через null до offset или maxlen).
 

Андрейка

Senior pomidor developer
Solid
какой же "опционный аргумент" вы умудрились "обойти" в функции file_get_contents ?
 

Wicked

Новичок
Андрейка
bool use_include_path и resource context, естественно. Ты иногда поражаешь глупостью своих вопросов.
 

Андрейка

Senior pomidor developer
Wicked
о да.. я ведь думал, что
file_get_contents(name, null, null, null, null)
равносильно
file_get_contents(name, (bool)null, null, (int)null, (int)null); ===
file_get_contents(name, false, null, 0, 0);
а на самом то деле оно "опционные агрументы" пропускает... кста, maxlen наверное не "опционный аргумент", да? чет его не пропустило
 
Сверху