2012-03-09 12 views
6

मैंने देखा कि PHP में कुछ फ़ंक्शन झंडे तर्क के रूप में उपयोग करते हैं। क्या सादे स्ट्रिंग तर्कों के बजाय उन्हें अद्वितीय बनाता है? मैं पूछ रहा हूं क्योंकि मैं उन्हें अपने स्वयं के कस्टम कार्यों पर उपयोग करना चाहता हूं लेकिन इस बारे में उत्सुक हूं कि ऐसा करने के लिए प्रक्रिया क्या है।फ़ंक्शन तर्कों में PHP फ़्लैग क्या हैं?

संपादित करें: संक्षेप में, जब यह सबसे अच्छा झंडे के साथ एक कस्टम समारोह बनाने के लिए है और जब यह नहीं है?

+0

[PHP फ़ंक्शन ध्वज, कैसे?] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/3589573/php-function-flags-how) – Quentin

+0

बस 'var_dump() 'cosntant, यह आपको दिखाएगा सामग्री। – MetalFrog

उत्तर

9

वे केवल स्थिरांक हैं जो किसी संख्या को मानचित्र करते हैं, उदा। SORT_NUMERIC (सॉर्टिंग फ़ंक्शंस द्वारा निरंतर उपयोग किया जाता है) पूर्णांक 1 है।

Check out the examplesjson_encode() के लिए।

जैसा कि आप देख सकते हैं, प्रत्येक ध्वज 2 एन है। इस तरह, | का उपयोग एकाधिक झंडे निर्दिष्ट करने के लिए किया जा सकता है।

उदाहरण के लिए, आप झंडा JSON_FORCE_OBJECT (16 या 00010000) और JSON_PRETTY_PRINT (128 या 10000000) का उपयोग रखना चाहते हैं।

बिटवाइज़ ऑपरेटर या (|) यदि या तो संकार्य के बिट पर है पर थोड़ा बदल जाएगी ...

JSON_FORCE_OBJECT | JSON_PRETTY_PRINT 

... आंतरिक रूप से है ....

00010000 | 1000000 

.. .which है ...

10010000 

आप के साथ यह जाँच कर सकते हैं ...

var_dump(base_convert(JSON_PRETTY_PRINT | JSON_FORCE_OBJECT, 10, 2)); 
// string(8) "10010000" 

CodePad

इस प्रकार दोनों झंडे सेट बिट बिट ऑपरेटरों के साथ हो सकते हैं।

+0

इसके अलावा, इन्हें "बिट झंडे" कहा जाता है। – BoltClock

+0

1 भी 2^एन - अर्थात् 2^0 – bububaba

+1

@ बुबुबाबा मैं छुट्टी पर हूं, या कम से कम, यह मेरा बहाना है ... – alex

-1

वे इसमें मूल्यों के साथ सिर्फ रैपर हैं। तो आपको इस बात की परवाह नहीं है कि वास्तव में फ़ंक्शन की क्या ज़रूरत है।

3

आमतौर पर झंडे पूर्णांक होते हैं जो 2 की लगातार शक्तियां होती हैं, ताकि प्रत्येक के पास एक बिट सेट 1 और अन्य सभी 0 हो। इस तरह आप बिट-वार ऑपरेटरों का उपयोग करके एक ही पूर्णांक में कई बाइनरी मानों को पार कर सकते हैं। इसे और अधिक (और शायद अधिक सटीक) information के लिए देखें।

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