Как вернуть из функции несколько значений в PHP

    Комментариев нет 1711

phpfunction

Рано или поздно при разработке проектов возникает необходимость написания функций в языке программирования, которые будут возвращать не одно значение, а сразу несколько. В этой статье мы разберем пример на PHP. Будем работать с числами и выведем стоимость товара со скидкой и без скидки, а так же вычислим разницу и выведем ее тоже. Мы имеем входную стоимость и процент скидки товара, которые, как правило, устанавливаются из админки сайта. Напишем простейшую функцию, которая будет возвращать нам не одно значение, а, как вы наверное уже догадались, — массив значений, который мы можем легко вывести.

Телеграм-канал serblog.ru

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) Старая цена без скидки

Но можно возвращать и таким образом:

1
2
3
4
5
return [
	$price,
	$new_price,
	$price
];

Только в этом случае обращение будет происходить не по названию ключа, а по его номеру:

1
getSalePrice(5300, 15)[0];

Здесь вопрос вкуса, ну и когда данных много, чтобы не запутаться, лучше именовать ключи, чтобы вам самим было потом проще в этом разобраться. Лично мне больше нравится первый вариант, так как читается гораздо легче. Надеюсь, что теперь вам более понятно, как вернуть несколько значений из функции. В крайнем случае возвращайте массив и просто обращайтесь по ключу.

Любая сумма на развитие сайта

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *