PHP Variables

इस ब्लॉग में हम PHP Variables को निम्न पॉइंट को समझेंगे

  • PHP Basic Variable Rules : Variable के नाम रखते समय धयान रखने योग्य Point
  • PHP Variable Scope : Variable का Scope यानि की कहा तक आप उसकी वैल्यू Get or Set कर सकते हो
  • PHP Predefine Variables : इसमें हम जानेंगे पहले से Define किये Variable के बारे में ।
  • PHP External Variables : इसमें हम GET POST और REQUEST का कैसे उपयोग करते हैं उसके बारे में जानेंगे

What is a PHP variable?

जब भी हमें किस Value को Program Execution के समय Store करना होता हैं तब हम Variable का उपयोग करते हैं , यह Value RAM में स्टोर होती हैं जो की Program के Close होते ही Erase हो जाती है।


PHP Basic Variable Name Rules

  • PHP Variable की शुरुआत $ के साथ होती हैं ।
  • PHP Variable Case Sensitive होते हैं यानि की small a or capital A को अलग-अलग माना जाता हैं ।
  • $this यह एक Special वेरिएबल हैं इसमें आप डायरेक्ट कोई value assign नहीं कर सकते ।
  • किसी भी Variable की शुरुआत नंबर से नहीं करना चाहिए ।
  • Variable के नाम में Space का भी उपयोग नहीं करना चाहिए ।
  • Underscore (_) का उपयोग Space के स्थान पर कर सकते हैं और Underscore (_) से आप Variable के नाम की शुरुआत कर सकते हैं ।

PHP variable declaration can start with a number : no, PHP Variable की शुरुआत कभी भी नंबर से नहीं होती हैं

PHP Variable Declaration

PHP में Variable Declare करना बहुत ही आसान हैं, इसकी सबसे बड़ी विशेषता यह हैं की हमें Variable Declare करते समय Data Type याद रखने की जरुरत नहीं होती है। क्युकी यहाँ हमें हमें वेरिएबल का नाम देने के बाद उसमे डिफ़ॉल्ट वैल्यू देना होती है जिसे हम Initialization of Variable भी कहते हैं। निचे कुछ PHP Variable Declaration Syntax दिए हैं

<?php
$FName = 'First';
$LName = 'Last';
echo "My Name Is $FName $LName";      // outputs "My Name is First Last"

$5name  = 'Your Name';     // Invalid; because starts with a number 
$_5name = 'Your Name';    // Valid; starts with an underscore

$a = 'Small';
$A = 'Capital';
echo "$a $A";      // outputs "Small Capital"  $a, $A are case Sensitive 

$a my = 'Name';    //Invalid


$i=50;     //Int
$f=15.25;  //Double

$t= true;  // Boolean


?>

PHP Variable Scope

किसी भी वेरिएबल की value को Set और Get करने का एक scope होता है, यानि की वह variable अपने क्षेत्र में ही कार्य करता है । हम जिस block में variable को declare करते हैं उसका वही scope होता हैं , यदि हम वेरिएबल को पुरे Page पर उपयोग में लेना चाहते हैं तो हमें global keyword का उपयोग करना होता हैं ।

<?php

 $v1 = 1;
 $v2 = 1;
 function Test() 
 {
     global $v2;
     $v1 = 2; 
     $v2 = 2;
     echo 'value of v1:' . $v1 ."<BR>";
 }
 echo 'Before v1:'.$v1 . ' , v2:'.$v2 ."<BR>";
 Test();
 echo 'After v1:'.$v1 . ' , v2:'.$v2 ."<BR>";

?>
Before v1:1 , v2:1
value of v1:2
After v1:1 , v2:2

इस example से आपको समझ में आ जाएगा की Variable अपने scope में किस तरह कार्य करते हैं , यहाँ देखिये v1 variable function test में हैं जहा पर उसका scope सिर्फ function में ही हैं उसके बाहर नहीं, जबकि same v1 नाम से एक वेरिएबल बाहर की तरफ हैं उसका Scope function के बाहर ही हैं , यदि हम बाहरी Variable की वैल्यू किसी function के अंदर भी उपयोग करना चाहते हैं तो हमें global keyword लगाना होता हैं जो की हमने इस Example में बताया हैं । आप देख सकते हैं v1 की वैल्यू function के अंदर 2 हैं और बाहर 1, और उसी प्रकार global keyword के उपयोग के बाद v2 की वैल्यू function call होने के पहले 1 है और function के बाद 2.


PHP Predefine Variables

  • SuperGlobal
    • $GLOBALS
    • $_SERVER
    • $_GET
    • $_POST
    • $_FILES
    • $_COOKIE
    • $_SESSION
    • $_REQUEST
    • $_ENV
  • $http_response_header
  • $argc
  • $argv

SuperGlobal

Superglobal एक built-in वेरिएबल हैं जो की हर Scope में available रहता हैं , यदि इसके पहले हमें global लिखने की आवश्यकता नहीं होती हैं , और हम इनका कही भी उपयोग कर सकते हैं । 9 तरह के superglobal वेरिएबल होती हैं जिनके बारे में जानकारी इस प्रकार हैं ।

$GLOBALS, $_SERVER, $_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, $_REQUEST, $_ENV


$GLOBALS

किसी भी वेरिएबल को यदि हम  $GLOBALS में Pass कर देते हैं तो वह Global Variable की तरह कार्य करता हैं ।

<?php
function MyFunction() {
    $var = "Local";
    echo 'Global scope: ' . $GLOBALS["var"] . "\n";
    echo 'Current scope: ' . $var . "\n";
}

$var = "Global";
MyFunction();
?>

Value इस प्रकार से Print होगी

Global scope: Global
Current scope: Local

$_SERVER

इस variable में server और Execution Environment के बारे में जानकारी होती हैं , जैसे Server Name, Protocol, Host Name आदि

निचे दिए गए कोड को आप एक server.php फाइल में सेव करे और localhost पर लिंक को पेस्ट करे

http://localhost/example/server.php?id1=1&id2=2

<style> table, td {border:1px solid black} </style>
<?php
$ServerExample = array('PHP_SELF', 'argv', 'argc', 'GATEWAY_INTERFACE', 'SERVER_ADDR',
'SERVER_NAME', 'SERVER_SOFTWARE', 'SERVER_PROTOCOL', 'REQUEST_METHOD',
'REQUEST_TIME','REQUEST_TIME_FLOAT','QUERY_STRING', 'DOCUMENT_ROOT',
'HTTP_ACCEPT','HTTP_ACCEPT_CHARSET','HTTP_ACCEPT_ENCODING','HTTP_ACCEPT_LANGUAGE',
'HTTP_CONNECTION','HTTP_HOST','HTTP_REFERER','HTTP_USER_AGENT','HTTPS',
'REMOTE_ADDR','REMOTE_HOST','REMOTE_PORT','REMOTE_USER',
'REDIRECT_REMOTE_USER','SCRIPT_FILENAME',
'SERVER_ADMIN','SERVER_PORT','SERVER_SIGNATURE',
'PATH_TRANSLATED','SCRIPT_NAME','REQUEST_URI',
'PHP_AUTH_DIGEST', 'PHP_AUTH_USER', 'PHP_AUTH_PW',
'AUTH_TYPE','PATH_INFO','ORIG_PATH_INFO') ;

echo '<table cellpadding="10" >' ;
foreach ($ServerExample as $item) {
    if (isset($_SERVER[$item])) {
        echo '<tr><td>'.$item.'</td><td>' . $_SERVER[$item] . '</td></tr>' ;
    }
    else {
        echo '<tr><td>'.$item.'</td><td>-</td></tr>' ;
    }
}
echo '</table>' ;
PHP_SELF/example/server.php
argv
argc
GATEWAY_INTERFACECGI/1.1
SERVER_ADDR::1
SERVER_NAMElocalhost
SERVER_SOFTWAREApache/2.4.41 (Win64) PHP/7.3.12
SERVER_PROTOCOLHTTP/1.1
REQUEST_METHODGET
REQUEST_TIME1622712472
REQUEST_TIME_FLOAT1622712472.277
QUERY_STRINGid1=1&id2=2
DOCUMENT_ROOTD:/wamp64/www
HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
HTTP_ACCEPT_CHARSET
HTTP_ACCEPT_ENCODINGgzip, deflate, br
HTTP_ACCEPT_LANGUAGEen-US,en;q=0.9,hi;q=0.8
HTTP_CONNECTIONkeep-alive
HTTP_HOSTlocalhost
HTTP_REFERER
HTTP_USER_AGENTMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36
HTTPS
REMOTE_ADDR::1
REMOTE_HOST
REMOTE_PORT50368
REMOTE_USER
REDIRECT_REMOTE_USER
SCRIPT_FILENAMED:/wamp64/www/example/server.php
SERVER_ADMINwampserver@wampserver.invalid
SERVER_PORT80
SERVER_SIGNATURE
Apache/2.4.41 (Win64) PHP/7.3.12 Server at localhost Port 80
PATH_TRANSLATED
SCRIPT_NAME/example/server.php
REQUEST_URI/example/server.php?id1=1&id2=2
PHP_AUTH_DIGEST
PHP_AUTH_USER
PHP_AUTH_PW
AUTH_TYPE
PATH_INFO
ORIG_PATH_INFO

$_GET

जो भी हमारी URL होती हैं उस पर ? mark के बाद से हम कोई भी argument पास कर देते हैं, इसमें argument name और argument value होती हैं जिसे equal sign = से अलग – अलग किया जाता हैं । first टाइम पर हम ? mark से start करते हैं और उसके बाद यदि हमें एक और argument देना हैं तो हम & इस sign का उपयोग करते हैं ।

<?php
echo 'Message :' . htmlspecialchars($_GET["msg"]) . '!';
?>
http://yourdomain.com?msg=YourMessage
Message :YourMessage

$_POST

इसको उपयोग हम डायरेक्ट URL से नहीं कर सकते इसे HTTP POST द्वारा भेजी जाती हैं receive करने के लिए हम इस प्रकार से उपयोग कर सकते हैं ।

<?php
echo 'Message :' . htmlspecialchars($_POST["msg"]) . '!';
?>
Message :YourMessage

$_FILES

जब भी हम HTTP POST का उपयोग कर कोई भी फाइल upload करते हैं तो $_FILES से उस फाइल को अपलोड कर सकते हैं , उसके लिए हमें और भी फंक्शन का उपयोग करना होता हैं आगे जब फंक्शन के बारे में समझेंगे तब फाइल अपलोड को एक Example के माध्यम से बताया जाएगा ।


$_COOKIE

कोई भी website पर हम कितने बार गए या कितने समय तक रहे और यदि कोई फील्ड पर जो हमें बार बार type करना होती हैं उन पर कुछ टाइप किया हो तो वह browser द्वारा एक text file में स्टोर कर लिया जाता हैं , जिससे हम $_COOKIE फंक्शन के माध्यम से देख सकते है

<?php
echo 'Hello ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>

Cookie में name में जो भी स्टोर होता वह print हो जाएगा, अभी हमने माना हैं की name में Your Name स्टोर हैं इसलिए Your Name प्रिंट हुआ /

Output : Hello YourName


$_SESSION

Web Development में हमें एक पेज से दूसरे पेज पर User से सम्बंधित और अन्य बहुत सी जानकारी Share करना होती हैं जो की $_SESSION के द्वारा हम आसानी से कर सकते हैं ।

<?php
session_start();
$_SESSION["mysession"]=$SetValue;
?>
<?php
session_start();
echo $_SESSION["mysession"]; //Print Session Value
?>
<?php
session_start();
$_SESSION["mysession"] = 'New Value';     //Update Session Value
?>
<?php
session_start();
unset($_SESSION["mysession"]); // Delete Session
?>

$_REQUEST

यह HTTP Request वेरिएबल हैं, इसमें $_GET, $_POST, $_COOKIE वेरिएबल की वैल्यू होती हैं , यह एक तरह से Associate Array हैं ।


$_ENV

यह एक Environment Variable हैं इसमें यूजर आदि की जानकारी स्टोर होती हैं जैसे

<?php
echo 'My Name is ' .$_ENV["USER"] . '';
?>

$http_response_header

$http_response_header यह एक array हैं, Server dwara HTTP Request जब send की जाती हैं तब उसके Response Header की वैल्यू इस array में store होती हैं । जब हम file_get_contents का उपयोग करते हैं और website प्रॉपर ओपन होती हैं तो इस variable में वैल्यू featch हो जाती है ।

<?php
function contents() {
  file_get_contents("https://google.com");
  var_dump($http_response_header);
}
Contents();

?>

इसका output इस तरह से print होगा

array (size=25)   
0 => string 'HTTP/1.0 301 Moved Permanently'  (length=30)
1 => string 'Location: https://www.google.com/'  (length=33)   
2 => string 'Content-Type: text/html; charset=UTF-8' (length=38)   
3 => string 'Date: Sat, 05 Jun 2021 05:30:10 GMT' (length=35)   
4 => string 'Expires: Mon, 05 Jul 2021 05:30:10 GMT' (length=38)   
5 => string 'Cache-Control: public, max-age=2592000'  (length=38)   
6 => string 'Server: gws'  (length=11)   
7 => string 'Content-Length: 220'  (length=19)   
8 => string 'X-XSS-Protection: 0' (length=19)   
9 => string 'X-Frame-Options: SAMEORIGIN' (length=27)   
.....

$argc

जब भी हम कोई url me argument pass करते हैं तो कितने argument हमने pass किये उनकी counting इस variable में होती हैं , इसके वैल्यू कम से कम 1 होती हैं क्युकी फाइल के नाम को भी यह एक arugment मानता हैं

लेकिन आप डायरेक्ट इसका उपयोग नहीं कर सकते इसके लिए आपको register_argc_argv  को enable करना होगा, register वेरिएबल के बारे में हम एक आर्टिक्ल में बात करेंगे

<?php
var_dump($argc);
?>

$argv

जब भी हम कोई url me argument pass करते हैं तो कितने argument हमने pass किये उनकी value array के form में इस variable में होती हैं।

लेकिन आप इसका भी डायरेक्ट उपयोग नहीं कर सकते इसके लिए आपको register_argc_argv  को enable करना होगा, register वेरिएबल के बारे में हम एक आर्टिक्ल में बात करेंगे

<?php
var_dump($argv);
?>

External Variable HTML Form

जब हम html के Form की वैल्यू PHP में उपयोग करना चाहते हैं तो हम form के submit button से php page को request send  करते हैं और जो भी डाटा form tag में होता हैं उसे php page में super global vairable $_POST, $_GET, $_REQUEST के द्वारा उपयोग कर सकते हैं ,

इसके लिए हमें एक form बनाना होता और PHP का एक पेज

<form action="my.php" method="post">
   First Name:  <input type="text" name="fname" /><br />
   Last Name:   <input type="text" name="lname" /><br />     
   <input type="submit" name="submit" value="Submit" /> 
</form>
<?php
   echo $_POST['fname'];  //   u can use echo $_REQUEST['fname'];
   echo $_POST['lname'];
?>

इस तरह से हम form tag में जो भी input tag उपयोग किये थे उनको POST method से my.php पेज पर रिसीव कर सकते हैं ।


हमारे अन्य Article

7 Comments

Add a Comment

Your email address will not be published. Required fields are marked *