За последние 24 часа нас посетили 60959 программистов и 1744 робота. Сейчас ищут 978 программистов ...

Как привильно писать if (!())

Тема в разделе "PHP для новичков", создана пользователем rar, 15 окт 2009.

  1. rar

    rar Активный пользователь

    С нами с:
    9 дек 2008
    Сообщения:
    206
    Симпатии:
    0
    Адрес:
    Москва
    Так:
    if (!($x = $y))
    или так:
    if (!$x = $y)
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Я бы выбрал 1, т.е. он более логически читаемо.
     
  3. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    правильнее if (!($x == $y))
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Какая глупость, тогда надо было сразу писать if($x != $y)
    Во-вторых, вопрос имеет место быть:

    PHP:
    1. <?
    2.  
    3. if(($contents = file_get_contents("somefile.txt")) {
    4.     foreach(explode(";", $contents) as $record) {
    5.         // ...
    6.     }
    7. } else throw new IOException("Cannot load data from file");
    8.  
    9. ?>
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Такие вещи хоть уменьшают количество строк, но при этом ухудшают читаемость кода.

    В Zend Studio эта строка будет подчеркнута как ошибка в ворде.
     
  6. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Что-то ен понял....
    А что, if($x != $y) или if($x !== $y) уже не котируется?
     
  7. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    этоже просто разная степенть сравнения
    != - без сравнения типов
    !== - с сравнением типов ..
    и применение зависит от контекста
     
  8. rar

    rar Активный пользователь

    С нами с:
    9 дек 2008
    Сообщения:
    206
    Симпатии:
    0
    Адрес:
    Москва
    Имелось в виду не сравнение, а присваивание с проверкой на истинность/не истинность.

    Вопрос в силе. Приведенные мною конструкции - равнозначны?
     
  9. admyx

    admyx Активный пользователь

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Это я прекрасно знаю.

    Я про это:
     
  10. rar

    rar Активный пользователь

    С нами с:
    9 дек 2008
    Сообщения:
    206
    Симпатии:
    0
    Адрес:
    Москва
    Короче. Вот эти конструкции равносильны:
    PHP:
    1. $a = $b;
    2. if (!$a) echo 'false';
    3.  
    4. if (!($a = $b)) echo 'false';
    А эта этим:
    PHP:
    1. if (!$a = $b) echo 'false';
     
  11. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Мануал не? Религия не позволяет?
    http://ua.php.net/manual/en/language.op ... edence.php