Variable in PHP: Computer में विभिन्न प्रकार के मानों के साथ विभिन्न प्रकार की Processing करके विभिन्न प्रकार के Results को Generate किया जाता है। इससे पहले कि हम किसी मान पर किसी प्रकार की Processing को Apply करके किसी तरह का Required Result Generate करें, हमें उन मानों को Computer की Memory में Store करना पडता है, लेकिन Computer की Memory में तब तक किसी मान को Store नहीं किया जा सकता, जब तक कि उन मानों को Hold करने के लिए Computer को पहले से इस बात का Instruction न दिया गया हो कि Memory में Store होने वाला मान किस तरह का है और वह किस Memory Location पर Store होगा।
चूंकि Computer हमें ऐसी सुविधा नहीं देता कि हम Computer की किसी Specific Memory Location को Directly Access कर सकें और Computer को बता सकें कि हमें किसी मान को किस Memory Location पर Store करना है, इसलिए हमें Identifiers Declare करने पडते हैं।
PHP का प्रयोग करते हुए जब हम Computer में ऐसे मानों को Store व Manipulate करना चाहते हैं, जिनका मान Script के अन्य Codes की Requirements के आधार पर समय-समय पर बदलता रहता है या बदल सकता है, तो इस प्रकार के मानों को Store करने के लिए जो Identifier Create किया जाता है, उस Identifier को Variable Identifier या केवल Variable कहा जाता है।
चूंकि Computer हमें Directly किसी Memory Location को Access करने की सुविधा नहीं देता, इसलिए PHP में जब हम किसी Identifier को Declare करते हैं, तो PHP Programming Language स्वयं हमारे लिए Memory Locations को Reserve करता है और उन Memory Locations के साथ वह नाम Associate कर देता है, जिन्हें हमने Identifier Declare करते समय Specify किया था।
जब हम PHP में बदल सकने वाले मान को Store व Manipulate करना चाहते हैं, तब हमें Variable Identifier Declare करना होता है। Variable Identifier Declare करने के लिए हमें $ Sign का प्रयोग करना होता है और इस $ Sign के Just बाद में हमें वह नाम Specify करना होता है, जिसे हम PHP द्वारा हमारे मान को Store करने के लिए Reserve की जाने वाली Memory Location के साथ Associate करना चाहते हैं, क्योंकि यही वह नाम होता है, जिसके द्वारा हम PHP द्वारा हमारे Variable Identifier के मान को Store करने के लिए Reserve की गई Memory Location को Access व Manipulate कर सकते हैं।
Identifiers और कुछ नहीं होते बल्कि किसी Memory Location का एक नाम होते हैं, जिन्हें हमने हमारी जरूरत के अनुसार स्वयं Declare किया है और PHP ने उन नामों से Associated Memory Locations को Reserve किया है, जिन पर हमारे द्वारा Specify किया जाने वाला मान Store होता है। जैसेः
$salary;
यहां $salary एक Variable Identifier है, जहां salary वह नाम है, जिसे PHP उस Memory Location के साथ Associate करेगा, जिस पर हमारे द्वारा Input या Assign किया गया मान Store होगा।
चूंकि हमने $ Sign का प्रयोग किया है, इसलिए PHP जब हमारे Code Statement में $ Sign देखता है, तो उसे इस बात का Instruction मिलता है कि हम किसी Variable Type की Value को Computer की Memory में Store करना चाहते हैं। फलस्वरूप PHP हमारे लिए एक Memory Location Reserve कर देता है। लेकिन जब तब हम PHP द्वारा Reserve की गई Memory Location को कोई नाम नहीं देते, तब तक हम उस Memory Location को Access नहीं कर सकते। इसलिए इस $ Sign के Just बाद में हमें एक नाम Specify करना होता है। परिणामस्वरूप जब PHP को $ Sign के बाद कोई नाम मिलता है, तो वह हमारे लिए Variable Type की Value Store करने के लिए Space Reserve करता है और उस Space का वह नाम रख देता है, जो हमने $ Sign के बाद Specify किया है।
जैसाकि हमने पिछले Section में देखा कि हम PHP में मूल रूप से 8 प्रकार के Data को Store व Manipulate कर सकते हैं, लेकिन PHP को कैसे पता चलेगा कि हम Reserve की जाने वाली Memory Location पर किस तरह का मान Store करना चाहते हैं?
“C”, “C++” जैसी Programming Languages में हमें Identifier के नाम के साथ उस Identifier की Memory Location पर Store की जा सकने वाली Value को भी Keywords के माध्यम से Specify करना जरूरी होता है, लेकिन PHP इस काम को स्वयं करता है। यानी PHP स्वयं Decide करता है कि हम किस तरह के मान को Declare किए गए Identifier की Memory Location पर Store करना चाहते हैं।
एक ऐसी Programming Language जो Create होने वाले Identifier के Data Type का निर्णय स्वयं करती है, Loosely Typed Programming Language कहलाती है। PHP, JavaScript, Perl आदि Loosely Typed Programming Languages के उदाहरण हैं।
जब हम PHP में किसी Variable को Declare करते हैं, तो वह Variable तब तक किसी Type से Associated नहीं होता, जब तक कि हम उसमें किसी तरह का कोई मान Assign या Initialize नहीं कर देते। लेकिन जैसे ही हम किसी Variable में कोई मान Initialize या Assign करते हैं, उस मान के आधार पर PHP स्वयं तय कर लेता है कि Declare किया गया Variable किस प्रकार के मान को Store व Manipulate करेगा या किस Data Type का है।
PHP की इस प्रक्रिया का एक Side Effect ये होता है कि जब हम किसी Variable में कोई मान Store करते हैं और Script के किसी Statement के Execution के दौरान उसी Variable में किसी दूसरे Type का मान Assign कर दिया जाता है, तो वह Variable उस दूसरे Type के मान में Convert हो जाता है। फलस्वरूप हमें पूरे Program के दौरान इस बात का ध्यान रखना जरूरी होता है कि किसी Variable में किसी समय किस तरह का मान Store है। इस प्रक्रिया को समझने के लिए एक उदाहरण देखते हैं:
<?php $test = 10000; print "Type of \$test : " . gettype($test); $test = $test + 200.50; print "\nType of \$test : " . gettype($test); $test = "now \$test is a string"; print "\nType of \$test : " . gettype($test); $test = $test + 100.50; print "\nTotal Value : $test"; ?> //Output Type of $test : integer Type of $test : double Type of $test : string Total Value : 100.5
उपरोक्त Code में हम देख सकते हैं कि सबसे पहले हमें $test में 10000 मान Initialize किया है, फलस्वरूप Variable $test एक Integer Type का Variable बन जाता है, जिसे हम Output के First Line में देख सकते हैं।
फिर हमनें $test Variable में 200.50 जो कि एक Floating Point Value है, को जोडकर Result को फिर से $test में Assign कर दिया है। चूंकि 200.50 एक Floating Point Value है, इसलिए Floating Point Value को $test में Hold करने के लिए PHP इस $test Variable के Type को फिर से Reset करता है और इसे Integer से Double Type में Convert कर देता है, जिसे हमें Output की दूसरी Line में देख सकते हैं। अन्त में हमने $test Variable में एक String को Store कर दिया है। फलस्वरूप Output की अन्तिम Line में हम देख सकते हैं कि अब PHP ने $test को एक String Type के Variable में Convert कर दिया है।
अब यदि हम अन्तिम Statement को देखें तो हमने $test जो कि अब एक String Variable बन चुका है, में 100.50 को जोडा है। अब यदि हम ये सोंच रहे हैं कि $test में अभी भी 10000 या 10200.50 है, तो हम गलती कर रहे हैं और अक्सर PHP Programming के दौरान हम ऐसी ही गलती करते हैं, क्योंकि यहां हमारा Example Program 12 Lines का है, लेकिन जब हम Professional Development कर रहे होते हैं, तब हमारा Program 100, 200 या 500 Lines का भी हो सकता है। फल स्वरूप किसी Variable के Data Type को किस Statement ने Change कर दिया, इस बात का ध्यान रखना नामुमकिन है।
अब यदि हम उपरोक्त Code के आखिरी Output की बात करें, तो हमारा Output PHP के अनुसार तो सही आ रहा है, लेकिन हमारे अनुसार गलत हो सकता है। यदि हम $test को Integer मान कर जोड कर रहे हैं, तो भी हम गलती कर रहे हैं और यदि हम $test को Double मान कर जोड कर रहे हैं, तो भी हम गलती कर रहे हैं।
हालांकि PHP द्वारा Automatically Variable के Type को Set करने के लिए Provide की जाने वाली सुविधा एक अच्छी सुविधा है लेकिन हर सुविधा के साथ जिम्मेदारी भी आती है। इसलिए PHP में Type Casting तथा विभिन्न प्रकार के Type Conversion से संबंधित Functions के बारे में बहुत गहराई से समझना जरूरी होता है। क्योंकि कब कौनसा Variable किस Type का हो जाएगा और किस प्रकार की जरूरत को कैसे पूरा किया जाएगा, इस बात को समझना ही PHP Programming को Best तरीके से समझने का एकमात्र तरीका है नहीं तो PHP के Codes को Control करना काफी मुश्किल हो जाता है।
चूंकि PHP स्वयं Data Type तय करता है, इसलिए PHP हमें कई ऐसे Built-In Functions भी Provide करता है, जिनका प्रयोग करके हम समय-समय पर ये Check कर सकते हैं कि Variable में किस प्रकार का मान है या Variable किस तरह का Identifier है, ताकि हम हमारे PHP Code को बेहतर तरीके से Control कर सकें।
जब हम किसी Variable को Create करते हैं, लेकिन उसमें कोई Value Initialize नहीं करते, तो उस स्थिति में वह Variable NULL Data Type की तरह काम करता है, यानी “No Value” को Represent करता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF