Какой правильный синтаксис

Автор kak2z, 21 февраля 2012, 14:49:37

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kak2z

В общем много вопросов касательно синтаксиса. Одно и тоже можно написать по разному

    // Соединяемся с сервером базы данных
    $dbconn = [at]mysql_connect($dblocation,$dbuser,$dbpasswd) or exit ("Невозможно подключиться к серверу MySQL");



    // Соединяемся с сервером базы данных
     $dbconn = mysql_connect($dblocation,$dbuser,$dbpasswd);
     if (!$dbconn) {
      echo( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
      exit();
    }


Какой вариант более правильный.. или какой тут слово подобрать не знаю)) работают они оба нормально)

Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Drakonsa


Макар

Цитата: Drakonsa от 21 февраля 2012, 16:52:26
Тот в котом нет сабак.

сначала не въехал
потом вспомнил что тут цензура собак режет

да, +1

а еще  бы все это ловить в исключение ........
Если Вы здесь недавно, не обольщайтесь тоном некоторых дискуссий.
Все чаще слова - юзай поиск, приобретают смысл - иди в ж..........  Приобретение смысла автоматизированно - Ответы на любой вопрос по SMF
Не пишите несколько сообщений подряд - тут вам не Twitter  >:( в остальных ситуациях мы не сильно зверствуем 2funny

maestrosite.ru

Это как вопрос "где фигурную скобку ставить, в конце строки или в начале новой?". Машине всё равно, а вам (или кому-то ещё) читать это код придётся. Поэтому "правильнее" - в едином стиле.

Касательно приведённого примера, не стоит писать в одной строке несколько логических действий.  Здесь - два: попытка соединения и проверка соединения. Если без базы делать совсем не чего, то просто выход без лишних движений

    // Соединяемся с сервером базы данных
    $dbconn = mysql_connect($dblocation,$dbuser,$dbpasswd);
    $dbconn || exit("Невозможно подключиться к серверу MySQL");


Если же можно/нужно выдать страницу в нормальном оформлении, записать в лог, отправить уведомление, то более развёрнутый:

    // Соединяемся с сервером базы данных
    $dbconn = mysql_connect($dblocation,$dbuser,$dbpasswd);
    if( !$dbconn )
    {
        //запись в лог, отправка уведомления и тд
        exit();
    }


Сама команда прерывания выполнения зависит от окружения этого кода. В отдельной ли функции/методе это находится, надо ли возвращать флаг успешности, есть ли глобальный перехватчик исключений и тд. Наиболее чистый код, примерно, так выглядеть будет:


    // Соединяемся с сервером базы данных
    $dbconn = mysql_connect($dblocation,$dbuser,$dbpasswd);

    if( !$dbconn )
        //нипалучилась...
        throw new ExceptionDBConnection( что-где-когда );

    //всё в порядке, шеф, едем дальше


upd у-пс, опередили
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Спасибо большое!!) А расскажите где можно почитать что такое || ) Именно не расскажите - а где почитать)) Потому что в операторах сравнения я не видел http://www.php.ru/manual/language.operators.comparison.html
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Цитата: kak2z от 21 февраля 2012, 18:55:48
Спасибо большое!!) А расскажите где можно почитать что такое || ) Именно не расскажите - а где почитать)) Потому что в операторах сравнения я не видел http://www.php.ru/manual/language.operators.comparison.html

|| - это не сравнение, это логический оператор
http://php.net/manual/en/language.operators.logical.php

!!! Обратите внимание на приоритеты выполнения операций. Это одни из простейших и частых ошибок.
http://www.php.net/manual/en/language.operators.precedence.php
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)