Global Variables - Superglobals

در PHP، متغیرهای سراسری (Global Variables) و Superglobals ابزارهایی هستن که به ما اجازه میدن بدون توجه به محدوده (Scope) به داده‌ها دسترسی داشته باشیم.

1️⃣ متغیرهای سراسری (Global Variables)

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

<?php $greeting = "Hello, World!"; function sayHello() { global $greeting; // معرفی متغیر سراسری echo $greeting; } sayHello(); // Hello, World! ?>

🔹 بدون global$greeting داخل تابع شناخته نمیشه.

2️⃣ آرایه $GLOBALS

  • $GLOBALS یک آرایه سراسریه که همه متغیرهای سراسری رو نگه می‌داره.

  • میشه بدون global بهشون دسترسی داشت.

<?php $greeting = "Hello, World!"; function sayHello() { echo $GLOBALS['greeting']; } sayHello(); // Hello, World! ?>

3️⃣ Superglobals

Superglobals متغیرهای از پیش تعریف شده در PHP هستن که در همه جای کد (داخل تابع یا خارج) قابل دسترسی هستن.

مهم‌ترین Superglobals:

1️⃣ $_SERVER
اطلاعات سرور و مسیرها

<?php echo $_SERVER['PHP_SELF']; // مسیر فایل فعلی echo $_SERVER['SERVER_NAME']; // نام سرور ?>

2️⃣ $_GET
دریافت داده‌ها از URL (Query String)

<?php // URL: test.php?name=Ali echo $_GET['name']; // Ali ?>

3️⃣ $_POST
دریافت داده‌ها از فرم‌های HTML با متد POST

<?php echo $_POST['username']; ?>

4️⃣ $_REQUEST
ترکیبی از $_GET, $_POST, $_COOKIE

5️⃣ $_SESSION
داده‌های نشست کاربر (Session)

6️⃣ $_COOKIE
داده‌های ذخیره شده در مرورگر کاربر

7️⃣ $_FILES
داده‌های فایل‌های آپلود شده

8️⃣ $_ENV
متغیرهای محیطی سیستم

9️⃣ $_GLOBALS
همه متغیرهای سراسری

4️⃣ نمونه دسترسی به Superglobals

<?php // GET // URL: test.php?user=Ali echo "Hello, " . $_GET['user']; // Hello, Ali // SERVER echo $_SERVER['HTTP_USER_AGENT']; // مرورگر کاربر ?>

📌 جمع‌بندی

  • Global Variable → متغیر سراسری معمولی، با global یا $GLOBALS قابل دسترسی در تابع.

  • Superglobals → متغیرهای پیش‌فرض PHP که در همه جای برنامه قابل استفاده هستن، مثل $_GET, $_POST, $_SERVER, $_SESSION.

  • بسیار کاربردی برای فرم‌ها، فایل‌ها، نشست‌ها و اطلاعات سرور.