Проверка переменной URL для нескольких строк запроса

0

В настоящее время у меня есть: $_GET["number"] == "one"

Я пытаюсь проверить php на url ?number=one ?number=two или ?number=three.

Как упростить код ниже, чтобы он проверял все 3:

(isset($_GET["number"] == "one" && $_GET["number"] == "two" && $_GET["number"] == "three")
  • 0
    Используйте || вместо &&
Теги:

4 ответа

0
Лучший ответ
if (isset($_GET['number'])) {
  $options = array("one", "two", "three");
  in_array($_GET['number'], $options);
}

Таким образом, вы можете расширить свои возможности позже. Первая строка состоит в том, чтобы убедиться, что, когда параметр числа отсутствует, не выполняйте часть кода, вам может и не понадобиться. Проверьте основную часть http://php.net/manual/en/function.in-array.php.

0

Надеюсь, вы ищете что-то вроде этого:

if(isset($_GET["number"]) && ($_GET["number"] == "one" || $_GET["number"] == "two" || $_GET["number"] == "three")){
// Do something here
}
0

Пожалуйста, проверьте ниже:

$arg = array('one', 'two', 'three');
if (isset($_GET["number"]) && in_array($_GET["number"], $arg, TRUE)) {
    // do the stuff
    switch ($_GET["number"]) {
        case 'one':
            // code to be executed for one
            break;
        case 'two':
            // code to be executed for two
            break;
        case 'three':
            // code to be executed for three
            break;
    }
}
0

в первую очередь вы не можете поместить условие в свой isset() Затем, если вы хотите проверить наличие предмета, используйте оператор OR (||). Если вы хотите проверить наличие всех элементов, используйте оператор AND (&&). Так что в коде вам нравится это

if(isset($_GET['number']) && ($_GET['number'] == 'one' || $_GET['number'] == 'two' || $_GET['number'] == 'three'))
{
   // do your stuff here
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню