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>' ;
$_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
- MySQL Aggregate Function
- MySQL User Define Function (UDF)
- MySQL Trigger (Before/After)
- MySQL Update Stock/Balance Using Trigger
- PHP Introduction
- PHP Form Validations, Required, Filter
- SQL Logic Android App Download करे