متغیر های سوپرگلوبال (Superglobal) از نسخه ی 4.1.0 به php اضافه شدند. این متغیر های از پیش تعریف شده در تمامی بخش های کدنویسی در دسترس هستند و شما میتوانید با استفاده از توابع، کلاس ها و حتی فایل هایی که کار خاصی انجام نمی دهند این متغیر ها را فراخوانی کنید و از آن ها در بدنه ی کدنویسی خود استفاده کنید .
این متغیر ها به شرح زیر می باشند :
در این قسمت به توضیح برخی از آن ها می پردازیم و در جلسات آتی مابقی آن ها را توضیح خواهیم داد.
متغیر GLOBALS$ برای دسترسی به تمام متغیرهای سوپر گلوبال در هرجایی از اسکریپت php مورد استفاده قرار می گیرد.( حتی در بدنه ی توابع و متد ها)
زبان php تمامی متغیر های گلوبال را در متغیری به نام [Globals[$index$ نگهداری می کند . که index$ حاوی نام متغیر می باشد.
در مثال زیر متوجه خواهید شد که چطور از متغیر GLOBALS$ استفاده می شود.
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
در بدنه ی تابع addition حاصل جمع دو متغیر x$ و y$ را در z$ قرار داده ایم. همانطور که گفته شد GLOBALS$ متغیر را در هر کجای برنامه باشد فراخوانی میکند .
هم چنین متغیر z$ خارج از تابع نیز قابل دسترسی خواهد بود. در نتیجه خروجی دستورات بالا حاصل جمع x$ و y$ یعنی عدد 100 خواهد بود.
متغیر SERVER_$ یکی از متغیر های سوپر گلوبال در Php است که اطلاعات عنوان ها، مسیر ها و محل دستورها را در خود نگهداری می کند . در مثال زیر می توانید نحوه استفاده SERVER_$ را در Php مشاهده نمایید.
<?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']; ?>
خروجی مثال بالا به شکل زیر خواهد بود :
/php/demo_global_server.php
www.w3schools.com
www.w3schools.com
https://www.w3schools.com/php/showphp.asp?filename=demo_global_server
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
/php/demo_global_server.php
خروجی متغیر گلوبال SERVER_$
در جدول زیر پارامتر هایی را مشاهده خواهید کرد که متعلق به SERVER_$ می باشند.
| توضیحات | عنصر/کد |
| بازگردانی نام اسکریپتی که در حال اجرا می باشد | $_SERVER[‘PHP_SELF’] |
| بازگردانی اطلاعاتی در مورد ورژن gateway interface سرور | $_SERVER[‘GATEWAY_INTERFACE’] |
| بازگردانی آدرس IP سرور میزبان | $_SERVER[‘SERVER_ADDR’] |
| بازگردانی نام سرور | $_SERVER[‘SERVER_NAME’] |
| بازگردانی رشته شناسایی سرور | $_SERVER[‘SERVER_SOFTWARE’] |
| بازگردانی نام و نسخه پروتکل اطلاعات | $_SERVER[‘SERVER_PROTOCOL’] |
| بازگردانی روش درخواست استفاده شده برای دسترسی به صفحه (مانند POST) | $_SERVER[‘REQUEST_METHOD’] |
| بازگردانی زمان شروع درخواست | $_SERVER[REQUEST_TIME] |
| بازگردانی رشته پرس و جو اگر صفحه از طریق یک رشته پرس و جو قابل دسترسی می باشد | $_SERVER[‘QUERY_STRING’] |
| بازگردانی هدر قبولی از درخواست جاری | $_SERVER[‘HTTP_ACCEPT’] |
| بازگردانی هدر Accept_Charset از درخواست فعلی | $_SERVER[‘HTTP_ACCEPT_CHARSET’] |
| بازگردانی هدر میزبان از درخواست جاری | $_SERVER[‘HTTP_HOST’] |
| بازگردانی URL کامل از صفحه جاری | $_SERVER[‘HTTP_REFERER’] |
| بازگردانی آیا اسکریپت از طریق یک پروتکل HTTP امن درخواست شده است? | $_SERVER[‘HTTPS’] |
| بازگردانی آدرس IP جایی که کاربر در حال مشاهده صفحه ی جاری است. | $_SERVER[‘REMOTE_ADDR’] |
| بازگردانی نام میزبان از جایی که کاربر در حال مشاهده صفحه ی جاری است. | $_SERVER[‘REMOTE_HOST’] |
| بازگردانی پورت استفاده شده روی دستگاه کاربر برای برقراری ارتباط با سرور وب. | $_SERVER[‘REMOTE_PORT’] |
| بازگردانی مسیر مطلق اسکریپت جاری در حال اجرا. | $_SERVER[‘SCRIPT_FILENAME’] |
| بازگردانی مقدار داده شده به دستور SERVER_ADMIN در فایل پیکربندی وب سرور. | $_SERVER[‘SERVER_ADMIN’] |
| بازگردانی پورت روی دستگاه سرور که توسط سرور وب برای برقراری ارتباط استفاده می شود (مانند 80). | $_SERVER[‘SERVER_PORT’] |
| بازگردانی نسخه سرور و نام میزبان مجازی که به صفحات سرور تولید شده اضافه شده است. | $_SERVER[‘SERVER_SIGNATURE’] |
| بازگردانی فایل سیستم مسیر مبتنی بر اسکریپت فعلی | $_SERVER[‘PATH_TRANSLATED’] |
| بازگردانی مسیر اسکریپت جاری | $_SERVER[‘SCRIPT_NAME’] |
| بازگردانی URI صفحه جاری | $_SERVER[‘SCRIPT_URI’] |
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Get IP Address</title>
</head>
<body>
<p>Your IP address follows.</p>
<div style="background: #ddd;">
Your IP Address: <span style="color: red;">
<?php echo $_SERVER['REMOTE_ADDR']; ?>
</span>
</div>
</body>
</html>