PHP पाठ – पाठ 5 – PHP में लॉजिकल (तार्किक) वेरिएबल्स।
तो अब तक हम जानते हैं कि PHP में संख्याएँ (numbers) और स्ट्रिंग्स (strings) होती हैं। लेकिन यह सब कुछ नहीं है — इस पाठ में हम एक और प्रकार की वेरिएबल का अध्ययन करेंगे, जिसे लॉजिकल वेरिएबल (Logical Variable) कहा जाता है। इन्हें लॉजिकल इसलिए कहा जाता है क्योंकि ये हमारे कोड की तर्क प्रणाली (logic) बनाने के लिए उपयोग होती हैं।
मान लीजिए, एक ऐसी स्थिति है जहाँ अलग-अलग परिस्थितियों में अलग-अलग कार्य करने पड़ते हैं। उदाहरण के लिए — आपके पास पानी से भरा गिलास है। अगर उसमें बहुत कम पानी है, तो प्यास नहीं बुझेगी। लेकिन अगर पानी बहुत ज्यादा है, तो जब आप गिलास झुकाएँगे तो पानी गिर जाएगा। इसलिए आपको गिलास में पानी की मात्रा के अनुसार या तो पानी डालना है या निकालना है।
इसे हम इस तरह समझ सकते हैं:
$paanee_ka_matra = 100;
$kam_paanee = TRUE;
अगर $kam_paanee
तो $paanee_ka_matra = $paanee_ka_matra + 20;
यहाँ पर वेरिएबल $kam_paanee
एक लॉजिकल वेरिएबल है, जो केवल दो मान (values) ले सकती है — TRUE (सत्य) या FALSE (असत्य)।
नीचे इसका PHP संस्करण दिया गया है:
<?php $water = 100; $not_enough_water = TRUE; if($not_enough_water){ $water = $water + 20; } ?>
हम if
ऑपरेटर के बारे में अगले पाठ में विस्तार से बात करेंगे, लेकिन अभी समझिए कि TRUE और FALSE का उपयोग शर्तों (conditions) की जांच करने के लिए किया जाता है।
इसके अलावा, PHP में TRUE और FALSE के स्थान पर अक्सर 1 और 0 का उपयोग भी किया जाता है।
अब सवाल यह है कि जब 1 और 0 हैं, तो TRUE और FALSE की क्या ज़रूरत है? ध्यान दीजिए — पूर्णांक (integer) वेरिएबल्स पहले से ही दशमलव (float) वेरिएबल्स की तुलना में लगभग आधी मेमोरी लेते हैं। लेकिन लॉजिकल वेरिएबल्स (TRUE या FALSE) पूर्णांकों की तुलना में 4 गुना कम मेमोरी और दशमलव की तुलना में 8 गुना कम मेमोरी का उपयोग करती हैं। इसलिए जहाँ भी संभव हो, TRUE या FALSE का उपयोग अधिक प्रभावी (efficient) होता है।
शायद आप सोच रहे होंगे कि "मेमोरी की इतनी छोटी-छोटी बाइट्स का क्या फर्क पड़ेगा? मेरे सर्वर में तो 8 GB RAM है!" लेकिन आइए इसका एक सरल उदाहरण देखें:
मान लीजिए, आपके PHP साइट में 1000 integer वेरिएबल्स हैं जिन्हें लॉजिकल वेरिएबल्स से बदला जा सकता है। अगर integer का उपयोग किया जाए, तो लगभग 4 MB मेमोरी लगती है। लेकिन अगर हम वही वेरिएबल्स TRUE/FALSE के रूप में उपयोग करें, तो केवल 1 MB मेमोरी लगेगी। अब अगर एक ही समय में 100 उपयोगकर्ता वेबसाइट खोलते हैं — integer वेरिएबल्स के लिए 400 MB मेमोरी लगेगी, जबकि लॉजिकल वेरिएबल्स के लिए सिर्फ 100 MB। यानी 300 MB की बचत! यह एक सरलीकृत उदाहरण है, लेकिन सिद्धांत स्पष्ट है — छोटी-छोटी ऑप्टिमाइजेशन बड़े स्तर पर मायने रखती हैं।
लॉजिकल वेरिएबल्स और संख्याओं का आपसी परिवर्तन (Conversion)
<?php $var1 = TRUE; $var2 = TRUE + 1; echo $var2; ?>परिणाम होगा 2। PHP अपने आप लॉजिकल प्रकार (TRUE = 1) और संख्याओं को जोड़ देता है। इसलिए डेटा प्रकारों (data types) की संगतता (compatibility) को लेकर चिंता करने की जरूरत नहीं है।