За последние 24 часа нас посетили 18246 программистов и 1596 роботов. Сейчас ищет 941 программист ...

Уровень ошибки или булева алгебра

Тема в разделе "PHP для новичков", создана пользователем xaocbozzz, 16 авг 2012.

  1. xaocbozzz

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

    С нами с:
    4 апр 2012
    Сообщения:
    19
    Симпатии:
    0
    всем хай.
    Код (Text):
    1. ini_set("error_reporting", E_ALL | E_STRICT)
    Булева алгебра + побитовые операторы говорят во че:
    Где-то нарыскал, что "error_reporting" использует побитовые значения.

    Что в итоге дает символ | в данной конструкции? И как это все объяснить?
     
  2. xaocbozzz

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

    С нами с:
    4 апр 2012
    Сообщения:
    19
    Симпатии:
    0
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    "или" в любой конструкции значит, что условие включает оба варианта :)
    в текущей версии PHP константа E_ALL не включает в себя тип ошибок E_STRICT (в будущем это будет исправлено). соответственно E_ALL | E_STRICT означает "все возможные ошибки". того же эффекта в любой версии гарантированно можно достичь так:
    error_reporting(-1)
    -1 в целочисленном представлении означает единички во всех битах.
     
  4. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Код (Text):
    1. var_dump(E_ALL); // int(6143)
    2. var_dump(E_STRICT); // int(2048)
    3. var_dump(E_ALL | E_STRICT); // int(8191)
    4. var_dump(E_ALL + E_STRICT); // int(8191)