Skip to content

Instantly share code, notes, and snippets.

@mol4anovma
Created February 10, 2017 10:17
Show Gist options
  • Save mol4anovma/9a76c2ce029047dfb8234ed36e5cd791 to your computer and use it in GitHub Desktop.
Save mol4anovma/9a76c2ce029047dfb8234ed36e5cd791 to your computer and use it in GitHub Desktop.
Вопрос 3
<?php
//Дана форма:
?>
<form>
<input type="text" name="alpha" value=""/>
<input type="text" name="beta" value=""/>
<input type="text" name="gamma" value=""/>
</form>
<?php
//На страницу с этой формой могут поступать значения через POST и GET
//(а могут и не поступать). Есть также массив значений по умолчанияю
//$defaults. Нужно наиболее лаконично сделать так, чтобы эти значения
//подставлялись в поля таким образом, что наиболее приорететен POST,
//потом GET, потом defaults.
//Вариант решения:
$_POST = array(
"alpha" => "Alpha_POST",
"beta" => "Beta_POST",
"gamma" => "Gamma_POST"
);
$_GET = array(
"alpha" => "Alpha_GET",
"beta" => "Beta_GET",
"gamma" => "Gamma_GET"
);
$defaults = array(
"alpha" => "Alpha",
"beta" => "Beta",
"gamma" => "Gamma"
);
array_walk($defaults, function (&$item, $key) {
if (!empty($_POST[$key]) || !empty($_GET[$key])) {
$item = (!empty($_POST[$key])) ? $_POST[$key] : $_GET[$key];
}
});
?>
<form>
<input type="text" name="alpha" value="<?php print $defaults["alpha"]?>"/>
<input type="text" name="beta" value="<?php print $defaults["beta"]?>"/>
<input type="text" name="gamma" value="<?php print $defaults["gamma"]?>"/>
</form>
<?php
//Принимаем за условие, что массивы $_POST и $_GET прошли валидацию до выполнения данного участка кода
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment