Попробуйте это:
$methods = array(
"weather" => function() {
// code
},
"otheroption" => function() {
}
);
Просто используйте $ var ["type"] в качестве индекса в массиве, чтобы получить функцию:
$methods[$var["type"]]();
Вы можете, конечно, для лучшей читаемости сделать что-то похожее:
$methods = array(
"weather" => "wheater_function",
"otheroption" => "other_function"
);
, а затем вызвать функции следующим образом:
call_user_func($methods[$var["type"]]);
Чтобы быть еще более объектно-ориентированным, мы, очевидно, можем хранить в массиве объекты, реализующие определенный интерфейс, или сохранять объект, изменяющий магический метод __call (), и использовать его как функции.