Рано или поздно при разработке проектов возникает необходимость написания функций в языке программирования, которые будут возвращать не одно значение, а сразу несколько. В этой статье мы разберем пример на PHP. Будем работать с числами и выведем стоимость товара со скидкой и без скидки, а так же вычислим разницу и выведем ее тоже. Мы имеем входную стоимость и процент скидки товара, которые, как правило, устанавливаются из админки сайта. Напишем простейшую функцию, которая будет возвращать нам не одно значение, а, как вы наверное уже догадались, — массив значений, который мы можем легко вывести.
1
2
3
4
5
6
7
8
9
10
function getSalePrice($price,$percent){$sale=($price*($percent/100));$new_price=$price-$sale;return['sale'=>$sale,'new_price'=>$new_price,'price'=>$price];}
Предположим, что наш товар стоит 5300руб. и скидку на него мы установили 15%. Давайте так и запишем при вызове функции:
1
2
3
echo getSalePrice(5300,15)['sale']." | "// (795) Скидка в рублях.getSalePrice(5300,15)['new_price']." | "// (4505) Новая цена.getSalePrice(5300,15)['price'];// (5300) Старая цена без скидки
echo getSalePrice(5300, 15)['sale']." | " // (795) Скидка в рублях
.getSalePrice(5300, 15)['new_price']." | " // (4505) Новая цена
.getSalePrice(5300, 15)['price']; // (5300) Старая цена без скидки
Но можно возвращать и таким образом:
1
2
3
4
5
return[$price,$new_price,$price];
return [
$price,
$new_price,
$price
];
Только в этом случае обращение будет происходить не по названию ключа, а по его номеру:
1
getSalePrice(5300,15)[0];
getSalePrice(5300, 15)[0];
Здесь вопрос вкуса, ну и когда данных много, чтобы не запутаться, лучше именовать ключи, чтобы вам самим было потом проще в этом разобраться. Лично мне больше нравится первый вариант, так как читается гораздо легче. Надеюсь, что теперь вам более понятно, как вернуть несколько значений из функции. В крайнем случае возвращайте массив и просто обращайтесь по ключу.
Добавить комментарий