Используя логический оператор ‘или’ верните всегда true

Привет, так что я пытаюсь сделать здесь, чтобы проверить два источника моей функции, если установлен $ this-> post [«search»] использовать его или если установлен $ this-> post [«id»] использовать id, но не оба:

($this->post["search"] or $this->post["id"])

Если я дам дамп, я получу значение bool с верным ответом, почему?
Так что, если у меня есть длинная строка, как строка SQL, я не хочу использовать elseifя хочу быть более похожим на:

$this->sql->cell("select search_for('" . $this->post["search"] or $this->post["id"] . "') as response;");

-1

Решение

Вы, вероятно, должны пройти поток управления в зависимости от того, что установлено:

if ( isset($this->post["search"]) ) {
// deal with search
} else if ( isset($this->post["id"]) ) {
// deal with id
} else {
// gracefully reject dealing: nothing to do
}

КСТАТИ, isset возвращается true для пустых строк:

$test = array( 'a' => '' );
var_dump(isset($test['a']));
//⇒ bool(true)

Чтобы определить, является ли $_POST параметр имеет значение, используйте:

!empty($_POST['id'])

Надеюсь, поможет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]