Пример:
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
. В основном это означает все ошибки, за исключением строгих, предупреждающих и предупреждающих ошибок.
Это оператор bitwise-not . Например, битовое отрицание числа с двоичным представлением 01011110
было бы 10100001
; каждый отдельный бит переворачивается на свою противоположность
См. Побитовые операторы : это оператор "не" (цитирование) :
~ $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 -- и наоборот,
Это оператор не
в битовом режиме . О битовых операторах читайте здесь: