Мне нужно взять одно значение, выполнить с ним определенные манипуляции и в итоге получить 5 переменных со значениями. Могу ли я в этом случае создать функцию PHP?
function func($input_data){
$a = $input_data + 1;
$b = $input_data + 2;
$c = $input_data + 3;
$d = $input_data + 4;
$e = $input_data + 5;
return $a;
return $b;
return $c;
return $d;
return $e;
}
// И далее просто использовать переменные
$new = $e * 10;
echo $new;
Спустя 18 минут, 49 секунд (17.01.2011 - 20:39) SlavaFr написал(а):
return можно в функции использовать только один раз.
Ты можеш ввести твои значения в масив (array) и после этого зделать ретурн
Ты можеш ввести твои значения в масив (array) и после этого зделать ретурн
Спустя 1 минута, 9 секунд (17.01.2011 - 20:40) alex12060 написал(а):
function func($input_data){
$a = $input_data + 1;
$b = $input_data + 2;
$c = $input_data + 3;
$d = $input_data + 4;
$e = $input_data + 5;
return $e;
}
// Вот так гуманнее)
$e = func(10);
$new = $e * 10;
echo $new;
Спустя 26 минут, 28 секунд (17.01.2011 - 21:06) Гость_User написал(а):
Спасибо.
Значит, если при использовании функции на выходе множественные данные, то надо загнать все в ассоциативный массив.
... А классы не удобнее будет использовать?
Значит, если при использовании функции на выходе множественные данные, то надо загнать все в ассоциативный массив.
function func($input_data){
$a = $input_data + 1;
$b = $input_data + 2;
$c = $input_data + 3;
$d = $input_data + 4;
$e = $input_data + 5;
return $result = compact("a", "b", "c", "d", "e");
}
// Использование
$final = func(1);
echo ($final['b']);
... А классы не удобнее будет использовать?
Спустя 38 секунд (17.01.2011 - 21:07) Гость_User написал(а):
Опечатка:
Значит, если при использовании функции на выходе НУЖНЫ множественные данные, то надо загнать все в ассоциативный массив.
Значит, если при использовании функции на выходе НУЖНЫ множественные данные, то надо загнать все в ассоциативный массив.
Спустя 16 минут, 22 секунды (17.01.2011 - 21:23) Invis1ble написал(а):
Гость_User
Цитата |
А классы не удобнее будет использовать? |
а причем здесь классы? =)
Спустя 4 минуты, 5 секунд (17.01.2011 - 21:28) Гость_User написал(а):
Упаковываю все в класс и получаю доступ к данным с помощью одной строчки.
Спустя 6 минут, 25 секунд (17.01.2011 - 21:34) Invis1ble написал(а):
Гость_User
ну echo 'Hello, World'; тоже можно в класс завернуть )
ну echo 'Hello, World'; тоже можно в класс завернуть )
Спустя 12 минут, 45 секунд (17.01.2011 - 21:47) Гость_User написал(а):
Можно, но не нужно. )
Я про суть, принципы спрашиваю.
Модель с пятью переменными, естественно, упрощенная.
Я про суть, принципы спрашиваю.
Модель с пятью переменными, естественно, упрощенная.
Спустя 11 минут, 2 секунды (17.01.2011 - 21:58) Invis1ble написал(а):
Гость_User
Тебе уже сказали один из путей - возвращай в виде массива. Есть еще один способ, но я бы не советовал:
Тебе уже сказали один из путей - возвращай в виде массива. Есть еще один способ, но я бы не советовал:
function func($data)
{
global $a, $b;
$a = $data + 1;
$b = $data + 2;
}
$data = 10;
func($data);
var_dump($a);
var_dump($b);
Спустя 28 минут, 44 секунды (17.01.2011 - 22:26) sergeiss написал(а):
Есть еще метод - передача параметров по ссылке. Аналогично тому, как в Си делается. Можно передавать как массивы, так и переменные. Любые изменения внутри функции указанных параметров приведут к изменению оригинальных переменных.
Пример с массивом:
Можно часть параметров передать по ссылке, а часть - "как обычно".
Пример с массивом:
$arr=array( 1, 2, 3, 4, 5);
print_r( $arr );
echo '<br>';
f( $arr );
print_r( $arr );
function f( &$a )
{
$a[3]=10;
}
Можно часть параметров передать по ссылке, а часть - "как обычно".