За последние 24 часа нас посетили 17964 программиста и 1645 роботов. Сейчас ищут 1875 программистов ...

Скорость обработки неинициализированных переменных

Тема в разделе "Вопросы от блондинок", создана пользователем Вованыч, 21 апр 2009.

  1. Вованыч

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

    С нами с:
    18 дек 2008
    Сообщения:
    12
    Симпатии:
    0
    Будет ли
    Код (Text):
    1. if (isset($var))
    работать быстрее
    Код (Text):
    1. if ($var)
    ?
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    if (isset($var)) проверяет инициализирована ли переменная, а if ($var) проверяет значение СУЩЕСТВУЮЩЕЙ переменной.
    Feel the difference (c)
     
  3. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Вованыч, будет, но толку нет. Наиглупейшая экономия. isset() используют для избежания любых видов ошибок в том числе минимальнейших - в PHP это notice. В других языках отсутствие переменной приведёт к ошибке программы, а PHP просто сообщит, что переменной нет и на это можно забить.

    Читай http://php.net.
     
  4. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Вованыч
    Резтат будет разный!
    при $var=0
    if (isset($var)) - TRUE
    if ($var) - FALSE
     
  5. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Следует также помнить, что isset — это конструкция, а не функция.
    Так что хоть ничтожная, но разница всё-таки будет, причем в пользу isset.
     
  6. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Да некорректно вопрос поставлен, глупость полная.

    if(isset($var)) - проверить на существование.
    if($var) это тоже самое, что и if($var == true)

    Ну и как это сравнивать?! Причём тут скорость. Что за глупости.
     
  7. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Hight, я сверху уже об этом писал.
    Но, как правило, приходится отвечать по тем данным, которые мы имеем. А имеем мы две совершенно разные инструкции :)
    Вот и сравниваем, как говорится, хер с пальцем.
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    А я заметил, что любые нотисы и ошибки замедляют скорость выполнения скрипта.
     
  9. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Ну это давно уже было известно ;)
     
  10. sylex

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

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    Kreker
    и насколько много замедляют?
     
  11. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    В десятки раз.
     
  12. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    sylex
    Практически не определял, но чисто визуально варнинги замедляют скорость работы раза в два.


    UPD:
    Проверил на простом примере -- функция substr обрезает последнюю букву. В обычном режиме операция занимает порядка 0.000044 с, если удалить аргументы функции, то операция с WARNING занимает порядка 0.1с
     
  13. sylex

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

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    Kreker
    да ну нафик в 2 раза.. если говорить про инициализацию переменных.. вообще не заметно вроде
     
  14. sylex

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

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    чисто для себя писать без варнингов приятно :)
     
  15. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Можно (пойухистически) - работать с вариациями error_reporting(E_NONE), php_flag display_errors = 0, понаставить собак и радоваться. И пох, "что там вылезает что-то когда я на кнопку жму"...
    А можно написать, оттестить, отладить, и работать с error_reporting(E_ALL) и тд и тп.

    Но это уже полемика...
     
  16. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Даже если ошибка не отображается, она все равно обрабатывается, и, возможно, заносится в лог.
     
  17. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    А это - дополнительное время на обработку и занесение. Так?
     
  18. kas1e

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

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    вроде как полюбому в лог заносится =)

    да и вообще, некрасиво это - отмахиваться от нотайсов. если выставить жесский контроль ошибок и написать без единого нотайса - получаешь огромное чувство удовлетворенности, не правда ли? ;)

    а так это сродни бегу по большим грязным лужам по долгому пути. когда можно найти рядом чистенькую короткую дрогу до той же цели и дойти без единого пятнышка :)
     
  19. собака роняет производительность на 700% примерно. А это оченно аргумент.
     
  20. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Really?
    А опыты, доказывающие есть? Я б почитал с удовольствием.
     
  21. kas1e

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

    С нами с:
    6 апр 2009
    Сообщения:
    280
    Симпатии:
    0
    лень пару строк теста написать )

    выложите кто-нибудь, если руки дойдут?
     
  22. Псих вроде выкладывал уже
     
  23. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Ок, спасибо, поищу
     
  24. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Это кто тут на ворнинги кладёт!? На кол его.
     
  25. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    +1.

    Лично я привык работу выполнять качественно, а не тяп-ляп, поэтому у меня нет никаких ноайсов, а тем более варнингов. Тоже самое и в верстке -- нет сообщений "потерянное свойство!".

    Привел пример выше.