Подскажите, как вызвать функцию, имя которой хранится в строковой переменной?



  • Храню в базе BAS статусы сайтов. У каждого статуса есть одноименная функция. Мне нужно при запуске скрипта выполнить функцию привязанный к статусу.
    Можно выполнить так:
    if (a == b) {
    вызов функции
    }
    Но загвоздка в том, что этих функции планируется более 20 и скорее всего будут увеличиваться. Не хотелось бы отдельно вызывать функции и ставить условия if. И у меня возникает вопрос. Как вызвать функцию, имя которой храниться в строковой переменной? Если это не возможно, то напишите пожалуйста как реализовать более правильно.



  • @AllSee said in Подскажите, как вызвать функцию, имя которой хранится в строковой переменной?:

    }
    Но загвоздка в том, что этих функции планируется более 20 и скорее всего будут увеличиваться. Не хотелось бы отдельно вызывать функции и ставить условия if. И у меня возникает вопрос. Как вызвать функцию, имя которой храниться в строковой переменной? Если это не возможно, то напишите пожалуйста как реализовать более правильно.

    Статусы в список.
    И после перебором списка, так как по мне будет удобнее.
    Либо через БД.



  • @Dodok В любом случае мне нужно будет вызвать все функции по отдельности. А это не комильфо



  • @AllSee тогда через бд, и строкой содержит, если в бд есть делаем, нет не делаем... там 1 действие.

    Более конкретный пример можно или набросок какой, а то как воду в ступе месим.



  • @Dodok В БД храниться таблица с сайтами
    id:status:url

    Скажем, есть несколько статусов

    1. open
    2. closed
    3. и тд

    Если статус open вызвать функцию open.
    Если статус closed вызвать функцию closed
    и тд.
    Получается у каждого статуса есть свая функция

    Теперь, если этих функций и статусов скажем будет больше 50 то как быть. Мне кажется бессмысленно делать вот так:
    if (status == open) {
    вызвать функцию open
    }
    if (status == closed) {
    вызвать функцию closed
    }
    И тд.
    И таких будет 50

    Теперь, скажем есть переменная в котором содержится статус "open" и во время вызова функции вставить эту переменную вместо название, этих геморроев не было бы.


Log in to reply