Нулевых массивов нет, если массив объявлен, а $_POST, это суперглобальный массив и он всегда есть, то он уже не есть NULL, просто длина его равно 0.
Но это следствие, а не причина, причина этого на клиенте, а говоря точнее в ваших действиях. Читаем
тут, если не понятно еще. И желательно, чтобы ответ на вопрос "в чем я накосячил" вы нашли сами.