У меня есть этот HTML
<select name="country">
<option value="Iraq">1</option>
<option value="Texas">2</option>
<option value="Paris">3</option>
...
<option value="n">nnn</option>
</select>
В этом элементе выбора есть по-настоящему адское множество опций, и я бы не хотел, чтобы люди могли изменять значения любых опций, и я не могу помешать им сделать это, хотя, мне любопытно, есть ли эффективный PHP способ проверить правильность значения, например, я мог бы сделать это:
<?php
$country = $_POST['country'];
if(($country == "Iraq") && ($country == "Texas") && ($country == "Paris) ....($country == "n"))
{
allow stuff;
}
?>
Но это потребовало бы действительно огромного количества утверждений if, разве нет другого волшебного способа решить эту проблему?
Конечно, используйте in_array
:
$countries = ['Iraq','Texas',...];
if(in_array($_POST['country'], $countries)) {
// allow stuff
}
Создайте свой $countries
массив один раз, а затем использовать его для генерации вашего <select
> HTML-код и для подтверждения представления. Бонус!
Примечание: мне нужно посетить страну Техас. Не понял, что они отделились!
Это далеко от магии, но один (несколько эффективный) способ проверить это использовать in_array
http://php.net/manual/en/function.in-array.php
Если у вас есть массив ваших стран, вы также можете использовать его для создания раскрывающегося списка.