متغیرهای جهانی PHP - متغیرهای جهانی

متغیرهای جهانی در PHP 4.1.0 معرفی شدند و همیشه در تمام حوزه‌ها قابل دسترسی هستند.

متغیرهای جهانی PHP - متغیرهای جهانی

بسیاری از متغیرهای پیش‌تعریف شده PHP

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

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

این بخش به برخی از متغیرهای جهانی معرفی خواهد شد و در بخش‌های بعدی به دیگر متغیرهای جهانی نیز اشاره خواهد شد.

$GLOBALS — اشاره‌گر به تمام متغیرهای موجود در حوزه جهانی

متغیر جهانی $GLOBALS برای دسترسی به متغیرهای جهانی در هر مکان از اسکریپت PHP (از تابع یا روش نیز می‌توان به آن دسترسی داشت) استفاده می‌شود.

PHP تمام متغیرهای جهانی را در آرایه‌ای به نام $GLOBALS ذخیره می‌کند. نام متغیرها کلیدهای آرایه هستند.

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

Example

<?php 
$x = 75; 
$y = 25;
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
addition(); 
echo $z; 
?>

Run Example

در مثال بالا، به دلیل اینکه z در آرایه $GLOBALS است، می‌توان آن را در خارج از تابع نیز دسترسی داشت.

PHP $_SERVER

متغیر جهانی $_SERVER اطلاعات مربوط به سربرگ‌ها، مسیرها و مکان اسکریپت را ذخیره می‌کند.

مثال زیر نشان می‌دهد که چگونه می‌توان از برخی از عناصر $_SERVER استفاده کرد:

Example

<?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'];
?>

Run Example

جدول زیر عناصر مهمی را که می‌توانید در $_SERVER دسترسی پیدا کنید، لیست می‌کند:

عنصر/کد توضیح
$_SERVER['PHP_SELF'] نام فایل اسکریپت کنونی را بازمی‌گرداند.
$_SERVER['GATEWAY_INTERFACE'] نسخه استاندارد CGI مورد استفاده سرور را بازمی‌گرداند.
$_SERVER['SERVER_ADDR'] آدرس IP سروری که اسکریپت کنونی در آن اجرا می‌شود را بازمی‌گرداند.
$_SERVER['SERVER_NAME'] نام میزبان سروری که اسکریپت کنونی در آن اجرا می‌شود را بازمی‌گرداند (مثلاً www.codew3c.com).
$_SERVER['SERVER_SOFTWARE'] رشته شناسایی سرور را بازمی‌گرداند (مثلاً Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL'] نام و نسخه پروتکل ارتباطی که برای درخواست صفحه استفاده شده را بازمی‌گرداند (مثلاً “HTTP/1.0”).
$_SERVER['REQUEST_METHOD'] روش درخواستی که برای دسترسی به صفحه استفاده شده را بازمی‌گرداند (مثلاً POST).
$_SERVER['REQUEST_TIME'] سرچشمه‌ای از تایم استیک (timestamp) در ابتدای درخواست را بازمی‌گرداند (مثلاً 1577687494).
$_SERVER['QUERY_STRING'] سرچشمه‌ای از رشته جستجو را بازمی‌گرداند، اگر از طریق رشته جستجو به این صفحه دسترسی پیدا کرده‌اید.
$_SERVER['HTTP_ACCEPT'] سرور HTTP سرچشمه‌ای از سربرگ‌های درخواست کنونی را بازمی‌گرداند.
$_SERVER['HTTP_ACCEPT_CHARSET'] سرور Accept_Charset سرچشمه‌ای از درخواست کنونی را بازمی‌گرداند (مثلاً utf-8, ISO-8859-1).
$_SERVER['HTTP_HOST'] سرور Host سرچشمه‌ای از درخواست کنونی را بازمی‌گرداند.
$_SERVER['HTTP_REFERER'] URL کامل صفحه کنونی را بازمی‌گرداند (اعتمادپذیری پایین، زیرا همه کاربران‌پایه پشتیبانی نمی‌کنند).
$_SERVER['HTTPS'] آیا از پروتکل HTTP امن برای جستجوی اسکریپت استفاده می‌شود؟
$_SERVER['REMOTE_ADDR'] آدرس IP کاربری که صفحه فعلی را مشاهده می‌کند را بازمی‌گرداند.
$_SERVER['REMOTE_HOST'] نام میزبان کاربری که صفحه فعلی را مشاهده می‌کند را بازمی‌گرداند.
$_SERVER['REMOTE_PORT'] پورت مورد استفاده توسط کاربر برای اتصال به سرور وب را بازمی‌گرداند.
$_SERVER['SCRIPT_FILENAME'] مسیر绝对 برای اسکریپت فعلی را بازمی‌گرداند.
$_SERVER['SERVER_ADMIN'] این مقدار نشان‌دهنده پارامتر SERVER_ADMIN در فایل پیکربندی سرور Apache است.
$_SERVER['SERVER_PORT'] پورت مورد استفاده توسط سرور وب. مقدار پیش‌فرض آن 80 است.
$_SERVER['SERVER_SIGNATURE'] نسخه سرور و نام میزبان مجازی را بازمی‌گرداند.
$_SERVER['PATH_TRANSLATED'] پایه مسیر فایل سیستم (غیر از دایرکتوری ریشه مستند) اسکریپت فعلی است.
$_SERVER['SCRIPT_NAME'] مسیر اسکریپت فعلی را بازمی‌گرداند.
$_SERVER['SCRIPT_URI'] URI صفحه فعلی را بازمی‌گرداند.

PHP $_REQUEST

PHP $_REQUEST برای جمع‌آوری داده‌های فرم ارسالی استفاده می‌شود.

مثال زیر یک فرم شامل فیلدهای ورودی و دکمه ارسال را نشان می‌دهد. پس از اینکه کاربر بر روی دکمه ارسال کلیک می‌کند تا داده‌های فرم را ارسال کند، داده‌های فرم به اسکریپت مشخص شده در属性 action برچسب <form> ارسال می‌شود. در این مثال، ما فایل خود را برای پردازش داده‌های فرم مشخص کرده‌ایم. اگر نیاز دارید از یک فایل PHP دیگر برای پردازش داده‌های فرم استفاده کنید، نام فایل انتخابی خود را تغییر دهید. سپس می‌توانیم از متغیرهای سراسری $_REQUEST برای جمع‌آوری مقادیر فیلدهای ورودی استفاده کنیم:

Example

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

Run Example

PHP $_POST

PHP $_POST برای جمع‌آوری داده‌های فرم ارسالی با استفاده از method="post" در فرم‌های HTML و همچنین برای انتقال متغیرها بسیار استفاده می‌شود.

مثال زیر یک فرم شامل فیلدهای ورودی و دکمه ارسال را نشان می‌دهد. پس از اینکه کاربر بر روی دکمه ارسال کلیک می‌کند تا داده‌ها را ارسال کند، داده‌های فرم به فایل مشخص شده در属性 action برچسب <form> ارسال می‌شود. در این مثال، ما فایل خود را برای پردازش داده‌های فرم مشخص کرده‌ایم. اگر می‌خواهید از یک صفحه PHP دیگر برای پردازش داده‌های فرم استفاده کنید، نام فایل انتخابی خود را تغییر دهید. سپس می‌توانیم از متغیرهای سراسری $_POST برای جمع‌آوری مقادیر فیلدهای ورودی استفاده کنیم:

Example

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

Run Example

PHP $_GET

PHP $_GET can also be used to collect form data submitted after an HTML form (method="get").

$_GET can also collect data sent in the URL.

Assuming we have a page with hyperlinks that have parameters:

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

When the user clicks the link "Test $GET", the parameters "subject" and "web" are sent to "test_get.php", and then you can access these values in "test_get.php" through $_GET.

The following example is the code in "test_get.php":

Example

<html>
<body>
<?php 
echo "Learning " . $_GET['web'] . " in " . $_GET['subject'];
?>
</body>
</html>

Run Example

Tip:You will be PHP Form Learn more about $_POST and $_GET in this section.