Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Краткая запись условий

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (4): [1] 2 3 4 »   

> Без описания
n1k86
Отправлено: 13 Ноября, 2011 - 13:17:36
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Привет всем. Ребят, хочется мне вот узнать. Я всё стремлюсь к сокращению кол-ва кода...и созрел вот такой вопросик...
Можно ли кратко записывать такие условия, как:
PHP:
скопировать код в буфер обмена
  1. if (isset($_SESSION['id']) && isset($_SESSION['hash']))
  2. { лялялялял }else{ переадресация на главную }


или

PHP:
скопировать код в буфер обмена
  1. if($userdata['hash'] == $_SESSION['hash'] && $_SESSION['id'] == $_SESSION['id'])
  2.     { ляляля }else{ переадресация на главную }


Просто, например, у меня вот такой вот код:

PHP:
скопировать код в буфер обмена
  1. if (isset($_SESSION['id']) && isset($_SESSION['hash']))
  2. {
  3. $userdata = mysql_fetch_assoc(mysql_query("SELECT * FROM users WHERE id = '".intval($_SESSION['id'])."' LIMIT 1"));
  4.  
  5.     if($userdata['hash'] == $_SESSION['hash'] && $_SESSION['id'] == $_SESSION['id'])
  6.     {
  7.         echo "<div class='href'><a href='anketa.php?id=".$_SESSION['id']."'>Моя анкета</a></div>";
  8.         echo "<div class='href'><a href='editank.php'>Редактировать анкету</a></div>";
  9.         echo "<div class='href'><a href='setting.php'>Настройки</a></div>";
  10.         if ($_SESSION['adm'] == 2 || $_SESSION['adm'] == 3)
  11.         {
  12.             echo "<div class='href'><a href='/adm_panel/index.php'>Админ-панель</a></div>";
  13.         }
  14.         echo "<div class='href'><a href='exit.php?val=".$_SESSION['hash']."'>Выход</a></div>";
  15.  
  16.         echo "<div class='foot_nav'><img src='/style/img/item_back.png' /> <a href='/'>На главную</a></div>";
  17.         include_once '../foot.php';
  18.     }
  19. }


Я же хочу привести его к примерно вот такому виду...

PHP:
скопировать код в буфер обмена
  1. !isset($_SESSION['id']) && !isset($_SESSION['hash']) ? header('Location: /aut.php') : NULL;
  2. $userdata = mysql_fetch_assoc(mysql_query("SELECT id, hash, FROM users WHERE id = '".intval($_SESSION['id'])."' LIMIT 1"));
  3. $userdata['hash'] != $_SESSION['hash'] && $userdata['id'] != $_SESSION['id'] ? header('Location: /aut.php') : NULL;
  4.  
  5. echo "<div class='href'><a href='anketa.php?id=".$_SESSION['id']."'>Моя анкета</a></div>";
  6. echo "<div class='href'><a href='editank.php'>Редактировать анкету</a></div>";
  7. echo "<div class='href'><a href='setting.php'>Настройки</a></div>";
  8. $_SESSION['adm'] == 2 || $_SESSION['adm'] == 3 ? echo "<div class='href'><a href='/adm_panel/index.php'>Админ-панель</a></div>" : NULL;
  9. echo "<div class='href'><a href='exit.php?val=".$_SESSION['hash']."'>Выход</a></div>";
  10.  
  11. echo "<div class='foot_nav'><img src='/style/img/item_back.png' /> <a href='/'>На главную</a></div>";
  12. include_once '../foot.php';


Если такое возможно, то что я делаю не так? Подскажите, пожалуйста...

(Отредактировано автором: 13 Ноября, 2011 - 13:18:30)

 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 13:21:56
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




n1k86 пишет:
Можно ли кратко записывать такие условия, как:
ты уже ответил на свой вопрос. тернарный оператор...
(Добавление)
кратче некуда
 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 13:24:22
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Нет, я понимаю что можно. Но почему у меня тогда не работает? Где я ошибаюсь? Что-то пропускаю или что? Смотрел другие источники, про трехзначный оператор...ничего подобного ненашёл...подскажи, пожалуйста.
 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 13:33:20
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




n1k86 пишет:
трехзначный оператор
это
Bio man пишет:
тернарный оператор

тебе тернарный поможет если тело блока 1 строчка, иначе только проблем добавит... там более ифы у тебя вложенные
 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 13:37:34
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Я хотел просто сверху сделать проврку, чтобы если не было сессии или не сходились данные - отправляло авторизироваться или на главную. А потом выводить уже данные, если бы сошлось. Следовательно, если бы всё сошлось - он бы вывел...или я уже начал мечтать?)))))
 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 13:52:55
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




n1k86, тернарный оператор для кратких записей, типо ($user || ....) ? header('Location: truljalja') : header('Location: tumbajumba');
или
$uid = ($user['id']) ? $user['id'] : 0;
 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 13:54:04
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Условие обязательно брать в () или нет?????
 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 13:55:20
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




n1k86 пишет:
Условие обязательно брать в () или нет?????
нет, это для удобства
 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 13:56:17
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Хорошо) Большое тебе спасибо, что откликнулся. Раз ты тут, может скажешь, что относиться к Говнокоду, так сказать, и методы его искоренение? Пожалуйста.
 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 14:00:41
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




n1k86 пишет:
Хорошо) Большое тебе спасибо, что откликнулся. Раз ты тут, может скажешь, что относиться к Говнокоду, так сказать, и методы его искоренение? Пожалуйста.
это уже у каждого индивидуально и все приходит с опытом... посмотри курсы от специалиста, очень хорошие курсы
 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 14:03:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Ссылочку не подскажешь?)
 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 14:06:24
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




n1k86, на трекерах посмотри, я качал c rutracker.org

(Отредактировано автором: 13 Ноября, 2011 - 14:06:56)

 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 19:01:35
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Ребят, есть вот такой вот код....

Кодец)))) (Отобразить)


Тут как бы идёт повторение вроде...но вроде оно разное всё...может подскажите, как это можно всё сократить???? Пожалуйста....очень прошу...

(Отредактировано автором: 13 Ноября, 2011 - 19:01:58)

 
 Top
Bio man
Отправлено: 13 Ноября, 2011 - 19:31:37
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




глянул мельком... скажу одну не хорошую вещь - слишком много вывода! аутпут как и инпут желательно иметь один (или инпут == аутпут)... в вашем случае пишите контент в переменную и выводите ее echo'м где то в 1 месте... весь код читать не буду, лень
 
 Top
n1k86
Отправлено: 13 Ноября, 2011 - 19:32:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Не очень хорошо понял. Я новичек в этом деле...можно по подробнее?
 
 Top
Страниц (4): [1] 2 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB