Есть ли способ автоматизировать (или хотя бы автоматизировать некоторые процессы) извлечения данных из форм, хранящихся в суперглобалах $_POST
или $_GET
?
Я знаю, что вы можете перебиратьмассив с циклом foreach и другими видами циклов, чтобы сделать что-то с каждой парой ключ / значение, но во многих случаях у меня есть другой код, который нуждается в этих данных, но просто не будет работать, когда внутри цикла foreach вообще.
РЕДАКТИРОВАТЬ: Вот пример, который я могу вспомнить.Скажем, у меня есть целая куча опубликованных данных и я хочу вставить их в базу данных.Насколько я вижу, сделать что-то подобное невозможно, так как мне нужно было бы вставлять значение в разные столбцы в каждом цикле:
foreach($array as $key => $value) {
mysql_query(INSERT INTO table (somecolumn) VALUES($value);
}
Кроме того, я бы очень хотелкак сделать, это взять все значения из опубликованных данных и как-то назначить каждое из них переменной;вроде как то, что делает extract()
, но без перезаписи других переменных.Единственное, о чем я могу подумать, это как-то поместить данные в массив, но я не уверен, что это намного эффективнее:
$data = array();
foreach($array as $key => $value) {
$data[$key] = $value;
}
Последний случай, о котором я могу подумать, этокогда я должен использовать эти данные вне цикла foreach.Если я изменю свой код, чтобы он выполнялся так, чтобы все выполнялось внутри цикла foreach, я ограничиваюсь сохранением всего, что связано с данными формы, внутри цикла.Если переменные и / или константы определены внутри цикла, они не могут быть доступны вне его, правильно?В последнее время я много работал с Java и привык к более строгой области видимости и строгому способу обработки переменных :)
Я немного читал о методе extract()
, но он выглядит какчто-то опасное в использовании (перезапись переменных, дыр в безопасности и т. д.).
Для тех, кто обрабатывает большие объемы данных (скажем, более 25 полей формы), как вы это делаете?Я устал от назначения переменных типа $data = $_POST['somedata']
снова и снова, чтобы использовать их в других местах ...
Спасибо!