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
Форумы портала PHP.SU :: Версия для печати :: Краткая запись условий
Форумы портала PHP.SU » » Вопросы новичков » Краткая запись условий

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

1. n1k86 - 13 Ноября, 2011 - 13:17:36 - перейти к сообщению
Привет всем. Ребят, хочется мне вот узнать. Я всё стремлюсь к сокращению кол-ва кода...и созрел вот такой вопросик...
Можно ли кратко записывать такие условия, как:
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';


Если такое возможно, то что я делаю не так? Подскажите, пожалуйста...
2. Bio man - 13 Ноября, 2011 - 13:21:56 - перейти к сообщению
n1k86 пишет:
Можно ли кратко записывать такие условия, как:
ты уже ответил на свой вопрос. тернарный оператор...
(Добавление)
кратче некуда
3. n1k86 - 13 Ноября, 2011 - 13:24:22 - перейти к сообщению
Нет, я понимаю что можно. Но почему у меня тогда не работает? Где я ошибаюсь? Что-то пропускаю или что? Смотрел другие источники, про трехзначный оператор...ничего подобного ненашёл...подскажи, пожалуйста.
4. Bio man - 13 Ноября, 2011 - 13:33:20 - перейти к сообщению
n1k86 пишет:
трехзначный оператор
это
Bio man пишет:
тернарный оператор

тебе тернарный поможет если тело блока 1 строчка, иначе только проблем добавит... там более ифы у тебя вложенные
5. n1k86 - 13 Ноября, 2011 - 13:37:34 - перейти к сообщению
Я хотел просто сверху сделать проврку, чтобы если не было сессии или не сходились данные - отправляло авторизироваться или на главную. А потом выводить уже данные, если бы сошлось. Следовательно, если бы всё сошлось - он бы вывел...или я уже начал мечтать?)))))
6. Bio man - 13 Ноября, 2011 - 13:52:55 - перейти к сообщению
n1k86, тернарный оператор для кратких записей, типо ($user || ....) ? header('Location: truljalja') : header('Location: tumbajumba');
или
$uid = ($user['id']) ? $user['id'] : 0;
7. n1k86 - 13 Ноября, 2011 - 13:54:04 - перейти к сообщению
Условие обязательно брать в () или нет?????
8. Bio man - 13 Ноября, 2011 - 13:55:20 - перейти к сообщению
n1k86 пишет:
Условие обязательно брать в () или нет?????
нет, это для удобства
9. n1k86 - 13 Ноября, 2011 - 13:56:17 - перейти к сообщению
Хорошо) Большое тебе спасибо, что откликнулся. Раз ты тут, может скажешь, что относиться к Говнокоду, так сказать, и методы его искоренение? Пожалуйста.
10. Bio man - 13 Ноября, 2011 - 14:00:41 - перейти к сообщению
n1k86 пишет:
Хорошо) Большое тебе спасибо, что откликнулся. Раз ты тут, может скажешь, что относиться к Говнокоду, так сказать, и методы его искоренение? Пожалуйста.
это уже у каждого индивидуально и все приходит с опытом... посмотри курсы от специалиста, очень хорошие курсы
11. n1k86 - 13 Ноября, 2011 - 14:03:39 - перейти к сообщению
Ссылочку не подскажешь?)
12. Bio man - 13 Ноября, 2011 - 14:06:24 - перейти к сообщению
n1k86, на трекерах посмотри, я качал c rutracker.org
13. n1k86 - 13 Ноября, 2011 - 19:01:35 - перейти к сообщению
Ребят, есть вот такой вот код....

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


Тут как бы идёт повторение вроде...но вроде оно разное всё...может подскажите, как это можно всё сократить???? Пожалуйста....очень прошу...
14. Bio man - 13 Ноября, 2011 - 19:31:37 - перейти к сообщению
глянул мельком... скажу одну не хорошую вещь - слишком много вывода! аутпут как и инпут желательно иметь один (или инпут == аутпут)... в вашем случае пишите контент в переменную и выводите ее echo'м где то в 1 месте... весь код читать не буду, лень
15. n1k86 - 13 Ноября, 2011 - 19:32:47 - перейти к сообщению
Не очень хорошо понял. Я новичек в этом деле...можно по подробнее?

 

Powered by ExBB FM 1.0 RC1