Örnek:
set_error_handler(array($this, 'handleError'), E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE);
ne demek şimdi geliyor?
Bu not operator (aynı zamanda "tamamlayıcı") 'dir. İşte ~ $a
$a
koymak değildir olanlardır belirlenen bit.
Öyleyse
E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE
olan E_ALL
ayarlanır ve bit-E_STRICT
ayarlanan olmayanlar, E_WARNING
ve E_NOTICE
. Bu temelde sıkı, uyarı ve ihbar hataları hariç tüm hataları söylüyor.
Bu bitwise-not operator bulunuyor. Örneğin ikili gösterimi ile bir dizi bitdüzeyi zıtlık 01011110
10100001
olacaktı; her bit karşıtına çevrilmiş.
Bkz Bitwise Operators: o "değil" operatörü bulunuyor (quoting):
~ $a
Bits that are set in$a
are not set, and vice versa.
Which means, taking an example inspired from what you posted, that this portion of code :
var_dump(decbin(E_STRICT));
var_dump(decbin(~E_STRICT));
Bu çıktıyı alırsınız:
string '100000000000' (length=12)
string '11111111111111111111011111111111' (length=32)
(Add a couple of 0
ilk satırın sol dolgu için, ve ne demek istediğimi görürsünüz) em>
Removing the padding from the second output, you get :
100000000000
011111111111
Hangi ~
operatörü bir 1
Intput içinde eşit olduğu her bit için 0
biraz verdi anlamına gelir - ve tersi,
Bitwise arasındaki ayrım (&, |, ~) ve non-bit (&&, | |!) Operatörler bit, tamsayı all bit genelinde uygulanan olmasıdır non-bit iken (sıfır) değer tek bir "gerçek" (sıfır olmayan) ya da "yanlış" olarak bir tamsayı davranın.
Say, $flag_1 = 00000001
ve $flag_2 = 00000010
. Her iki sonuç $flag_1 & $flag_2
00000000 olurdu, ($flag_1 && $flag_2
"true" olan), non-bit işlemler için "doğru" olarak ve [(4)] {sonucu olur } 00000011 olacaktır. ~$flag_2
zaman çalışan bir sonuç için bitsel ANDed ki, 11111101 olacaktı clear bu biraz pozisyon (xxxxxx0x). $flag_2
bit-ORed çalışan bir sonuç olur set bu biraz pozisyon (xxxxxx1x).