Объединение однотипных операций

aaachilov

Новичок
Приветствую!
Я уже наверное всем надоел своими частыми вопросами, но все же..........

Подскажите - объеденив в один файл несколько задач появился такой вопрос.

примерная структура файла
PHP:
if($method == 0) {
оперция 1;
оперция 2;
оперция 3;
}

if($method == 1) {
оперция 1;
оперция 2;
оперция 3;
}
и так далее
Смысл в том, что "оперция 1" одинаковая почти во всех методах = проверка на наличие совпадения через запрос к базе в итоге одинаковые куски кода.

Есть ли варианты объеденить это действие?
Можно конечно в функцию вынести - но из неё я не знаю как обратиться к классу для работы с бд, а напрямую писать запросы как то не хочется....

Заранее благодарю за советы...
 

aaachilov

Новичок
например функция
PHP:
function DialoguePresence($xx) {
	$result = $db->query("SELECT `aa` FROM `bb` WHERE `cc` = '".$xx."' ");	
	$xx = $db->fetch_array($result);
	return $xx;
}
интерпритатор ругается
Call to a member function query() on a non-object
на $db->
 

SkyLine

Новичок
Можно конечно в функцию вынести - но из неё я не знаю как обратиться к классу для работы с бд, а напрямую писать запросы как то не хочется....
Если класс статический, то можно так-же как и в основной программе, например:
PHP:
DB::Query()
Если создается объект, то передать в параметрах функции ссылку на этот объект, например:
PHP:
function op1 ($db, $params) {
$db->Query ($query);
//и т.д.
}

$db = new DB();

if($method == 0) {
$result = op1($db, $params);
//оперция 2;
//оперция 3;
}

if($method == 1) {
$result = op1($db, $params);
//оперция 2;
//оперция 3;
}
P.S. В РНР5, при передаче объекта в параметрах, передается ссылка на него, а не копия.
 

Adelf

Administrator
Команда форума
я бы тоже заменил на switch...
Я бы взял фреймворк, в котором подавно есть controller and actions. Скорее всего именно это ТС пытается реализовывать.

aaachilov
будет время свободное, попробуйте посмотреть простенький фреймворк... Kohana например(очень легкий старт). Ооооочень на многие задачи будет совсем другой взгляд. А многие задачи просто исчезнут, ибо давно уже реализованы другими людьми.
В том числе и обозначенная выше. Грамотная работа с БД есть во всех хороших фреймворках.
 
Сверху