2009-12-27 13 views

उत्तर

20

यह bitwise not operator (जिसे "पूरक" भी कहा जाता है) है। ~ $a में सेट बिट्स वे हैं जो $a में सेट नहीं हैं।

तो फिर

E_ALL & ~E_STRICT & ~E_WARNING & ~E_NOTICE 

बिट्स E_ALL में सेट और उन E_STRICT, E_WARNING और E_NOTICE में सेट नहीं है। यह मूल रूप से सख्त, चेतावनी और नोटिस त्रुटियों को छोड़कर सभी त्रुटियों को कहता है।

15

यह bitwise-not operator है। उदाहरण के लिए बाइनरी प्रतिनिधित्व 01011110 के साथ किसी संख्या की बिटवाइज अस्वीकृति 10100001 होगी; हर एक बिट इसके विपरीत में फिसल जाता है।

+0

हालांकि यह तकनीकी स्पष्टीकरण है, यह स्पष्टीकरण तब तक सहायक नहीं है जब तक आपको एहसास न हो कि 'E_STRICT',' E_WARNING', 'E_NOTICE' et। अल। पूर्णांक हैं और साथ ही '&' bitwise ऑपरेटर के साथ संयुक्त किए जा रहे हैं। – IQAndreas

1

Bitwise Operators देखें: यह "नहीं" ऑपरेटर (के हवाले से) है:

~ $a
बिट्स कि $a में स्थापित कर रहे हैं सेट नहीं हैं, और इसके विपरीत।


जिसका मतलब है, क्या आप पोस्ट से प्रेरित एक उदाहरण ले रही है, कि कोड के इस भाग:

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

आप इस आउटपुट प्राप्त होगा:

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

(एक जोड़े पहली पंक्ति के बाईं ओर पैडिंग के लिए 0 के जोड़े, और आप देखेंगे कि मेरा क्या मतलब है)


दूसरा उत्पादन से गद्दी निकाला जा रहा है, आपको मिलता है:

100000000000 
011111111111 

जिसका मतलब है ~ ऑपरेटर प्रत्येक बिट कि intput में 1 के बराबर था के लिए एक 0 बिट दे दी है - और उपाध्यक्ष प्रतिकूल ,

5

बिटवाइज़ के बीच भेद (&, |, ~) और गैर बिटवाइज़ (& &, ||,!) ऑपरेटरों की जाती है कि बिटवाइज़ लागू होते हैं भर में सभी बिट्स पूर्णांक में, जबकि गैर-bitwise एक पूर्णांक (एकल शून्य) या "झूठा" (शून्य) मान के रूप में एक पूर्णांक का इलाज करते हैं।

कहें, $flag_1 = 00000001 और $flag_2 = 00000010।दोनों गैर-बिटवाइज ऑपरेशंस के लिए "सत्य" होंगे, ($flag_1 && $flag_2 "सत्य" है), जबकि $flag_1 & $flag_2 का परिणाम 00000000 होगा और $flag_1 | $flag_2 का परिणाम 00000011 होगा। ~$flag_2 11111101 होगा, जो थोड़ी देर के लिए चलने के लिए परिणाम स्पष्ट उस बिट स्थिति (xxxxxx0x) होगा। $flag_2 bitwise- एक चलने वाले परिणाम के लिए ORED सेट उस बिट स्थिति (xxxxxx1x) सेट करें।

संबंधित मुद्दे