Что означает "EGPCS" в PHP?

Я нашел следующий код в php.ini. что это значит?

И "PHP регистры" - что это?

; This directive describes the order in which PHP registers GET, POST, Cookie,
; Environment and Built-in variables (G, P, C, E & S respectively, often
; referred to as EGPCS or GPC).  Registration is done from left to right, newer
; values override older values.
variables_order = "EGPCS"

Ответ 1

Руководство по директиве может помочь вам немного больше: variables_order (цитирование):

Устанавливает порядок EGPCS (Окружающая среда, Get, Post, Cookie и Server). Например, если для параметра variable_order установлено значение "SP", тогда PHP создаст суперглобалы $_SERVER и $_POST, но не создавать $_ENV, $_GET и $_COOKIE. Настройка "" означает, что суперглобалы не будут установлены.

Также обратите внимание (цитирование снова):

Содержание и порядок $_REQUESTтакже затронутых этой директивой.

Я полагаю, что этот параметр был более важен некоторое время назад, когда register_globals все еще использовался, поскольку одна и та же страница заявляет (цитирует):

Если устаревший register_globalsдиректива включена (удалена с PHP 6.0.0), то variable_order также настраивает порядок ENV, GET, POST, COOKIE и SERVER являются заполненный в глобальном масштабе. Таким образом, для пример, если для параметра variable_order установлено значение "EGPCS", register_globals включен, и как $_GET['action'], так и $_POST['action'], то $actionбудет содержать значение $_POST['action'], поскольку P приходит после G в наше примерное значение директивы.

Я не вижу, что я мог добавить; это помогло?
Или это что-то в этом, что вызывает у вас проблемы?

Ответ 2

Принятый ответ выше хорош. Но еще один важный момент, который следует отметить здесь, состоит в том, что если какой-либо из этих флагов не установлен, эта переменная будет пуста при запуске script, то есть если переменная_order установлена ​​в "GPCS", переменная $_ENV всегда будет пустым массивом. Это нашло трудный путь.

Ответ 3

Он управляет порядком, в котором глобальные переменные $_GET, $_POST и т.д. определяются PHP. Буквы просто обозначают категории, например G для $_GET. Я серьезно сомневаюсь, что вы хотите возиться с этой настройкой.