برنامه نویسی

آشنایی با متغیر های Global و Superglobal در PHP و آموزش نحوه استفاده و کار با آنها

آشنایی با متغیر های Global و Superglobal در PHP و آموزش نحوه استفاده و کار با آنها

استفاده از متغیر های Global و Superglobal در PHP ساده است، ما در این مقاله قصد داریم، شما عزیزان را به طور کامل با متغیر های Global و Superglobal در پی اچ پی آشنا کنیم، همراه داتیس نتورک باشید.

آشنایی با متغیر های Global و Superglobal در PHP و آموزش نحوه استفاده و کار با آنها

متغیر های Global و Superglobal در PHP

Superglobal از PHP 4.1.0 معرفی شده و متغیر های درون ساخت پی اچ پی هستند که در همه محدوده ها (scope ها) در دسترس ما هستند.

در پی اچ پی متغیر های Superglobal متعددی در دسترس ما قرار گرفته اند.

متغیر Superglobal همیشه بدون وابستگی به محدوده و اسکوپ خاص قابل دسترسی هستند، بنابراین شما می توانید از هر تابع، کلاس یا فایلی بدون انجام هیچ نوع عملیات خاصی، آنها را فراخوانی کرده و از آنها استفاده کنید.

متغیر های Superglobal در PHP عبارت اند از:

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

متغیر $GLOBALS در PHP

متغیر $GLOBALS یک متغیر Superglobal است. از این متغیر جهت دسترسی به متغیر های سراسری در هر جایی از کد استفاده می شود.

در مثال زیر نحوه استفاده از متغیر $GLOBALS را می توانید مشاهده کنید:

<?php 
$x = 75; 
$y = 25;

function addition() { 
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}

addition(); 
echo $z; 
?>

در مثال بالا ، از آنجا که z یک متغیر موجود در آرایه $GLOBALS است ، از خارج از تابع نیز قابل دسترسی است!

متغیر $_SERVER در PHP

این متغیر هم باز مانند متغیر قبلی یک متغیر Superglobal است که اطلاعاتی از قبیل header ها، path ها و مسیر های اسکریپت ها را در خود نگهداری می کند.

در مثال زیر نحوه دسترسی به برخی از عناصر موجود در این متغیر را می توانید مشاهده کنید:

<?php 
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

متغیر $_REQUEST در Global و Superglobal پی اچ پی

متغیر $_REQUEST برای جمع آوری اطلاعات پس از ارسال یک فرم HTML مورد استفاده قرار می گیرد.

در زیر یک مثال حاوی یک فرم با یک فیلد ورودی و دکمه ارسال است.

زمانی که کاربر با کلیک روی دکمه submit اطلاعات فرم را ارسال می کند، اطلاعات فرم به مسیری که در بخش action در تگ form مشخص شده ارسال می شود.

در مثال زیر ما این مقدار را برابر خود فایل فعلی قرار داده ایم تا از همین فایل برای پردازش فرم استفاده کنیم. اگر میخواهید از فایل PHP دیگری برای پردازش اطلاعات فرم استفاده کنید باید مقدار action را با نام فایل دلخواهتان عوض کنید.

سپس با استفاده از متغیر سوپرگلوبال $_REQUEST اطلاعات ارسالی از فیلد ورودی را جمع آوری کرده ایم.

مثال:

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>

</body>
</html>

متغیر $_POST در PHP

متغیر $_POST را می توانید جهت جمع آوری اطلاعات فرم های HTML که از method=”post” در آنها بهره گرفته شده باشد، مورد استفاده قرار دهید. از $_POST برای پاس دادن متغیر ها نیز استفاده می کنیم.
در مثال زیر، یک فرم با فرم ورودی و دکمه ارسال در اختیار داریم. وقتی کاربر با کلیک روی دکمه submit اطلاعات فرم را ارسال کند، اطلاعات فرم به فایلی که در بخش action تگ form مشخص شده ارسال می شود.

در اینجا ما از خود فایل جهت پردازش اطلاعات فرم استفاده کرده ایم اما همانطور که قبلا هم گفته شد، در صورتی که می خواهید اطلاعات را در فایل دیگری پردازش کنید می توانید مقدار action را بر اساس نیاز خود تغییر دهید.

در ادامه اطلاعات جمع آوری شده از فیلد ورودی را با استفاده از $_POST مورد دسترسی قرار داده ایم.

مثال:

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>

</body>
</html>

متغیر $_GET در پی اچ پی

متغیر $_GET را هم می توانید جهت جمع آوری اطلاعات فرم های HTML که از method=”get” در آنها بهره گرفته شده باشد، مورد استفاده قرار دهید.

کاربرد دیگر $_GET جمع آوری مقادیر متغیر ها از URL است.
فرض کنید یک صفحه HTML با محتوای زیر در اختیار داشته باشیم :

<html>
<body>

<a href="test_get.php?subject=PHP&web=W3schools.com">Test $GET</a>

</body>
</html>

همان طور که در مثال بالا مشاهده میکنید، یک لینک با عنوان Click to Test GET وجود دارد. هرگاه کاربر روی این لین کلیک کند، اطلاعات متغیر های درج شده در آدرس یعنی subject و website به صفحه test_get.php ارسال خواهند شد و ما می توانیم با استفاده از $_GET به مقادیر این متغیر ها در فایل test_get.php دسترسی داشته باشید.

حالا کافی است فایلی با نام test_get.php ایجاد کنید و کد زیر را در آن قرار دهید:

<html>
<body>

<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>

امیدوارم مقاله آشنایی با متغیر های Global و Superglobal در PHP برای شما عزیزان مفید بوده باشد.

داتیس نتورک را در شبک ههای اجتماعی دنبال کنید.

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *