Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Небольшая проблемка с функцией
 
 автор: diman   (22.12.2006 в 10:35)   письмо автору
 
 

Есть такая функция

// Предоставление скидки
  function Discounts($sum)
  {
     if ($sum>=100 and $sum<300) {$sum=$sum-$sum*0.01; $proc=1;}
     elseif ($sum>=300 and $sum<700) {$sum=$sum-$sum*0.03; $proc=3;}
     elseif ($sum>=700 and $sum<1500) {$sum=$sum-$sum*0.05; $proc=5;}
     elseif ($sum>1500) {$sum=$sum-$sum*0.1; $proc=10;}
     return $sum;
     return $proc;
  }


Мне нужно получить данные подсчета процентов.
Ввожу в коде
Discounts($sum);
Ну и для проверки подсчета вывожу переменную $sum.
У меня выводится только старое значение, которое было помещено в функцию, а подсчитанное не выдается. Где я что-то не так делаю? Объясните пожалуйста.

И еще. У меня сейчас с собой нет справочника функций. Не подскажите функцию округления числа.

   
 
 автор: AlexelA   (22.12.2006 в 11:22)   письмо автору
 
   для: diman   (22.12.2006 в 10:35)
 

Обратите внимание на возвращаемые значения функции:
return $sum;
return $proc;
Функция может вернуть значение только один раз за время
своей работы, т.е. в данном случае сработает первый попавшийся
return. Он у вас и возвращает $sum.
Как вариант замените два ваших return'а на:

return($sum." - ".$proc);

Функции округления :
float ceil ( float value ) - округление в большую сторону
float round ( float val [, int precision] ) - возвращает округлённое
значение val с указанной точностью precision (количество цифр после запятой).

   
 
 автор: diman   (22.12.2006 в 11:31)   письмо автору
 
   для: AlexelA   (22.12.2006 в 11:22)
 

Спасибо, хотя уже сам догодался. У меня правда немножко другая проблемка. А если мне надо бы каждый элемент вывести отдельно, т. е. каждый элемент ($sum и $proc) как отдельные переменные. Это возможно?

P.S. А в общем и так сойдет. Ведь из этой строчки можно вырезать всё что мне требуется.

   
 
 автор: AlexelA   (22.12.2006 в 11:40)   письмо автору
 
   для: diman   (22.12.2006 в 11:31)
 

Выводит два этих значения в массиве, а затем разбираете массив по элементам.
Например:

function Discounts($sum)
  {
     if ($sum>=100 and $sum<300) {$sum=$sum-$sum*0.01; $proc=1;}
     elseif ($sum>=300 and $sum<700) {$sum=$sum-$sum*0.03; $proc=3;}
     elseif ($sum>=700 and $sum<1500) {$sum=$sum-$sum*0.05; $proc=5;}
     elseif ($sum>1500) {$sum=$sum-$sum*0.1; $proc=10;}
     $mas['sum'] = $sum;
     $mas['proc'] = $proc;
     return $mas;
  }
$res = Discounts(400);
$sum = $res['sum'];
$proc = $res['proc'];

   
 
 автор: Diman   (22.12.2006 в 12:36)   письмо автору
 
   для: AlexelA   (22.12.2006 в 11:40)
 

Да, так будет лучше.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования