तो, कोलन एक विराम चिह्न विभाजक है। अवधि, विस्मयादिबोधक और प्रश्न चिह्न और दीर्घवृत्त के विपरीत, इसका कोई पृथक्करण कार्य नहीं है, अर्थात, यह पाठ में वाक्यों को एक दूसरे से अलग नहीं करता है। कोलन केवल वाक्य के अंदर रखा जाता है, और इसलिए यह इंगित करता है कि इसके बाद भी कथन जारी रहेगा।
कोलन सरल और जटिल वाक्यों में पाया जा सकता है। एक सरल वाक्य में, यह कथन के कुछ हिस्सों को अलग और उजागर करता है; एक जटिल वाक्य में, यह एक अर्थ संबंधी भूमिका भी निभाता है: यह एक असंबद्ध जटिल वाक्य के हिस्सों के बीच अर्थ संबंधी संबंधों को इंगित करता है।
तो बिना गलती किए और इसे दूसरों के साथ भ्रमित किए बिना कोलन का उपयोग करने का सही तरीका क्या है? आइए मुख्य मामलों पर नजर डालते हैं.
नियम 1. सजातीय सदस्यों वाले वाक्य में कोलन
यदि सामान्यीकरण शब्द सजातीय सदस्यों के सामने है, तो उसके बाद एक कोलन की आवश्यकता होती है, उदाहरण के लिए: बर्फ पड़ी है हर जगह: घरों की छतों पर, बाड़ों पर, लॉन पर, कारों पर।
इस वाक्य में शब्द हर जगह ऐसी ही अनेक परिस्थितियों का सारांश प्रस्तुत करता है। सामान्यीकरण शब्द सजातीय सदस्यों से पहले स्थित होता है, और इसलिए इसके बाद एक कोलन होता है।
नियम 2. गुणवाचक शब्दों वाले वाक्यों में कोलन
किसी वाक्य में शब्दों का सामान्यीकरण करते समय, योग्य शब्दों का उपयोग किया जा सकता है: उदाहरण के लिए, उदाहरण के लिए, उस रूप में, अर्थात्, पहले अल्पविराम और उसके बाद कोलन। उदाहरण के लिए: बर्फ पड़ी है हर जगह, अर्थात्: घरों की छतों पर, बाड़ों पर, लॉन पर, कारों पर।
इस वाक्य में, सामान्यीकरण शब्द के साथ हर जगह इसके निर्माण में सुधार का उपयोग किया गया "अर्थात्" , उसके बाद एक पंक्ति सजातीय सदस्य, इसलिए इसके बाद एक कोलन है।
नियम 3. प्रत्यक्ष भाषण के साथ निर्माण में कोलन
यदि प्रत्यक्ष भाषण लेखक के शब्दों का अनुसरण करता है, तो उसके पहले एक कोलन रखा जाता है, और प्रत्यक्ष भाषण स्वयं उद्धरण चिह्नों में संलग्न होता है और प्रत्यक्ष भाषण का पहला शब्द बड़े अक्षरों में लिखा जाता है: शिक्षक ने कहा: "नमस्कार बच्चों!"इसके अलावा, यदि प्रत्यक्ष भाषण पाठ में लेखक के शब्दों को तोड़ता है, तो उसके सामने एक कोलन लगाया जाता है, उदाहरण के लिए: यह कहते हुए: "नमस्कार, बच्चों!", शिक्षक ने कक्षा में प्रवेश किया।सीधे भाषण के बाद अल्पविराम अवश्य लगाना चाहिए।
नियम 4. निम्नलिखित मामलों में एक गैर-संघीय जटिल वाक्य (बीएसपी) के हिस्सों के बीच एक कोलन रखा जा सकता है।
कोलन का उपयोग करने में मुख्य कठिनाई यह है कि कभी-कभी इस विराम चिह्न को किसी अन्य विराम चिह्न - डैश - के साथ भ्रमित करना आसान होता है। हाल ही में, इन संकेतों का उपयोग अक्सर समानांतर में किया जाता है, अर्थात, एक ही मामले में, डैश और कोलन दोनों को रखा जा सकता है। उदाहरण के लिए: और जजों ने फैसला किया: अगर बारिश हुई तो प्रतियोगिता रद्द कर दी जाएगी; मैंने पहला पत्थर देखा, मैंने फैसला किया - यहाँ एक खजाना है, मैंने चारों ओर टटोलना शुरू कर दिया(टेंड्रियाकोव), बेशक वहबदला हुआ(: –) कूबड़दार, भूरा, झुर्रीदारमुँह के कोनों में; मेरा आना हो रहा है(: – ) सब कुछ शांत है; उसके सामने ये शब्द न कहें(: – ) नाराज हो सकते हैं; सबकी दिलचस्पी सिर्फ एक ही सवाल में थी(: – ) जितनी जल्दी हो सके स्थिति से बाहर कैसे निकला जाए; इसका एक मतलब था(: – ) अलग होने की जरूरत है.
ऐसे विकल्पों को समान माना जाता है, आप गलती करने के डर के बिना डैश और कोलन दोनों का उपयोग कर सकते हैं। हालाँकि, यह याद रखना चाहिए कि डैश, वाक्यात्मक कार्यों के अलावा, भावनात्मक और अभिव्यंजक कार्य भी करता है, अर्थात, कथन की भावनात्मकता को इंगित करता है, इसकी अभिव्यक्ति पर जोर देता है। इसलिए, यदि वाक्य ऐसे अर्थ नहीं रखता है, तटस्थ है, तो आपको हमारे द्वारा विचार किए गए नियमों का पालन करते हुए, डैश के उपयोग से बचने और कोलन लगाने की आवश्यकता है।
आपने देखा होगा कि मैं अपने ट्यूटोरियल में कितनी बार इन दो छद्म तत्वों का उपयोग करता हूं। मैं उन्हें क्यों पसंद करता हूँ? क्योंकि इनका उपयोग करना इतना सुविधाजनक है कि आपको अतिरिक्त HTML तत्व जोड़ने की भी आवश्यकता नहीं है। हालाँकि, यह लेख छद्म तत्वों के लाभों के बारे में नहीं है।
यह लेख छद्म तत्वों के वाक्य-विन्यास के संबंध में सभी गलतफहमियों को हमेशा के लिए स्पष्ट करने के लिए समर्पित है।
छद्म-तत्वों को तथाकथित इसलिए कहा जाता है क्योंकि वे वास्तविक HTML तत्व नहीं हैं। उदाहरण के लिए, HTML में पहले और बाद में कोई टैग नहीं हैं, लेकिन CSS में आप :before और :after तत्वों पर शैलियाँ लागू कर सकते हैं।
:before और::before या बीच :after और::after के बीच कोई अंतर नहीं है। दो-कॉलन सिंटैक्स CSS3 के लिए विशिष्ट है।
http://www.w3.org/TR/css3-selectors/#pseudo-elements में यह पैराग्राफ है:
यह चिह्न (::) छद्म वर्गों को छद्म तत्वों से अलग करने के लिए पेश किया गया है। पहले से मौजूद स्टाइल शीट के साथ अनुकूलता के लिए, सीएसएस 1 और 2 में छद्म तत्वों को एक कोलन के साथ भी निर्दिष्ट किया जा सकता है (विशेष रूप से, :पहली पंक्ति, :पहला अक्षर, :पहले और :बाद)।
IE 7 और इससे पहले के संस्करण सूचीबद्ध छद्म तत्वों का समर्थन नहीं करते हैं। लेकिन IE 8 करता है, और यह सिंगल-कोलन सिंटैक्स का उपयोग करने का एक अच्छा (और एकमात्र) कारण है।
कृपया ध्यान रखें कि एक या दो कोलन की यह सारी चर्चा केवल छद्म तत्वों के बारे में है, छद्म वर्गों के बारे में नहीं।
टिप्पणियों में लिखें कि आप किस सिंटैक्स का उपयोग करते हैं और किन कारणों से।
यदि आपने php भाषा में लिखे गए किसी प्रोग्राम के कोड का विश्लेषण किया है, तो निश्चित रूप से आपको कोड में ऐसे विशेष कोड मिले होंगे। प्रतीक:
-> (डैश और उससे बड़ा चिह्न)
:: (डबल कोलन)
उदाहरण के लिए, इन अभिव्यक्तियों के साथ निर्माण इस तरह दिख सकते हैं:
हेलो::हैलो_वर्ल्ड(); q -> hello_world();
यह समझने के लिए कि ये निर्माण किस लिए हैं, आइए सबसे सरल उदाहरण देखें। मान लीजिए हमारे पास एक सरल "हैलो वर्ल्ड!" कार्यक्रम है।
आइए एक सरल php फ़ाइल बनाएं और उसमें निम्नलिखित कोड लिखें:
क्लास हैलो (फ़ंक्शन हैलो_वर्ल्ड () ( इको "हैलो वर्ल्ड"; ) )
अब सोचें कि आप hello_world() फ़ंक्शन को कैसे निष्पादित कर सकते हैं।
यदि hello_world() फ़ंक्शन Hello क्लास में नहीं होता, तो हम इसे बहुत सरलता से कॉल करेंगे:
हैलो वर्ल्ड();
परिणामस्वरूप, हमारी स्क्रीन पर "हैलो वर्ल्ड" लिखा होगा। लेकिन, सबसे अधिक संभावना है, यदि आपने इस तरह से समस्या को हल करने का प्रयास किया, तो आपको स्क्रीन पर एक त्रुटि मिलेगी:
घातक त्रुटि: .../test.php ऑन लाइन में अपरिभाषित फ़ंक्शन hello_world() पर कॉल करें...
सब कुछ सही है, क्योंकि फ़ंक्शन क्लास में है, तो आपको कंप्यूटर को यह बताना होगा कि इसे हैलो क्लास में देखा जाना चाहिए। अगर ऐसा नहीं किया तो कुछ भी काम नहीं आएगा.
ऐसी जानकारी कंप्यूटर को कैसे संप्रेषित की जा सकती है?
यहां कई विकल्प हैं. आइए प्रत्येक को अलग से देखें।
1 विकल्प. कक्षा का एक उदाहरण बनाकर।
$q = नया नमस्ते;
इस पंक्ति के साथ, हम हैलो क्लास का एक तथाकथित उदाहरण बनाते हैं। इस ऑपरेशन के बाद, हम इस इंस्टेंस के माध्यम से अपनी ज़रूरत के फ़ंक्शन को स्वतंत्र रूप से एक्सेस कर सकते हैं, जो इस मामले में $q वेरिएबल में संग्रहीत है।
$q -> hello_world();
"->" निर्माण क्लास इंस्टेंस और फ़ंक्शन के बीच कनेक्टिंग लिंक बन जाता है।
अब सब कुछ काम करता है. हुर्रे! आपको स्क्रीन पर "हैलो वर्ल्ड" दिखना चाहिए।
विकल्प 2। डबल कोलन निर्माण का उपयोग करना:
यह विकल्प बहुत आसान है. आपको यहां कोई इंस्टेंस बनाने की भी आवश्यकता नहीं है। हम तो बस लिखते हैं.
हेलो::हैलो_वर्ल्ड();
आप जांच सकते हैं कि फ़ंक्शन सफलतापूर्वक पूरा होगा या नहीं।
मुझे आशा है कि इस नोट को पढ़ने के बाद, अब आप समझ गए होंगे कि "->" और "::" का उपयोग निर्मित कक्षा में वांछित फ़ंक्शन तक पहुंचने के लिए किया जाता है।
उन्हीं निर्माणों की सहायता से, हम कक्षाओं में मौजूद वेरिएबल्स तक पहुंच सकते हैं। अंतर केवल इतना है कि आपको अंत में कोष्ठक लगाने की आवश्यकता नहीं है। उदाहरण के लिए:
हैलो वर्ल्ड;
इस निर्माण के साथ, हम विश्व चर का उल्लेख करते हैं, जो हैलो क्लास में स्थित है।
विशेष रूप से अक्सर, विभिन्न साइट प्रबंधन प्रणालियों के कोड को पार्स करते समय ऐसे निर्माण पाए जा सकते हैं। जूमला, वर्डप्रेस इत्यादि जैसे सिस्टम के स्रोत कोड को देखें। अब आप जानते हैं कि यह सब किस लिए है।
शुरुआती लोगों के लिए मेरे अधिक PHP ट्यूटोरियल।
PHP द्वारा "स्कोप रिज़ॉल्यूशन ऑपरेटर" के रूप में दो कोलन के उपयोग के संबंध में उत्तर के अलावा:
इसके अलावा, एक डबल कोलन का उपयोग किया जाता है:
किसी अयोग्य, योग्य, या उपनाम वर्ग के नाम को उसके पूर्णतः योग्य रूप में परिवर्तित करना, और
किसी क्लास विधि को कॉल करने के लिए __callStatic.
क्लास नाम के बाद "क्लास" कीवर्ड के बाद दो कोलन एक स्ट्रिंग के रूप में उस क्लास का पूर्णतः योग्य नाम प्रदान करते हैं। अर्थात्, "क्लासनाम::क्लास" को पूर्णतः योग्य नाम "क्लासनाम" में बदल दिया गया है। देखें (ए) मैनुअल: वर्ग और वस्तुएं: बुनियादी सिद्धांत, (बी) मैनुअल: वर्ग और ऑब्जेक्ट: वर्ग स्थिरांक, और (सी) मैनुअल: भाषा संदर्भ: स्थिरांक
"::class" वाक्यविन्यास किसी वर्ग के पूर्णतः योग्य नाम को उसके अयोग्य या योग्य रूप से, या उसके नाम के उपनाम से प्राप्त करने के लिए नेमस्पेस में उपयोगी है।
"::क्लास" सिंटैक्स इंटरफ़ेस नामों के साथ-साथ क्लास नामों को हल करने के लिए काम करता प्रतीत होता है, हालाँकि यह ऊपर उद्धृत स्रोतों द्वारा प्रलेखित नहीं किया गया है।
एक क्लास के भीतर, सिंटैक्स "self::class" के साथ भी काम करता है जैसा कि ऊपर "::class" RFC में बताया गया है।
कुछ उदाहरण:
पूरा नाम(), PHP_EOL; // आउटपुट: MyNamespace\TheirClass
दो कोलन का उपयोग एक स्थिर विधि नाम को "आह्वान" करने के लिए किया जा सकता है जिसे कक्षा ने घोषित नहीं किया है। यदि इसने एक घोषित किया है तो यह "__callStatic" क्लास विधि को कॉल करता है। __callStatic विधि तब "गतिशील रूप से" चुन सकती है कि कॉल को कैसे संभालना है। PHP में इसे "जादुई विधि" __callStatic के साथ "ओवरलोडिंग" कहा जाता है।
हैंडलऑर्डर($तर्क); ) वापसी "मुझे क्षमा करें, हम इसमें आपकी सहायता नहीं कर सकते"। एलसीफर्स्ट($आइटम) . ""; ) ) नेमस्पेस हमारीकंपनी\विशेषज्ञ; क्लास कार (पब्लिक फंक्शन हैंडलऑर्डर($arguments) ( रिटर्न "क्या मैं $arguments कार में आपकी मदद कर सकता हूँ?"; ) ) क्लास ट्रक ( पब्लिक फंक्शन हैंडलऑर्डर($arguments) ( रिटर्न "क्या मैं $arguments ट्रक में आपकी मदद कर सकता हूँ? "; ) ) ourCompany\Orders\Intake का उपयोग करें; इको इंटेक::ऑर्डरकार("लाल"), PHP_EOL; // आउटपुट: क्या मैं आपको लाल कार में मदद कर सकता हूँ? इको इनटेक::ऑर्डरट्रक("पिकअप"), PHP_EOL; // आउटपुट: क्या मैं आपको पिकअप ट्रक में मदद कर सकता हूँ? इको इनटेक::ऑर्डरशूज़("साबर"), PHP_EOL; // आउटपुट: मुझे खेद है, हम जूतों के मामले में आपकी मदद नहीं कर सकते।