Я хочу, чтобы ясное содержимое массива $ _POST полностью, все примеры, которые я вижу в Интернете, выглядят так:
if (count($_POST) > 0) { foreach ($_POST as $k=>$v) { unset($_POST[$k]); } }
Скажите пожалуйста, этот вариант будет не лучше? (С точки зрения экономии ресурсов)
if (count($_POST) > 0) { $_POST = array(); }
или нет ?
Да это нормально. $_POST
– это еще одна переменная, за исключением того, что она имеет ( супер ) глобальную область.
$_POST = array();
… будет вполне достаточно. Цикл бесполезен. Вероятно, лучше сохранить его как массив, а не отключить его, если другие файлы пытаются его прочитать и считая, что это массив.
Чтобы $_POST
переменную $_POST
, переопределите ее как пустой массив:
$_POST = array();
Это может показаться чересчур неудобным, но вам, вероятно, лучше отключить один элемент за раз, а не весь массив $ _POST. Вот почему : если вы используете объектно-ориентированное программирование, у вас может быть один класс, который использует $ _POST ['alpha'], а другой класс использует $ _POST ['beta'], и если вы отключите массив после первого использования, он будет void его использование в других классах. Чтобы быть в безопасности и не стрелять себе в ногу, просто введите небольшой метод, который будет отменять элементы, которые вы только что использовали: например:
private function doUnset() { unset($_POST['alpha']); unset($_POST['gamma']); unset($_POST['delta']); unset($_GET['eta']); unset($_GET['zeta']); }
сprivate function doUnset() { unset($_POST['alpha']); unset($_POST['gamma']); unset($_POST['delta']); unset($_GET['eta']); unset($_GET['zeta']); }
сprivate function doUnset() { unset($_POST['alpha']); unset($_POST['gamma']); unset($_POST['delta']); unset($_GET['eta']); unset($_GET['zeta']); }
сprivate function doUnset() { unset($_POST['alpha']); unset($_POST['gamma']); unset($_POST['delta']); unset($_GET['eta']); unset($_GET['zeta']); }
сprivate function doUnset() { unset($_POST['alpha']); unset($_POST['gamma']); unset($_POST['delta']); unset($_GET['eta']); unset($_GET['zeta']); }
сprivate function doUnset() { unset($_POST['alpha']); unset($_POST['gamma']); unset($_POST['delta']); unset($_GET['eta']); unset($_GET['zeta']); }
Просто вызовите метод и отмените только те суперглобальные элементы, которые были переданы переменной или аргументу . Тогда другие классы, которые могут нуждаться в суперглобальном элементе, могут все еще использовать их.
Тем не менее, вам разумно отключить суперглобалы, как только они будут переданы инкапсулированному объекту.
unset()
и инициализации: unset($_POST); $_POST = array();
сunset($_POST); $_POST = array();
Или в одном заявлении:
unset($_POST) ? $_POST = array() : $_POST = array();
Но почему вы хотите это сделать?
Чтобы ответить «почему» кто-то мог его использовать, я был склонен использовать его, так как у меня были значения $ _POST, сохраненные после обновления страницы или при переходе с одной страницы на другую. Мой смысл подсказывает мне, что это не очень хорошая практика, но тем не менее она работает.