Привет, так что я пытаюсь сделать здесь, чтобы проверить два источника моей функции, если установлен $ 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;");
Вы, вероятно, должны пройти поток управления в зависимости от того, что установлено:
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'])
Надеюсь, поможет.
Других решений пока нет …