Что означает == 0?"\r\n\r\n" и ==0?1:0; в значениях переменных, вопрос.

Тема в разделе "PHP", создана пользователем Rama-bak, 12 авг 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Rama-bak

    Rama-bak

    Регистр.:
    22 апр 2007
    Сообщения:
    207
    Симпатии:
    52
    Прошу помочь в объяснении или ссылке на понятный источник, того,что означает == 0?"\r\n\r\n" и ==0?1:0; в значениях переменных.
    Изучаю различные коды, и наткунлся на такое, но понять смылсла не смог и не нашел ответа в поиске.
    К примеру у переменной таоке значение

    $divclass= $checkit == 0?"\r\n\r\n".'<div class="insideleft">':"\r\n\r\n".'<div class="insideright">';

    Здесь не понятно, что выполняет == 0?"\r\n\r\n"

    Далее не понятно, что делает $checkit = $checkit==0?1:0;

    Кто знает, объясните, пожалуйста поподробнее, что бы разобраться.
    Спасибо.:)
     
  2. nubic

    nubic

    Регистр.:
    29 май 2008
    Сообщения:
    382
    Симпатии:
    151
    символ Перевод строки - \n,
    символ возврата каретки - \r,

    читай _php.su_
     
  3. ozware

    ozware

    Регистр.:
    22 апр 2007
    Сообщения:
    327
    Симпатии:
    42
    если в $checkit содержится 0, то в переменную $divclass записывается следующая строка: \r\n\r\n<div class="insideleft">
    в противном случае записывается строка: \r\n\r\n<div class="insideright">

    \r\n\r\n - это двойной перевод строки

    вся разница только в том, какой будет класс у div'a


    код писал редкостный извращенец, который не ищет легких путей:)
    писать нужно читаемый код, мог бы через if все сделать
     
    Rama-bak нравится это.
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Мог, но тернарный оператор короче и быстрее.
     
  5. Rama-bak

    Rama-bak

    Регистр.:
    22 апр 2007
    Сообщения:
    207
    Симпатии:
    52
    nubic
    Здесь _php.su_ на данную тему не нашел ответа. :-(

    ozware
    А что означает это $checkit = $checkit== 0?1:0; ?
    Именно, как читается 0?1:0;
    А можешь, если не сложно написать заменяющий код с помощью if , для сравнения.
    и что означает двойной перевод строки, куда и как ее переводят?
    Спасибо.
     
  6. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Тоже самое, что и
    PHP:
    if($checkit== 0)
        
    $checkit 1;
    else
        
    $checkit 0;
    Не 0?1:0; а $checkit== 0?1:0;
    За дальнейшими объяснениями - в гугл (поиск по "тернарный оператор").

    Перевод строки = начать с новой строки.
     
  7. Rama-bak

    Rama-bak

    Регистр.:
    22 апр 2007
    Сообщения:
    207
    Симпатии:
    52
    Выложите, пожалуйста, хороший мануал по тернарный оператор, а то в поиске ничего хорошо обясняющего не нашел.:(
     
  8. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Да какой мануал, неужели с примера в предыдущем моём посте не понятно?
    PHP:
    <?php
    // Пример использования тернарного оператора
    $action = (empty($_POST['action'])) ? 'default' $_POST['action'];

    // Приведенный выше код аналогичен следующему блоку с использованием if/else
    if (empty($_POST['action'])) {
        
    $action 'default';
    } else {
        
    $action $_POST['action'];
    }
    ?>
    http://php.ru/manual/language.operators.comparison.html
     
  9. ozware

    ozware

    Регистр.:
    22 апр 2007
    Сообщения:
    327
    Симпатии:
    42
    $var = (условие, должно возвращать true/false/1/0 и т.д.) ? (что должно присвоиться переменной $var в случае true) : (в случае false);

    т.е. конструкция такая: $var = (условие) ? знач_true : знач_false;

    это еще в С было
     
  10. Rama-bak

    Rama-bak

    Регистр.:
    22 апр 2007
    Сообщения:
    207
    Симпатии:
    52
    PHP_Master, по вопросу понятно. А дальше вглубь. Просто реально не могу найти ничего.
    Именно побные выражения интересуют $checkit== 0?1:0;
     
Статус темы:
Закрыта.