Что лучше switch или $_GET

123
seosniks
На сайте с 13.08.2007
Offline
389
#11
дани мапов:
Без разницы. А почему "id=page2" ?

Да это первое что попалось в гугле ))))

---------- Добавлено 22.12.2012 в 17:05 ----------

TF-Studio:
Для админки (в данном случае):
switch, потому что будет много вариантов.
+ лучше POST использовать

А можно примерчик?

---------- Добавлено 22.12.2012 в 17:12 ----------

Stek:
swith - логическая конструкция
_get - принять параметр методом get

Я х.з. как можно выбрать лучшее, это совершенно разные конструкции.
get - принять параметр методом get

Ну да, но если добавить IF то так же будет логическая констукция.

if($_GET['action'] =="user") { Подключаем файл}

И еще вопрос, вот думаю как лучше сделать.

Один большой файл админки где все будет обрабатываться в одном файле.

Редактировать пользователей, добавлять новости и тд.

Или разницы нет?

Просто если к примеру вызовы делать так

файл index.php в нем

Делаем подключение кбазе данных, далее

через if либо switch подключаем файлы.

if($_GET['action'] =="user") {include_once('../inc/modules/user.php'); // файл пользователей

}

if($_GET['action'] =="setting") {include_once('../inc/modules/setings.php'); // файл настроек

далее каждый файл имеет свои задачи.

user.php имеет блоки

создать, изменить, удалить юзера.

setings.php

Изменить все настройки сайта в базе данных либо в файле, по желанию.

И так создавать нужное количество модулей.

---------- Добавлено 22.12.2012 в 17:18 ----------

vlad00777:
Делаю так, не знаю почему, все работает все устраивает.

Я так делал на первой своей кмс.

Работает без проблем и сбоев.

Главное в $_GET['dn']=""; получать только a-z либо 0-9 чтоб не попадал левый код.

остальное блокировать.

if($_GET['dn'] =="add")

Как по мне вполне удобно.

Tсли надо обрезать index.php?action=user

htqaccess использовать index.php?action=user заменить на site.ru/admin/user/

По сути да, каждый делает как ему удобно.

izbushka
На сайте с 08.06.2007
Offline
110
#12

Если вариантов выбора больше одно, то switch. На вызов каждой функции тратятся ресурсы. Если много if - больше ресурсов потребуется. Хотя, конечно, в ненагруженных проектах вы разницу никогда не заметите.

DiAksID
На сайте с 02.08.2008
Offline
236
#13
izbushka:
... На вызов каждой функции тратятся ресурсы. Если много if - больше ресурсов потребуется ...

поинтересуйтесь, чем "оператор" отличается от "функции" для интерпретатора PHP. видимо узнаете много нового для себя ;) ...

show must go on !!!...
siv1987
На сайте с 02.04.2009
Offline
427
#14
izbushka:
Если вариантов выбора больше одно, то switch. На вызов каждой функции тратятся ресурсы. Если много if - больше ресурсов потребуется. Хотя, конечно, в ненагруженных проектах вы разницу никогда не заметите.

case это та же конструкция if-ов (elseif), только в другой форме.

CN
На сайте с 29.09.2007
Offline
155
#15

Если кода мало то "switch case", а если кода внутри конструкции много то лучше "if".

А еще лучше взять например тот же CodeIgniter. Очень простой Framework.

seosniks
На сайте с 13.08.2007
Offline
389
#16
conturov.net:
Если кода мало то "switch case", а если кода внутри конструкции много то лучше "if".
А еще лучше взять например тот же CodeIgniter. Очень простой Framework.

Хотел взять, да изучать совсем нет времени.

Надо щас быстренько сваять небольшую доску.

задача доски.

добавление объявлений, и управление из админки.

Без наворотов.

К стати может у кого есть готовое решение, Только

не громоздкие скрипты типа scripto и тд, такие у самого есть.

Что нибудь не более 1 метра весом.))))

izbushka
На сайте с 08.06.2007
Offline
110
#17
DiAksID:
поинтересуйтесь, чем "оператор" отличается от "функции" для интерпретатора PHP. видимо узнаете много нового для себя ...
siv1987:
case это та же конструкция if-ов (elseif), только в другой форме.

switch on php.net

In a switch statement, the condition is evaluated only once and the result is compared to each case statement. In an elseif statement, the condition is evaluated again. If your condition is more complicated than a simple compare and/or is in a tight loop, a switch may be faster.

К тому же со switch можно делать так:

switch ($i) {
case "case 1":
echo "i is apple";
// no break here
case "case 2":
echo "i is bar";
break;
}

чего не сделаешь с elseif (правда, можно с if)

seosniks
На сайте с 13.08.2007
Offline
389
#18

Выбрал swich Он гораздо удобнее.

Поскольку если использовать

while, if выдает ошибку.

Благодарю всех За Вашу помощь.

VHS-1980
На сайте с 21.05.2010
Offline
91
#19
TF-Studio:
Для админки (в данном случае):
switch, потому что будет много вариантов.
+ лучше POST использовать

Охренеть, это придется для всех действий админки формы рисовать ))) ну нафиг.

ЛУЧШЕ использовать $_REQUEST.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#20

У меня лично все проекты через index.php сделаны, в котором идет инициализация всего что надо(коннекты, бла-бла-бла). А в нем уже по if/switch определяется какой файл инклудить.


$URI = substr($_SERVER['REQUEST_URI'], 1);//Убираем 1-ый слэш
if ( stripos($URI, '?') )//проверяем, есть ли ГЕТ параметры(на всякий случай)
{
$URI = explode('?',$URI);
$URI = array_shift($URI);
}
// /role/page/
$URI = explode('/', $URI);
if (count($URI) >= 2)
{
$role = $URI[0];
$page = $URI[1];
}
else
{
$role = 'user';
$page = 'login';
header('Location: /user/login');
}

if ( isset($role) AND $role == 'admin')
{
include 'admin/index.php';
}
elseif ( isset($role) AND $role == 'user' )
{
include 'user/index.php';
}
else
{
$Common->setError('Не верно указан пользователь',__LINE__,__FILE__,1);
}

В файлах 'admin/index.php'; и 'user/index.php'; аналогичным образом смотрим, какой файл надо инклудить, в зависимости от адресной строки. Ну а формы делаю с action=""(для браузера это значит текущий урл) и получаю постом, на эту же страницу приинклюженую, и так уже все это разруливается как надо(запись в базу, информирования юзера и т.д.)

Подпись))
123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий