Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите реализовать логику
 
 автор: serjinio   (18.08.2009 в 21:32)   письмо автору
 
 

есть 4 переменные : $a, $b, $c , $d
если нет никакой переменной :выполняем действие 1
если есть только $a : выполняем действие 2
если есть только $a  и $b : выполняем действие 3
если есть только $a  и $b  и  $c: выполняем действие 4
если есть только $a  и $d : выполняем действие 5
если есть только $d : выполняем :
switch ($d) 
{
    case '1': выполняем действие 6;  break;
    case '2': выполняем действие 7;  break;   
    case '3': выполняем действие 8; break;        
    case '8': выполняем действие 9;  break;        
}

что-то через isset и if совсем запутался...

  Ответить  
 
 автор: heed   (18.08.2009 в 22:16)   письмо автору
 
   для: serjinio   (18.08.2009 в 21:32)
 

откуда берутся переменные ?
почему так беспорядочно нужно проверять ?

можно понять и так , но в словах не всё сказано
<?
if (isset($a)) {
 if (isset(
$d)) {
  
//действие 5 
 

 else if (isset(
$b)) {
  if (isset(
$c))  //действие 4
  
else // действие 3 
 
}
 else 
// действие 2
}
else if (isset(
$d) && !isset($b) && !isset($c)) {
 switch (
$d)  
 { 
    case 
'1'выполняем действие 6;  break; 
    case 
'2'выполняем действие 7;  break;    
    case 
'3'выполняем действие 8; break;         
    case 
'8'выполняем действие 9;  break;         
 }
}
else if (!isset(
$d) && !isset($b) && !isset($c)){
 
// действие 1
}

  Ответить  
 
 автор: neadekvat   (18.08.2009 в 22:27)   письмо автору
 
   для: serjinio   (18.08.2009 в 21:32)
 

> есть 4 переменные : $a, $b, $c , $d
так вы говорите сначала
> если нет никакой переменной :выполняем действие 1
так вы говорите потом.

Конкретизируйте как-то.

  Ответить  
 
 автор: serjinio   (18.08.2009 в 23:31)   письмо автору
 
   для: neadekvat   (18.08.2009 в 22:27)
 

Всё просто, это разбор алиасов URI
прошедших через шаблон модревайта , просто не хотел слишком запутывать в условиях
если нет никакой переменной :выполняем действие 1-это значить мы находимся в корневой директории "/" либо хидером редиректим в корень т.е на index.php
при наличии определенных переменных производится разная выборка из Бд те проверяются алиасы с тем что находится в бд...если условия не совпадают то редирект на 404 ,если совпадают то выбираем нужные данные...
почему беспорядочно ..потому что кроме стандартного вида ссылок типа /section/category/page
существуют и другого типа ссылки типа /rss.html ../contact.html и тд..

  Ответить  
 
 автор: heed   (19.08.2009 в 00:36)   письмо автору
 
   для: serjinio   (18.08.2009 в 23:31)
 

стало ещё непонятнее копаться в пространстве имён )

,но в вышенаписанном
switch ($d) запускается только если из четырёх переменных установлено одно $d

можно вместо else if (isset($d) && !isset($b) && !isset($c)) { switch ($d)
сделать if (isset($d)) , если не важно установлено ли ещё что-то кроме $a

и тогда следующей проверкой не будет снова проверяться $d
останется else if ( !isset($b) && !isset($c)){
// действие 1 , ни одной переменной не установлено
;------------------------------------

и под // действие 2 попало кроме только установленной $a , ещё и установленныя $a и $c

больше ничего не заметил .)

  Ответить  
 
 автор: serjinio   (19.08.2009 в 07:06)   письмо автору
 
   для: heed   (19.08.2009 в 00:36)
 

heed ,спасибо , все состыковалось....
if (!isset($d) && !isset($b) && !isset($c))
можно компактней ( для isset )
!isset($d,$b,$c)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования