Как упростить проверку существующих переменных?
Собственно есть 4 переменные. Какая из низ задана - неизвестно. Действия для каждой переменной одно. Как можно получить заданную переменную, не проверяя отдельно каждую?
if(empty($first) and empty($second) and empty($third) and empty($fourth)){
echo "Все пусты";
}else{
//$desvar = ?;
$que = "SELECT id FROM table WHERE id = ?";
$prepque = $db->prepare($que);
$prepque->bind_param("i", $desvar);
$prepque->execute();
}
Ответы (2 шт):
Автор решения: Джордж Лукас
→ Ссылка
Сделайте функцию, передавайте в нее имена переменных, foreach перебирайте их и готово.
Автор решения: zippp
→ Ссылка
Как идея передавать параметры в виде массива, фильтровать его на пустые значения и сверять с исходным:
<?php
function validateValues(...$params)
{
return empty(array_diff($params, array_filter($params)));
}
if (!checkValues($param1,$param2,$param3,$param4)) {
// error
echo 'error';
} else {
// no errors
echo 'no errors';
}
по умолчанию array_filter фильтрует null данные, если нужен какой-то другой критерий, можно передать анонимную функцию вторым параметром, где реализовать необходимую логику