[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: О функциях PHP
Гость_User
Здравствуйте.
Мне нужно взять одно значение, выполнить с ним определенные манипуляции и в итоге получить 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) и после этого зделать ретурн

Спустя 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'; тоже можно в класс завернуть )

Спустя 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;
}

Можно часть параметров передать по ссылке, а часть - "как обычно".
Быстрый ответ:

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