कम्प्युटरहरूप्रोग्रामिंग

अभ्यास PHP: string comparison

PHP जानकारी प्रसोधनमा राम्रो छ। भाषाको वाक्यसूची तुलनात्मक प्रकार्य, स्ट्रिंग प्रसोधन, तुलना अपरेटरहरूको पूर्ण-विशेष गरीएको सेट द्वारा प्रतिनिधित्व गरिएको छ।

कुनै एल्गोरिथ्म छनौट र कार्यहरूको अनुक्रम हो। तर एक विकल्प बनाउन अघि, तपाईंलाई केहि चीजको तुलना गर्न आवश्यक छ। रेखाहरू - एल्गोरिथ्म नियन्त्रण गर्न सबैभन्दा सबैभन्दा शक्तिशाली, प्रभावकारी र व्यावहारिक तंत्र। रेखाहरू - डेटा प्रतिनिधित्वको एक संस्करण। र डेटा कुनै पनि एल्गोरिदम को "हेरविचार" को मुख्य विषय हो।

"तुलना-कार्य" को सामान्य तर्क

सामान्यमा, गतिशील टाइपिङ भाषाले डेटामा धेरै फरक पार्दैन, उदाहरणका लागि, PHP मा, string को तुलना र एक नम्बर धेरै फरक छैन। नम्बर एक string पनि हो जब यो केवल अंक, एक अवधि समावेश छ, र त्यहाँ एक क्यारेक्टर होइन जुन यसको कुनै पनि फारम (गणितिक सूचना) मा संख्या को प्रतिनिधित्व गर्न प्रयोग गर्दैन।

सङ्ख्याको अवस्थामा, नम्बर स्वचालित रूपमा अनावश्यक प्रश्नहरू बिना कुनै लुकेको त्रुटिहरूसँग विलय गर्दछ, भले पनि gettype () प्रकार्य 'पूर्णांक' वा 'डबल' पनि भएमा।

यद्यपि, is_int () र is_numeric () को प्रयोग गरेर एक भिन्नता छ। पहिलो सत्यलाई दिईन्छ जब प्यारामिटर मात्र एक पूर्णांक हो, दोस्रोमा कुनै पनि नम्बर वा संख्यात्मक स्ट्रिङ (चरसँग 'स्ट्रिङ' टाइप छ, तर सबैलाई समावेश गर्दछ जुन गणितिक टिप्पणी द्वारा प्रदान गरिएको छ)।

यो सरल उदाहरण राम्रो उदाहरण हो, जस्तै कि PHP को स्ट्रिंग तुलना अपरेटरहरू ('==', '===', '!' '...) धेरै आश्चर्य देखाउन सक्दछ। भिन्नताले तिनीहरूको प्रकार परिवर्तन गर्न सक्दछ, तिनीहरू सधैँ अङ्कहरू छैनन्, तर प्रायः सधैं तिनीहरू स्ट्रिंगमा जान सक्छ। चरम अवस्थामा, यो खाली स्ट्रिङ हुनेछ।

माथिको, PHP मा string string प्रकार्य सबैभन्दा लोकप्रिय हो। कुनलाई छनौट गर्न, विकासकर्ता समाधान गर्न। नियमित अभिव्यक्तिहरूमा धेरै विकल्पहरू उपलब्ध छन्।

उपलब्ध प्रकार्यताको सीमा

PHP - दुई तार को तुलना राम्रो तरिकाले "काम" प्रकार्य strpos द्वारा () - सस्तो, सही र व्यावहारिक विकल्प। यदि यो प्रकार्यको परिणाम नम्बर हो, त्यसपछि विशिष्ट एक रेखा अर्कोसँग बराबर छ वा अर्कोले अर्कोमा प्रवेश गर्दछ।

कार्डिनल विपरीत, तर पनि सही दृष्टिकोण पनि नियमित अभिव्यक्तिको प्रयोग हो।

यदि $ cResult = scCheckFileName ($ cStr) लाई कल 'सत्य' मा कल गर्छ भने, त्यसपछि स्ट्रिङ वर्डियन फाइलको नाम हो। एक्स्टेन्सन '.docx' र नामको कुनै क्यारेक्टरका लागि मात्र एक विकल्प हुनेछ: केवल अक्षरहरू, अंकहरू र '_', '-' चिन्हहरू।

प्रकार्य सजिलै अन्य फाइलहरूमा परिवर्तित गर्न सकिन्छ: $ cPtr = '/^ ([-zA-Z...0-9\-\_]{4,239})\.(html|js|css|png|jpg | Docx | txt) {1} $ / u '। यो विकल्पले स्ट्रिङ डाउनलोड गर्न सकिने दायरा विस्तार गर्दछ (उदाहरणका लागि, PHP मा, स्ट्रिङ तुलना "फाइलमा सर्भरमा अपलोड गर्नका लागि, इनपुट त्रुटिको एकल मौका बिना") एचटीएमएल, जेएस, सीएसएस, मा लागू भएको छ ...

Strpos () र preg_match () प्रयोग गरी चरम छ। तिनीहरू प्रत्यक्ष तुलनाको मुद्दासँग सम्बन्धित छैनन्। तर एल्गोरिथ्मको प्रश्नले एक विश्वसनीय र सही परिणाम प्राप्त गर्न सबै सम्भावनाहरू प्रयोग गरी शैलीहरूको संयोजन लागू गर्ने प्रश्न हो।

PHP कार्यक्षमता: string comparison

भाषा बनाम स्ट्रिंगको शस्त्रागार मात्र शुद्ध तुलनाको एक प्रकार्य हो, तर खोज वा सीधा प्रतिस्थापन संग एक संयोजन। सँधै कार्यले तुलनाको साथ मेल खान हुँदैन, किनभने पछिले कुनै पनि रेखाको परिवर्तनको लागि नेतृत्व गर्दैन। यो अक्सर एल्गोरिदमको एक वा अर्को शाखा चयन गर्न आवश्यक छ।

PHP को सामान्य संस्करण: स्ट्रिंग तुलना प्रकार्य int strcmp (s1, s2) द्वारा गरिन्छ।

प्रकार्य परिणाम:

  • 0 - रेखाहरू बराबर छन्;
  • -1 - पहिलो लाइन दोस्रो भन्दा कम छ;
  • 1 - पहिलो लाइन दोस्रो भन्दा ठूलो छ।

अभ्यासमा, यसको अर्थ यो पहिलो रेखा दोस्रो रेखामा प्रवेश गर्दछ, जसबाट PHP प्रकार्य (स्ट्रिङ तुलना) निर्णय गर्दछ। Strpos को (अधिक सीमित संस्करण), पछिल्लो अवस्थामा देखि तपाईं प्रवेश स्थिति जान्न सक्नुहुन्छ।

प्रकार्य strcmp () केस संवेदनशील छ। यदि तपाईं बिना केस-संवेदनशील वर्णहरू स्ट्रिङ तुलना गर्न चाहनुहुन्छ भने, PHP ले strcasecmp प्रयोग गरेर सुझाव दिन्छ ()। वाक्य रचना समान छ।

अभ्यासमा, अक्सर यो पूरा लाइनको साथ काम गर्न आवश्यक छ, तर केवल यसको भाग संग। यो गर्नका लागि, PHP प्रकार्यहरूको सेट (string comparison) strncmp (s1, s2, n) समावेश गर्दछ। तेस्रो प्यारामिटरले संकेत गर्दछ कि केवल N-bytes को तुलनामा छन्। परिणाम strcmp () सँग समान छ।

Arrays, Strings, and Comparisons

डेटा लगभग सधैँ स्ट्रिंग द्वारा प्रतिनिधित्व गरिएको छ। यदि हामी arrays, वस्तुहरू, वा सूचना ढाँचाहरू विचार गर्दछौं, त्यसपछि तिनीहरू सरल स्ट्रिंग ढाँचाको संयोजनको फरक संस्करणहरू हुन्।

स्ट्रिंग arrays र तार एक पूरक तरिका मा प्रतिनिधित्व गर्न सकिन्छ। इन्टप्ल (सरणी, चिन्ह) को प्रयोग गरेर एउटा string मा array को परिवर्तन, उदाहरणका लागि: $ margins1 = implode (',', $ style-> getInnerMargin ()); ... एल्गोरिदम / प्रयोगकर्ताको काम ...; $ Margins2 = इमप्लेड (',', $ शैली-> getInnerMargin () ले तपाईलाई वस्तुको सबै पदहरूलाई पदका रेखामा मर्ज गर्न अनुमति दिन्छ।

त्यसपछि तपाइँ एक समयमा PHP स्ट्रिंग तुलना गर्न सक्नुहुन्छ: $ चेक = strcmp ($ margins1, $ margins2) र निश्चित गर्नुहोस् कि एल्गोरिदम वा प्रयोगकर्ताले केहि परिवर्तन गरेको छ (वा होइन)। यदि तपाइँ सामान्य तरिकामा तुलना प्रदर्शन गर्नुहुन्छ भने, तपाइँसँग array तत्वहरू क्रमबद्ध गर्न पर्छ। यसले लामो समय लिन्छ र अधिक जटिल देखाउँछ।

वस्तुहरू र तारहरू

PHP (string comparison) को थप प्रभावकारी प्रयोग वस्तु-आधारित विचारहरू मार्फत लागू गर्न सकिन्छ।

वस्तुहरूको आधुनिक अवधारणा मानिन्छ कि तिनीहरूसँग गुणहरू र तरिकाहरू छन्। पहिलोहरू संख्याहरू, स्ट्रिंगहरू, arrays र अन्य वस्तुहरू द्वारा प्रतिनिधित्व गरिन्छ। दोस्रो पटक स्ट्रिंगमा लेख्ने विधिहरू राख्दछन् र स्ट्रिंगबाट पुनः बहाल्दछ।

Arrays जस्तो, एक वस्तुले यसको गुणहरूसँग काम गर्दछ र अन्य वस्तुहरूको साथ अन्तरक्रिया गर्दछ। वस्तु एल्गोरिदमको लागि कुन गुणको वास्तविक मूल्य हो, यस कार्यक्रममा "सक्षम" हो।

यो क्षणले लाइनमा आधार र सम्भावनालाई रेखामा मात्र आवश्यक जानकारी ठीक गर्न दिन्छ, र लाइनबाट पुनःस्थापना आवश्यक अवस्थामा सबै काम गर्ने गुणहरू पुनर्स्थापना गर्न। सामान्यतया कुनै पनि वस्तुमा जानकारी आवश्यक छ र काम गर्दै (अस्थायी)। यस विचारलाई लागू गर्न तपाईंलाई न केवल स्मृति, डिस्क स्पेस, डाटाबेस रेकर्डहरू बचत गर्न अनुमति दिन्छ, तर यो अझ सरल र सटीक तरिकामा स्ट्रिङ तुलना गर्न सम्भव गर्दछ।

सिन्ट्याक्स र अर्थशास्त्र

PHP गतिशील रूपमा विकास गर्दछ, र यसको कार्यक्षमता स्ट्रिंग तुलनाको सन्दर्भमा र तिनीहरूलाई प्रशोधनको सर्तमा निरन्तर सुधारिएको छ। तथापि, गुरुत्वाकर्षण केन्द्र को semantics को क्षेत्र मा स्थानांतरित देखि डेवलपर को केहि पनि नहीं रोकता।

निस्सन्देही, कार्यात्मक राम्रो छ, तर यसको प्रयोग वस्तुको कोडमा को सेमी भागमा हस्तान्तरण गर्न सकिन्छ। जब एल्गोरिथ्म वस्तुहरूको अन्तरक्रियाको प्रणालीको रूपमा प्रतिनिधित्व गरिन्छ, यसले सीधा सीरियल, शास्त्रीय शैलीमा तुलना र कार्यहरूको अनुक्रम भन्दा धेरै राम्रो देखिन्छ।

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ne.unansea.com. Theme powered by WordPress.