Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP वेरिएबल स्कोप

परिचय

प्रोग्रामिंग में, स्कोप उस सीमा को संदर्भित करता है जिस तक एक वेरिएबल एक्सेसिबल है। आमतौर पर, एक साधारण PHP स्क्रिप्ट (लूप, फ़ंक्शन आदि जैसे कंस्ट्रक्ट के बिना) का एक ही स्कोप होता है, इस अर्थ में कि एक वेरिएबल परिभाषा के बिंदु से पूरे प्रोग्राम में उपलब्ध होता है।

मुख्य स्क्रिप्ट में वेरिएबल include या require स्टेटमेंट के साथ शामिल किसी अन्य स्क्रिप्ट के लिए भी उपलब्ध कराया जाता है। निम्न उदाहरण में, एक test.php स्क्रिप्ट मुख्य स्क्रिप्ट में शामिल है।

यह मुख्य स्क्रिप्ट है:

$var = 100; include "test.php"; ?>

शामिल फ़ाइल test.script निम्नानुसार है:

echo "value of of \$var in testscript.php : " . $var; ?>

जब मुख्य स्क्रिप्ट निष्पादित होती है, तो निम्न परिणाम प्रदर्शित होता है:

value of of $var in testscript.php : 100

हालांकि, जब स्क्रिप्ट में यूजर-डिफाइंड फ़ंक्शन होता है, तो फ़ंक्शन के अंदर किसी भी वेरिएबल का लोकल स्कोप होता है। नतीजतन, फ़ंक्शन के अंदर परिभाषित वेरिएबल को बाहर एक्सेस नहीं किया जा सकता। फ़ंक्शन के बाहर (ऊपर) परिभाषित वेरिएबल का ग्लोबल स्कोप होता है।

उदाहरण

<?php
$var = 100; // ग्लोबल वेरिएबल
function myfunction() {
    $var1 = "Hello"; // लोकल वेरिएबल
    echo "var=$var var1=$var1" . "\n";
}
myfunction();
echo "var=$var var1=$var1" . "\n";
?>

आउटपुट

var= var1=Hello
var=100 var1=
PHP Notice: Undefined variable: var in line 5
PHP Notice: Undefined variable: var1 in line 8

ध्यान दें कि ग्लोबल वेरिएबल फ़ंक्शन के लोकल स्कोप में स्वचालित रूप से उपलब्ध नहीं है। साथ ही, फ़ंक्शन के अंदर का वेरिएबल बाहर एक्सेसिबल नहीं है।

global कीवर्ड

ग्लोबल वेरिएबल तक लोकल स्कोप में पहुंच को global कीवर्ड का उपयोग करके स्पष्ट रूप से सक्षम किया जाना चाहिए। PHP स्क्रिप्ट निम्नानुसार है:

उदाहरण

<?php
$a = 10; $b = 20;
echo "before function call a = $a b = $b" . "\n";
function myfunction() {
    global $a, $b;
    $c = ($a + $b) / 2;
    echo "inside function a = $a b = $b c = $c" . "\n";
    $a = $a + 10;
}
myfunction();
echo "after function a = $a b = $b c = $c";
?>

आउटपुट

before function call a = 10 b = 20
inside function a = 10 b = 20 c = 15
PHP Notice: Undefined variable: c in line 13
after function a = 20 b = 20 c =

ग्लोबल वेरिएबल अब फ़ंक्शन के अंदर प्रोसेस किया जा सकता है। इसके अलावा, फ़ंक्शन के अंदर ग्लोबल वेरिएबल में किए गए परिवर्तन ग्लोबल नेमस्पेस में प्रतिबिंबित होंगे।

$GLOBALS सरणी

PHP सभी ग्लोबल वेरिएबल को $GLOBALS नामक एक एसोसिएटिव सरणी में संग्रहीत करता है। वेरिएबल का नाम और मान की-वैल्यू पेयर बनाते हैं।

निम्न PHP स्क्रिप्ट में, ग्लोबल वेरिएबल एक्सेस करने के लिए $GLOBALS सरणी का उपयोग किया जाता है:

उदाहरण

<?php
$a = 10; $b = 20;
echo "before function call a = $a b = $b" . "\n";
function myfunction() {
    $c = ($GLOBALS['a'] + $GLOBALS['b']) / 2;
    echo "c = $c" . "\n";
    $GLOBALS['a'] += 10;
}
myfunction();
echo "after function a = $a b = $b c = $c";
?>

आउटपुट

before function call a = 10 b = 20
c = 15
PHP Notice: Undefined variable: c line 12
after function a = 20 b = 20 c =

स्टेटिक वेरिएबल

static कीवर्ड के साथ परिभाषित वेरिएबल को फ़ंक्शन के हर कॉल पर इनिशियलाइज़ नहीं किया जाता है। इसके अलावा, यह पिछले कॉल का अपना मान बरकरार रखता है।

उदाहरण

<?php
function myfunction() {
    static $x = 0;
    echo "x = $x" . "\n";
    $x++;
}
for ($i = 1; $i <= 3; $i++) {
    echo "call to function :$i : ";
    myfunction();
}
?>

आउटपुट

call to function :1 : x = 0
call to function :2 : x = 1
call to function :3 : x = 2

सारांश: ग्लोबल (स्क्रिप्ट-वाइड), लोकल (फ़ंक्शन-वाइड), स्टेटिक (फ़ंक्शन-वाइड लेकिन मान बरकरार रखता है), $GLOBALS (सुपरग्लोबल सरणी)।

  1. - PHP mt_getrandmax() फ़ंक्शन - अधिकतम रैंडम मान

    PHP का mt_getrandmax() फ़ंक्शन **मर्सन ट्विस्टर जनरेटर द्वारा उत्पन्न किए जा सकने वाले सबसे बड़े पूर्णांक** को लौटाता है। यह mt_rand() के लिए डिफ़ॉल्ट ऊपरी सीमा के रूप में कार्य करता है। सिंटैक्स mt_getrandmax(): int पैरामीटर्स कोई पैरामीटर नहीं। लौटाया गया मान सबसे बड़ा संभव पूर्णांक (पूर्णांक)।

  1. - PHP में filter_input() फंक्शन

    विवरण filter_input() फंक्शन एक्सटर्नल वेरिएबल का नाम प्राप्त करता है और वैकल्पिक रूप से इसे फिल्टर करता है। सिंटैक्स filter_input(type, var, filtername, options) पैरामीटर्स type − चेक करने के लिए पांच प्रकार के इनपुट हैं यानी INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, या INPUT_ENV। var −

  1. - PHP में extract() फंक्शन

    PHP में extract() फंक्शन सरणी से वर्तमान सिंबल टेबल में चर आयात करता है। यह सफलतापूर्वक निकाले गए चरों की संख्या लौटाता है। सिंटैक्स extract(arr, rules, prefix) पैरामीटर्स arr - निर्दिष्ट सरणी। rules - निर्दिष्ट करता है कि अमान्य चर नाम से कैसे निपटें। संभावित मान: EXTR_OVERWRITE - डिफ़ॉल्ट। टकर