برخی از متغیر های از پیش تعریف شده php در تمامی بخش های برنامه از کلاس گرفته تا فانکشن ها در دسترس هستند. که اصطلاحا به آنها Superglobals نیز گفته می شوند. این متغیر ها به شرح زیر می باشند.
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
متغیر GLOBALS
با استفاده از متغیر GLOBALS می توانید به تمامی متغیرهایی که به صورت گلوبال تعریف شده اند دسترسی داشته باشید. پی اچ پی تمامی متغیرهای گلوبال را در آرایه ای ذخیره می کند که به شکل زیر می توانید به تمامی آنها دسترسی داشته باشید.
$GLOBALS[index]
index به نام متغییر اشاره می کند. به مثال زیر توجه نمایید.
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
SERVER
این متغیر گلوبال حاوی اطلاعاتی در مورد سرور، اسکریپت و … می باشد. به کدهای زیر توجه کنید.
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'];
در صورت اجرای کدهای بالا نتیجه مشابه خروجی زیر خواهد بود.
/demo/demo_global_server.php
35.194.26.41
35.194.26.41
https://tryphp.w3schools.com/showphp.php?filename=demo_global_server
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203
/demo/demo_global_server.php
REQUEST
از این متغیر برای جمع آوری اطلاعات بعد از زدن دکمه submit و ارسال اطلاعت فرم html استفاده می شود. به مثال زیر توجه نمایید.
<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;
}
}
?>
POST
از این متغیر نیز جهت دریافت اطلاعات از فرم ارسالی استفاده می شود. البته به شرطی که method استفاده شده در فرم، post باشد. به این مثال دقت نمایید.
<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;
}
}
?>
GET
از این متغیر برای جمع آوری اطلاعات از url و یا فرم html استفاده می شود. البته method استفاده شده در فرم باید get باشد. به مثال زیر توجه کنید که برای جمع آوری اطلاعات از url کلیک شده استفاده می شود.
<html>
<body>
<a href="test_get.php?subject=PHP&web=Ahady.ir">Test $GET</a>
</body>
</html>
کدهای صفحه test_get.php
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>