[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Можно-ли так вызывать функции из switch?
grisha2013
У меня есть задача, сделать определенный расчет по соответствующей формуле в зависимости от настроек.
Можно-ли вызывать прямо из switch функции которые должны вывести результат расчета?

switch($value)
{
case 1: return $result = myFunc_1();
break;

case 2: return $result = myFunc_2();
break;

case 3: return $result = myFunc_3();
break;

default: return $result = myFunc_0();
break;
}
DedMorozzz
Можно, а чего и нет?
Только не ретёрном

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
grisha2013
А как?

А, ну да, точно, return-же в функциях используется. Перегрелся немного. :D
switch($value)
{
case 1: $result = myFunc_1();
break;

case 2: $result = myFunc_2();
break;

case 3: $result = myFunc_3();
break;

default: $result = myFunc_0();
break;
}
kaww
grisha2013, ваша запись сама по себе не имеет особого смысла, т.к. возвращается результат операции присвоения, т.е. всегда true, и break в в случае с return не нужен, до него выполнение никогда не дойдет. Вам нужно так ?:

some_func($value)
{
switch($value)
{
case 1:
return myFunc_1();

case 2:
return myFunc_2();

case 3:
return myFunc_3();

default:
return myFunc_0();
}
}
grisha2013
Мне нужно получить результат расчета из соответствующей функции. В функции еще будут передаваться параметры на основе которых будет происходить расчет с возвращением результата в виде массива с данных.
Далее этот массив отправится в sql-запрос на обновление данных в базе.
Т.е. я в зависимости от настроек вызываю нужную функцию, передаю ей параметры, получаю массив с результатами и этот массив использую в sql-запросе. Правильно мыслю?
twin
Цитата (kaww @ 5.08.2013 - 14:00)
т.к. возвращается результат операции присвоения, т.е. всегда true,

Почему это?

Вот так посмотри что будет:

echo $result = htmlspecialchars('строка');


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
grisha2013
Есть такая штука, назывется "фабрика". Там тебе пока нужен принцип, не смотри на ООП. Принцип такой:

$funct = 'myFunc_'. $value;

$result = $funct();
И усё.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
grisha2013
Спасибо. Я просто для примера именовал их как _1, _2 и т.д., на самом деле там будут уникальные названия со смыслом. Но спасибо за подсказку, в дальнейшем пригодится такое простое и гениальное решение. А может действительно так и сделаю сразу. smile.gif
kaww
Цитата (twin @ 5.08.2013 - 14:14)
Почему это?

согласен, х*рню написал )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.