Intereting Posts
Преобразование timestamp ко времени назад в PHP, например, 1 день назад, 2 дня назад … html <a> активировать при нажатии на ввод нажатой Как я могу подавить предупреждения PHPCS с помощью комментариев? dompdf изображение не настоящее изображение не читаемое или пустое CakePHP запрос ближайшей долготы широты из базы данных Как удалить видео YouTube с помощью cURL Как создать форму с несколькими строками одного объекта в Symfony2 Функция обратного вызова в Codeigniter с несколькими параметрами во время проверки формы AJAX VS PHP для динамических веб-страниц? PHP-скрипт для извлечения исполнителя и заголовка из потока Shoutcast / Icecast Как WordPress читает строки комментариев Laravel 5 Ajax Файл / Загрузка изображения Многочисленные команды PHP SSH Регулярное выражение для получения значения внутри двойных фигурных скобок "{{}}" Как получить время и дату из штампа даты и времени в php

Что здесь означает этот оператор?

Пример:

set_error_handler(array($this, 'handleError'), E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE); 

что это означает?

Это поразрядный оператор (также называемый «дополнением»). Это биты, установленные в ~ $a это те, которые не установлены в $a .

Тогда

 E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE 

это биты, установленные в E_ALL и те, которые не установлены в E_STRICT , E_WARNING и E_NOTICE . В основном это говорит о всех ошибках, кроме строгих предупреждений и предупреждений.

Это побитовый оператор . Например, побитовое отрицание числа с двоичным представлением 01011110 будет 10100001 ; каждый бит перевернут в противоположную сторону.

Различие между побитовыми (&, |, ~) и небитовыми (&&, ||,!) Операторами состоит в том, что поразрядные применяются ко всем битам целого числа, в то время как небитовое отношение целого числа рассматривается как единственное «истинное» ( отличное от нуля) или «ложное» (ноль) значение.

Скажем, $flag_1 = 00000001 и $flag_2 = 00000010 . Оба будут «истинными» для $flag_1 && $flag_2 операций, ( $flag_1 && $flag_2 «true»), а результат $flag_1 & $flag_2 будет 00000000, а результат $flag_1 | $flag_2 $flag_1 | $flag_2 будет 00000011. ~$flag_2 будет 11111101, который, когда побитовое-ANDed к текущему результату, очистит эту позицию бита (xxxxxx0x). $flag_2 -ORed к результату выполнения задает эту позицию бита (xxxxxx1x).

См. Поразрядные операторы : это оператор «не» (цитирование) :

~ $a
Биты, которые установлены в $a , не заданы, и наоборот.

Это означает, что на примере, вдохновленном тем, что вы опубликовали, эта часть кода:

 var_dump(decbin(E_STRICT)); var_dump(decbin(~E_STRICT)); 

Вы получите этот результат:

 string '100000000000' (length=12) string '11111111111111111111011111111111' (length=32) 

(Добавьте пару 0 для заполнения слева от первой строки, и вы увидите, что я имею в виду)

Удаляя отступы со второго выхода, вы получаете:

 100000000000 011111111111 

Это означает, что оператор ~ дал бит 0 бит для каждого бита, который был равен 1 в intput, и наоборот,

Это not побитовый оператор. Читайте о побитовых операторах здесь:

http://php.net/manual/en/language.operators.bitwise.php