Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как формировать плавающее количество switch в конструкции case-switch

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
webbaster
Отправлено: 28 Ноября, 2014 - 07:12:45
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Март 2011  
Откуда: Санкт-Петербург


Помог: 0 раз(а)




Всем привет!
Вопрос такой. Мне нужно написать код с использованием конструкции case-switch. Проблема в том, что количество положений переключателя switch должно быть равно количеству записей в таблице БД, которое может со временем меняться. То есть если записей в таблице 5, то должно быть:
CODE (htmlphp):
скопировать код в буфер обмена
  1. switch($exp) {
  2. case значение1:
  3. case значение2:
  4. . . .
  5. case значение5:


Если значений 7, то
CODE (htmlphp):
скопировать код в буфер обмена
  1. switch($exp) {
  2. case значение1:
  3. case значение2:
  4. . . .
  5. case значение7:

и т.д.

Поделитесь опытом, как это можно сделать?
Спасибо.
PS Использование конструкции case-switch обусловлено требованиями в CMS.

(Отредактировано автором: 28 Ноября, 2014 - 07:13:32)

 
 Top
DelphinPRO
Отправлено: 28 Ноября, 2014 - 07:59:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




вполне очевидно, что switch-case здесь не подходит.
давайте конкретнее описание задачи.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Мелкий Супермодератор
Отправлено: 28 Ноября, 2014 - 08:03:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




webbaster пишет:
Использование конструкции case-switch обусловлено требованиями в CMS.

Не обусловлено.
Заменяйте switch на более подходящий приём.


-----
PostgreSQL DBA
 
 Top
Sail
Отправлено: 28 Ноября, 2014 - 08:20:49
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




webbaster пишет:
PS Использование конструкции case-switch обусловлено требованиями в CMS.

Формировать код в отдельном файле. Этот файл подключать (include) в требуемом месте.
 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Ноября, 2014 - 09:29:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Или делать eval на лету
 
 Top
webbaster
Отправлено: 28 Ноября, 2014 - 23:29:47
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Март 2011  
Откуда: Санкт-Петербург


Помог: 0 раз(а)




Sail пишет:
Формировать код в отдельном файле. Этот файл подключать (include) в требуемом месте.

DeepVarvar пишет:
Или делать eval на лету

Оба метода хороши. Больше мне нравится первый, буду работать с ним.
Спасибо за совет!
 
 Top
DelphinPRO
Отправлено: 29 Ноября, 2014 - 00:03:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




webbaster пишет:
Оба метода хороши. Больше мне нравится первый, буду работать с ним.

ахренеть, насоветовали O_o


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
biperch
Отправлено: 29 Ноября, 2014 - 00:10:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




DelphinPRO пишет:
webbaster пишет:
Оба метода хороши. Больше мне нравится первый, буду работать с ним.

ахренеть, насоветовали O_o


серия из мультика про дурную мысль)
 
 Top
webbaster
Отправлено: 29 Ноября, 2014 - 09:09:24
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Март 2011  
Откуда: Санкт-Петербург


Помог: 0 раз(а)




А что не так?
 
 Top
Мелкий Супермодератор
Отправлено: 29 Ноября, 2014 - 09:37:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




А то, что если вы можете сами написать switch, значит вы его можете вообще не писать, а использовать адекватные и подходящие решения.


-----
PostgreSQL DBA
 
 Top
webbaster
Отправлено: 29 Ноября, 2014 - 09:42:56
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Март 2011  
Откуда: Санкт-Петербург


Помог: 0 раз(а)




webbaster пишет:
PS Использование конструкции case-switch обусловлено требованиями в CMS.

Лезть в ядро cms и править что-то там не оправдано, в данном случае.
Решение, которое ищу нужно для написания небольшого модуля.
 
 Top
Мелкий Супермодератор
Отправлено: 29 Ноября, 2014 - 09:52:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ещё раз. Если вы можете написать switch ($var) {} - вы не обязаны писать этот тупой switch. Вы можете написать всё что угодно вместо него, но выполняющее контракт этой cms'ки..


-----
PostgreSQL DBA
 
 Top
MAXUS
Отправлено: 29 Ноября, 2014 - 12:55:11
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011  


Помог: 7 раз(а)




webbaster пишет:

Поделитесь опытом, как это можно сделать?
Спасибо.
PS Использование конструкции case-switch обусловлено требованиями в CMS.


Мой совет - прислушаться к тем, кто говорит, что можно сделать не кейсами, и второй совет - сформулировать общую задачу, а не ее часть. В противном случае - это тупиковая ветка.


Отредактировано модератором: DeepVarvar, 29 Ноября, 2014 - 13:13:00
Чтобы не цитировать весь текст, надо выделить мышью нужные слова и жмакнуть кнопку "цитата"
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB