
Рано или поздно при разработке проектов возникает необходимость написания функций в языке программирования, которые будут возвращать не одно значение, а сразу несколько. В этой статье мы разберем пример на 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
];
} |
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];
Здесь вопрос вкуса, ну и когда данных много, чтобы не запутаться, лучше именовать ключи, чтобы вам самим было потом проще в этом разобраться. Лично мне больше нравится первый вариант, так как читается гораздо легче. Надеюсь, что теперь вам более понятно, как вернуть несколько значений из функции. В крайнем случае возвращайте массив и просто обращайтесь по ключу.
Добавить комментарий