как получить все переменные из URL страницы в php - PullRequest
0 голосов
/ 03 мая 2020

У меня есть php код, подобный этому

<?php 
  if(isset($_GET['qry'])) {

   echo $_GET['qry']; 

  }else if(isset($_GET['ct'])) {

   echo $_GET['ct']; 

  } else if(isset($_GET['sct'])) {

   echo $_GET['sct']; 

  } else if(isset($_GET['brand'])) {

   echo $_GET['brand']; 

  } else {

   echo "";

} ?>

, что здесь происходит, так это то, что я хочу получить значение из переменных в URL, но кое-что они отличаются на той же странице. поэтому, пожалуйста, есть более простой способ сделать это, получив все значения из переменных и присвоив их переменной внутри моего кода, не печатая все переменные на странице, например,

например

$allVariables = $_GET['get all variables'];

if($allVariables == '1'){ 

//do this

}

OR

if($allVariables == '2') {

// do this

}

пожалуйста, есть ли способ сделать это

1 Ответ

1 голос
/ 04 мая 2020

$_GET является примером суперглобального в php:

Суперглобальные переменные являются встроенными переменными, которые всегда доступны во всех областях.

* В частности, 1008 *

и $_GET:

Ассоциативный массив переменных, передаваемых в текущий скрипт через параметры URL (он же строка запроса).

Вы можете проверить, установлен ли параметр $_GET , и установить переменную, равную ее значению , за один шаг, используя оператор объединения нулей :

$var = $_GET['some_parameter'] ?? null

В этом случае $var равно значению $_GET['some_parameter'], если оно существует, или ноль в противном случае.

~~~~~ EDIT ~~~~~

Как указано в комментариях, этот оператор доступен только в php 7.2.0 и далее. Чтобы добиться того же в версиях <7.2, используйте троичный оператор <a href="https://www.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary" rel="nofollow noreferrer"> :

$var= isset($_GET['some_parameter']) ? $_GET['some_parameter'] : null;

~~~~~~~~~~~~~~~


В вашем коде, где вы проверяете if($allVariables == '1'){//do this}, если вы на самом деле пытаетесь проверить количество параметров, переданных через URL, вы должны использовать функцию count().

if (count($_GET) == 1) {
  // do this
} else if (count($_GET) == 2) {
  // do this instead
}

... но это будет ограниченное использование, поскольку оно ничего не говорит о , которым были переданы параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...