[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: функция с N-аргументами...
MatrixGod
всем даров!

вопщем такой вапросег:
надо объявить функцию которая будет принимать неизвестное кол-во аргументов.

к примеру, нужна функция которая складывает все агрументы которые были получены и возвращает результат, вне зависимости от их кол-ва:
function sum($x, $x1, $x2, $x3, $xN)
{
$res = $x + $x1 + $x2 + $x3 + $xN;
return $res;
}


возможно ли?



Спустя 17 минут, 29 секунд (20.05.2010 - 22:14) ApuktaChehov написал(а):
А почему не передать ей массив? Конечно возможно. Пусть складывает элементы массива друг с другом.

P.S. Такая функция уже есть wink.gif

Спустя 4 минуты, 12 секунд (20.05.2010 - 22:18) Lenarfate написал(а):
и тебе даров!
вобщем такой ответег:

попробуй аргументом функции давать массив, а потом применяй к нему array_sum().
то есть, если у тебя в массиве будут значения 2, 5, 3, то результатом после array_sum будет, соответственно, их сумма = 10

Спустя 6 минут, 36 секунд (20.05.2010 - 22:25) MatrixGod написал(а):
складывание значений я привел как пример, это просто.
а если мне нужно поизвращаться с этими аргументами? тоесть использовать более сложные структуры, что тогда?

кстати, массив не всегда получится сделать...

Спустя 1 минута, 7 секунд (20.05.2010 - 22:26) Lenarfate написал(а):
ну так извращайся, функций по работе с массивами полным полно
http://php.su/functions/?cat=array

Спустя 3 минуты, 41 секунда (20.05.2010 - 22:30) MatrixGod написал(а):
ок, как тогда объявить функцию чтоб все ее аргументы ушли в массив?

Спустя 1 минута, 12 секунд (20.05.2010 - 22:31) Lenarfate написал(а):
function(a = array())

ну и мутишь там

Спустя 1 минута, 23 секунды (20.05.2010 - 22:32) MatrixGod написал(а):
допустим, есть такая задачка:
обработчик выбирает рендомальное количество чисел в диапозоне от 1 до 100.
и каждому из них присваевает рендомально значение от 1 до 100.
выводит все эти числа и их сумму.

как подобное сделать?

Спустя 6 минут, 43 секунды (20.05.2010 - 22:39) Lenarfate написал(а):
массивы и рандом в помощь)

Спустя 9 минут, 53 секунды (20.05.2010 - 22:49) MatrixGod написал(а):
Lenarfate
мне дельный совет нужен...
в мануалах я тоже копаться умею.
у меня проблема, не знаю как решить...

Спустя 9 минут, 31 секунда (20.05.2010 - 22:59) ApuktaChehov написал(а):
Если я правильно все понял, то как то так.
$rand = rand(1, 100);
for($i = 0; $i < $rand; $i ++)
{
res_arr[$i] = rand(1, 100);
}


Получиться случайное кол-во числе со случайными значениями.
Правда, я бы все же, использовал функцию mt_rand();

Спустя 6 минут, 58 секунд (20.05.2010 - 23:05) MatrixGod написал(а):
ApuktaChehov
да, ты прав, задачка простенькая.

но топик создавался вот собсно зачем:
возможно я с самого начала не правильный пример привел и всем показалось что речь идет о каких-то математических действиях.
на самом деле все не так...
function writer($str, $color, $size, $font, $decoration)
{
тело функции...
}

надо чтоб если дано writer($str); то просто бы выводилась эта переменная.
ну а если было бы writer($str, $color); - правильно, выводилась бы эта переменная в заданном цвете. ну а если были бы все аргументы надо было бы вывести текст в зависимости от тех аргументов которые получила функция.

вот как такое сделать?

Спустя 14 минут, 45 секунд (20.05.2010 - 23:20) ApuktaChehov написал(а):
Сделайте так:

writer($str, $color = NULL, $size = NULL, $font = NULL, $decoration = NULL)


В этом случае если вы вызовите функцию только с первым параметром, остальные примут значения NULL. А в теле функции можно проверить, что из себя представляют остальные параметры из из этого делать выводы.

Спустя 2 минуты, 59 секунд (20.05.2010 - 23:23) MatrixGod написал(а):
ApuktaChehov
слава богу, это именно то что и было нужно.
спасибо! wink.gif

Спустя 1 минута, 27 секунд (20.05.2010 - 23:25) ApuktaChehov написал(а):
Всегда пожалуйста. Можно было так же и с массивом сделать. Проверять существуют ли элементы переданного массива и из этого делать выводы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.