Суперглобальні PHP — це вбудовані змінні, до яких можна отримати доступ із усіх областей.
PHP Super Globals (PHP Super Globals)
У цьому уроці ми пояснимо всі суперглобальні в PHP на прикладах. Читайте далі, щоб дізнатися.
PHP Super Globals: $GLOBALS
Суперглобал $GLOBALS використовується для доступу до глобальних змінних з будь-якого поля (включаючи функції або методи) у сценарії PHP. PHP зберігає всі глобальні змінні в масиві під назвою $GLOBALS[index]. Індекс містить назву змінної. У наступному прикладі показано, як використовувати суперглобальну змінну $GLOBALS:
$number1 = 50;
$number2 = 20;
function addition(): int
{
return $GLOBALS[ 'number3' ] = $GLOBALS[ 'number2' ] + $GLOBALS[ 'number1' ];
}
echo addition();
// Çıktı: 70PHP Super Globals: $_REQUEST
PHP $_REQUEST — суперглобал PHP, який використовується для збору даних із форми HTML.
<!DOCTYPE html>
<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') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_REQUEST[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>У прикладі вище ми створили форму, яка повертає дані за допомогою методу post. Ми дозволили йому повертати дані на тій же сторінці, що й $_SERVER['PHP_SELF']. Ми перевірили, що запит, який надходить із суперглобалом $_SERVER['REQUEST_METHOD'], є запитом на публікацію. Потім ми безпечно призначили дані з вводу під назвою fname зі значенням name до змінної $name із суперглобалом $_REQUEST за допомогою функції htmlspecialchars(). Ми перевірили, чи є змінна $name порожньою чи ні за допомогою умови PHP if. Якщо він порожній, ми друкуємо вихідні дані "No name", інакше друкуємо дані змінної $name.
PHP Super Globals: $_POST
PHP $_POST — це суперглобал PHP, який використовується для збору даних із форми HTML за допомогою методу POST.
<!DOCTYPE html>
<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') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_POST[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>У прикладі вище ми створили форму, яка повертає дані за допомогою методу post. Ми дозволили йому повертати дані на тій же сторінці, що й $_SERVER['PHP_SELF']. Ми перевірили, що запит, який надходить із суперглобалом $_SERVER['REQUEST_METHOD'], є запитом на публікацію. Потім ми безпечно призначили дані з вводу під назвою fname зі значенням name до змінної $name за допомогою суперглобального елемента $_POST за допомогою функції htmlspecialchars(). Ми перевірили, чи є змінна $name порожньою чи ні за допомогою умови PHP if. Якщо він порожній, ми друкуємо вихідні дані "No name", інакше друкуємо дані змінної $name.
PHP Super Globals: $_GET
PHP $_GET — суперглобал PHP, який використовується для збору даних із форми HTML за допомогою методу GET. Ми також можемо отримати дані, надіслані за допомогою get в URL-адресі за допомогою суперглобального $_GET.
Отримання даних із форми за допомогою PHP $_GET Super Global
У прикладі нижче ми отримали дані з форми HTML із суперглобалом PHP $_GET.
<!DOCTYPE html>
<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' ] === 'GET') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_GET[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>У прикладі вище ми створили форму, яка повертає дані за допомогою методу post. Ми дозволили йому повертати дані на тій же сторінці, що й $_SERVER['PHP_SELF']. Ми перевірили, що запит, який надходить із суперглобалом $_SERVER['REQUEST_METHOD'], є запитом на публікацію. Потім ми безпечно призначили дані з вводу під назвою fname зі значенням name до змінної $name за допомогою суперглобального елемента $_POST за допомогою функції htmlspecialchars(). Ми перевірили, чи є змінна $name порожньою чи ні за допомогою умови PHP if. Якщо він порожній, ми друкуємо вихідні дані "No name", інакше друкуємо дані змінної $name.
Отримання даних з URL за допомогою PHP $_GET Super Global
У наведеному нижче прикладі ми отримали дані з URL-адреси за допомогою суперглобального PHP $_GET.
<!DOCTYPE html>
<html>
<body>
<a href="<?php
echo $_SERVER[ 'PHP_SELF' ] ?>?name=Onur%20Özden&website=www.onurozden.com.tr">Buraya Tıkla</a>
<?php
echo "Ben " . $_GET[ 'name' ] . " şu sitede PHP öğreniyorum: " . $_GET[ 'website' ];
?>
</body>
</html>У наведеному вище прикладі замість того, щоб вводити назву вашого файлу, ми отримали назву файлу за допомогою суперглобулу $_SERVER. Тепер давайте пояснимо, що ми зробили в цьому прикладі. Ми створили HTML-документ і дали параметр name файлу get.php. Ми надали параметру імені значення "Onur Özden" та розділили параметри знаком "&". Після цього ми створили параметр веб-сайту та присвоїли йому значення «onurozden.com.tr». Ми надрукували текст «Натисніть тут» на мітці A. Перейшовши до частини PHP, ми надрукували «Моє ім’я» за допомогою echo та використали суперглобал $_GET з оператором конкатенації, щоб отримати та надрукувати дані параметра з іменем. Знову ж таки, використовуючи оператор злиття, ми надрукували « і мій веб-сайт ». Ми знову використали оператор конкатенації, отримали дані параметра веб-сайту з суперглобалом $GET і надрукували їх.
PHP Super Globals: $_SERVER
Суперглобальна змінна $_SERVER — це суперглобальна змінна PHP, яка містить інформацію про заголовки, шляхи та розташування сценаріїв. У прикладі нижче ми показуємо, як використовувати суперглобал $_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'];У наведеному вище прикладі ми визначили змінні з іменами $number1 і $number2 і надали їм значення типу number. Потім ми визначили функцію під назвою add, яка повертає значення типу даних int. Ми сказали, що в суперглобалі $GLOBALS імена змінних зберігаються як індекси. Ми створили змінну, створивши індекс під назвою number3. Ми присвоїли цій змінній суму змінних $number2 і $number1, до яких ми отримали доступ із глобальної області за допомогою суперглобала $GLOBALS. Потім ми повернули це значення з return і завершили функцію. На останньому кроці ми виводимо значення в нашу функцію add() за допомогою echo.
Усі види використання PHP $_SERVER Super Global
| $_SERVER['PHP_SELF'] | Повертає назву файлу виконаного сценарію. |
| $_SERVER['GATEWAY_INTERFACE'] | Повертає версію CGI (Common Gateway Interface), яку використовує сервер. |
| $_SERVER['SERVER_ADDR'] | Повертає IP-адресу хост-сервера. |
| $_SERVER['SERVER_NAME'] | Повертає назву головного сервера. |
| $_SERVER['SERVER_SOFTWARE'] | Повертає ідентифікаційний текст сервера (наприклад, Apache/2.2.24). |
| $_SERVER['SERVER_PROTOCOL'] | Повертає назву та версію інформаційного протоколу (наприклад, HTTP/1.1). |
| $_SERVER['REQUEST_METHOD'] | Повертає метод запиту, використаний для доступу до сторінки (наприклад, POST, GET). |
| $_SERVER['REQUEST_TIME'] | Повертає мітку часу початку запиту (наприклад, 1377687496). |
| $_SERVER['QUERY_STRING'] | Якщо доступ до сторінки здійснюється через рядок запиту, вона повертає рядок запиту. |
| $_SERVER['HTTP_ACCEPT'] | Повертає заголовок accept з поточного запиту. |
| $_SERVER['HTTP_ACCEPT_CHARSET'] | Повертає заголовок Accept_Charset із поточного запиту (наприклад, utf-8,ISO-8859-1). |
| $_SERVER['HTTP_HOST'] | Повертає заголовок хосту з поточного запиту. |
| $_SERVER['HTTP_REFERER'] | Повертає повну URL-адресу поточної сторінки (не надійно, оскільки не всі агенти користувача підтримують це). |
| $_SERVER['HTTPS'] | Перевіряє, чи надсилається запит сценарію через безпечний протокол HTTP (HTTPS). |
| $_SERVER['REMOTE_ADDR'] | Повертає IP-адресу, з якої користувач переглядає поточну сторінку. |
| $_SERVER['REMOTE_HOST'] | Повертає ім’я хосту, з якого користувач переглядає поточну сторінку. |
| $_SERVER['REMOTE_PORT'] | Повертає порт, який використовується на комп’ютері користувача для зв’язку з веб-сервером. |
| $_SERVER['SCRIPT_FILENAME'] | Повертає абсолютний шлях поточного сценарію, що виконується. |
| $_SERVER['SERVER_ADMIN'] | Повертає значення, надане директиві SERVER_ADMIN у файлі конфігурації веб-сервера (якщо ваш сценарій запущено на віртуальному хості, це буде значення, визначене для цього віртуального хосту) (наприклад some@onurozden.com.tr). |
| $_SERVER['SERVER_PORT'] | Повертає порт на сервері, який використовується веб-сервером для зв’язку (наприклад, 80). |
| $_SERVER['SERVER_SIGNATURE'] | Повертає версію сервера та ім’я віртуального хоста, додане до сторінки, створеної сервером. |
| $_SERVER['PATH_TRANSLATED'] | Повертає шлях на основі файлової системи до поточного сценарію. |
| $_SERVER['SCRIPT_FILENAME'] | Повертає шлях до поточного сценарію. |
| $_SERVER['SCRIPT_URI'] | Повертає URI поточної сторінки. |



