|
|
|
| Здравствуйте. Я хочу понять и научиться передавать параметры в функцию в зависимости от выбора пользователя того или иного значения.
Вот у меня есть несколько списков типа <select>. После нажатия на кнопку отправить, в переменные заносятся выбранные значения, из <select> типа
if ($_POST ["ok"]=="ok") {
$q = $_POST['book'];
$ott = $_POST['ot'];
$usr = $_POST['us']; }
|
Дополнительно проверяется ещё одна выборка
f (isset($_POST['exp'])) {
$exper = $_POST['exp'];
if ($exper=="1") {
function my ($k1=1.50) {
global $q,$ott,$usr;
if ($q=="первое значение из селект") {$k2=1.00;}
elseif ($q=="второе значение из селеки") {$k2=1.14;}
if ($ott=="первое значение из селект") {$k3=1.12;}
elseif ($ott=="второе значение из селект") {$k3=1.84;}
return $k1*$k2*$k3;
}
} elseif ($exper=="2") {
function my ($k1=1.35) {
return $k1*$k2*$k3;
}
|
Функция большая и что бы не писать всё заново, я хотел в зависимости от $exper менять параметр function my ($k1) или другой параметр если нужно. Но вот в таком примере return мне возвращает 0. А если убрать $k1 из return то перемножает и возвращает как надо. $k1 получается 0 ? Я думал я ей тут даю значение function my ($k1=...)..? | |
|
|
|
|
|
|
|
для: Q012
(21.01.2012 в 18:11)
| | Выведите на экран значение переменной $exper. | |
|
|
|
|
|
|
|
для: Киналь
(21.01.2012 в 18:25)
| | переменная $exper выводит мне на экран 1 или 2 в зависимости от того что выбрал пользователь в селект,.
и переменные $q,$ott,$usr; перемножаются в зависимости от выбора в селект, а вот $k1 при умножении на них в сумме даёт 0. | |
|
|
|
|
|
|
|
для: Q012
(21.01.2012 в 21:40)
| | Вот этот код получен из вашего заменой входных данных на заглушки; он работает и выводит ненулевые результаты. Судя по всему, у вас что-то не так со входными данными.
<?php
$exper = "1";
if ($exper=="1")
{
function my ($k1=1.50)
{
global $q,$ott,$usr;
$q = "2"; $ott = "3";
if ($q== "2") {$k2=1.00;}
elseif ($q=="второе значение из селеки") {$k2=1.14;}
if ($ott=="3") {$k3=1.12;}
elseif ($ott=="второе значение из селект") {$k3=1.84;}
echo 'k1: '.$k1.'; k2: '.$k2.'; k3: '.$k3.'<p>';
return $k1*$k2*$k3;
}
}
elseif ($exper=="2")
{
function my ($k1=1.35)
{
return $k1*$k2*$k3;
}
}
echo 'Результат функции my(): '.my();
?>
|
PS Очень советую аккуратно и тщательно форматировать код. Наглядность повышается, отладка упрощается. | |
|
|
|