По верному пути ли я иду?..

ilkz

Новичок
По верному пути ли я иду?..

Есть шаблон, из которого в процессе работы выпарсиваются (во сказал :)) свои теги, например, вида [tag key=value].
Соответственно, далее стоит задача как-то определять реакцию движка на значения tag-key-value. Первая и пока что единственная мысль - бодяжить немыслимый switch-case. Но это же замучаешься? Хотя, может быть, другого пути и нет? Что скажете и посоветуете? Может быть, есть другие, более современные и интересные алгоритмы?
 

ilkz

Новичок
Что "array", простите? Все равно ведь придется где-то стравнивать значение элемента массива с образцом. В итоге - тот же switch или громадный if-else.

Может, есть что-нибудт почитать ?
 

bgm

 
Сравнивать придётся всё равно, но это число сравнений можно сократить:
имена функций, обрабатывающих определённые теги, заносятся в массив, где ключ - это имя тега, а значение - имя функции обработчика или массив ключей и соответствующих функций обработчиков. Собственно получаешь из этого массива нужное имя функции и вызываешь её ( http://www.php.net/manual/en/functions.variable-functions.php ).

Если захотеть "крутости", то можно использовать классы :)
 

ilkz

Новичок
Ух ты! Круто! То есть, теоретически, если этот алгоритм написан, для того, чтобы, например, добавить к определенному тегу определенное свойство - просто надо будет написать функцию (возможно, тоже несколько определенного формата)?
 

bgm

 
теоретически, если этот алгоритм написан, для того, чтобы, например, добавить к определенному тегу определенное свойство - просто надо будет написать функцию (возможно, тоже несколько определенного формата)?
:) Речь шла лишь о том, как проще обрабатывать вырезанные теги без кучи свитчей или ифов: сформировать массив ассоциаций, где ключ - имя тега, а значение - имя функции для обработки. А что делает эта функция - это уже не важно в контексте темы.
 
Сверху