Я знаю, что это может быть глупый вопрос, но я сталкиваюсь с фрагментом кода php, который проверяет, есть ли $_POST
is_array()
перед выполнением других функций.
Теперь я предполагаю, что $ _POST всегда должен быть ассоциативным массивом или нет? эта проверка действительно нужна? и почему?
Если он не был изменен каким-то образом, как
$_POST = 'not array';
то это массив 😉
Эта проверка не нужна. $ _POST – суперглобальный массив, который всегда определяется. Вы должны просто проверить определенные элементы, используя isset
PHP гарантирует, что $ _POST всегда является массивом, вам не нужно делать эту проверку, если где-то в вашем коде вы не отменили или не перезаписали $ _POST.
$ _POST всегда является массивом, вероятно, он проверяет, является ли определенное значение $ _POST массивом.
<input name="test" />
$ _POST ['test'] не является массивом
<input name="test[]" />
$ _POST ['test'] – массив
Его всегда массив, о котором многие уже говорили.
Я думаю, что, возможно, стоит проверить пустой массив. ! empty ($ _ POST) должен делать только отлично.
Может быть, у кодера есть разделы, где массив изменен на строку (немой, если вы спросите меня), и хочет сделать чек, иначе, если это утверждение будет первым, тогда его ненужное
$ _POST всегда определяется как массив, даже если он не содержит пары ключей / значений.
Как уже упоминалось несколько раз, $_POST
является суперглобальным, который всегда определяется и всегда является массивом (если не перезаписываться).
Если вы пытаетесь проверить, что что-то было опубликовано, вы можете использовать что-то вроде следующего:
if (count($_POST)) { // something has been submitted }
Чтобы ответить на главный вопрос, нет, проверка is_array
не требуется.