| Вход Регистрация |
В функции PHP function() Вернуть несколько значенийЗначения в функции возвращаются с помощью оператора return. Оператор return является не обязательным, в случае его отсутствия, функция не возвратит никакого значения. <?php
$one = 2;
$two = 5;
function one_plus_two($one,$two)
{
$sum = $one + $two;
return $sum;
}
echo one_plus_two($one,$two); // вернет значение 7
?>
Может вернуть только одно значение, при чем переменная $sum за пределами функции не существует. Если же, Вам нужно вернуть именно переменную $sum сделать это можно, объявив ее глобальной (кстати, возвращение значения return $sum; можно опустить): <?php
$one = 2;
$two = 5;
function one_plus_two($one,$two)
{ global $sum;
$sum = $one + $two;
}
/*
Вызвать функцию все равно придется,
для того, что бы она создала глобальную переменную
и выполнила операцию сложения (в нашем случае)
*/
one_plus_two($one,$two);
echo $sum; // вернет значение 7
?>
Как Вы уже догадались, таким методом можно вернуть более одного значения вложенных в переменные: <?php
$one = 2;
$two = 5;
function one_and_two($one,$two)
{ global $sum;
global $min;
global $prod;
$sum = $one + $two;
$min = $one - $two;
$prod = $one * $two;
}
/*
Вызываем сначала функцию
*/
one_and_two($one,$two);
echo "Сумма: ".$sum.", Разница: ".$min.", Произведение: ".$prod;
/*
Все переменные и их значения нам доступны
*/
?>
Хотя более технически правильным для возврата в одной функции несколько значений делается это с помощью массива: <?php
function myBestFun()
{
return array (0, 1, 2);
}
// Функция возвращает массив
list ($zero, $one, $two) = myBestFun();
// Записываем в переменные значения, полученные в функции
echo $zero, $one, $two;
?>
Кроме значения, функция может, как мы уже знаем, возвращать массивы. Поэтому в функции можно вернуть массив, сформированный в функции: <?php
function funMakeArray(){
$ret = array();
$a = "Hello";
$b = "world";
$ret['a'] = $a;
$ret['b'] = $b;
return $ret;
}
print_r (funMakeArray());
?>
Категория статьи: Веб-программирование | Просмотров: 24405 | Добавлена: 13.03.2013
Почему Вы еще не прокомментировали? |
|