Суперглобальні 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ı: 70

PHP 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 поточної сторінки.