Проверяю в коде php, задан ли $_POST
через isset($_POST)
Заметил, что выражение всегда возвращает true
, даже когда никаких данных не передовали, при этом $_POST является пустым массивом. Почему так происходит и зачем так сделано? Или это только при определенных условиях?
Вопрос чисто теоретический, проблемы тут никакой нет.
$_POST
, как и другие суперглобальные переменные (встроенные переменные всегда доступные во всех областях видимости) PHP ($GLOBALS
, $_SERVER
, $_GET
, $_FILES
, $_COOKIE
, $_SESSION
, $_REQUEST
, $_ENV
), изначально инициализируется пустым массивом, а потом заполняется соответствующими значениями.
За исключением $_SESSION
, которую нужно явно инициализировать вызовом session_start()
.
Сделано так, скорее всего, по каким-то внутренним соображениям для удобства.
Так же, так как в большинстве случаев в получении всего содержимого суперглобальной переменной нет необходимости, а нужно лишь получить значение или проверить наличие определенного ключа, и зная что переменная всегда массив, удобно использовать конструкцию isset($_VAR[$key]);
без дополнительных проверок самой переменной.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как написать в правилоhtaccess, чтобы при заходе на сайт переправляло на public/index
Подскажите плз реализацию правильного написания вот этого куска, чтобы название стола бралось из переменной с помощью метода Post