Так прежде всего, вот код:Упрощение вложенного If ... Else statement; гибкий массив
$greens = $_REQUEST['greens'];
$squash = $_REQUEST['squash'];
$tomatoes = $_REQUEST['tomatoes'];
$single = $greens xor $squash xor $tomatoes;
if (isset($greens,$squash,$tomatoes)) {
$array = [$greens,$squash,$tomatoes];
$product = implode(', ',$array);
} else if (isset($greens,$squash)) {
$array = [$greens,$squash];
$product = implode(', ',$array);
} else if (isset($greens,$tomatoes)) {
$array = [$greens,$tomatoes];
$product = implode(', ',$array);
} else if (isset($squash,$tomatoes)) {
$array = [$squash,$tomatoes];
$product = implode(', ',$array);
} else if (isset($single)) {
$product = $single;
} else {
$product = $_REQUEST['vendor_product'];
}
Это является частью PHP файла, чтобы представить регистрационную форму поставщика. Если поставщик выбирает «продукт» в качестве своего типа продукта, появляется набор флажков, и необходимо выбрать хотя бы один вариант. В зависимости от набора параметров выбранные значения будут совместно передаваться в базу данных в одном поле. Примерами того, как они будут отображаться в базе данных, являются: 'Greens, Squash & Zucchini'
, 'Greens, Squash & Zucchini, Tomatoes'
и 'Greens'
и т. Д., Где ', '
вставляется, если выбрано несколько опций.
Приведенный выше код работает, но хотел бы знать, есть ли способ его упростить, поскольку я скорее всего добавлю дополнительные параметры для выбора пользователем. Кроме того, несмотря на то, что для каждого условия есть несколько истинных результатов, можно ли использовать тернарный оператор? Я до сих пор довольно новичок в понимании этого оператора.
'php's' массивы по дизайну гибкие. –