Проверьте, установлено ли значение переменной php для переменной?

Мне нужно проверить, установлены ли переменные на что-то. До сих пор я использовал strlen(), но это действительно неловко, так как я уверен, что это не очень эффективная функция, которую можно использовать снова и снова.

Как я могу выполнить такую ​​проверку более эффективно:

if (strlen($_GET['variable']) > 0)
{
    Do Something
}

Обратите внимание: я не хочу, чтобы он ничего не делал, если $_GET['variable'] = ''

Просто, чтобы уточнить, что я имею в виду. Если бы у меня было www.example.com?variable=&somethingelse=1, я бы не хотел, чтобы он проникал в это утверждение if

Ответ 1

Вы можете попробовать empty.

if (!empty($_GET['variable'])) {
  // Do something.
}

С положительной стороны он также проверяет, установлена ​​ли переменная или нет, т.е. нет необходимости вызывать isset отдельно.

Существует некоторая путаница в том, что вы не вызываете isset. Из документации.

Переменная считается пустой, если она не существует или ее значение равно FALSE. empty() не генерирует предупреждение, если переменная не существует.

и...

Это означает, что empty() по существу является кратким эквивалентом! isset ($ var) || $var == false.

Ответ 2

 if(isset($_GET['variable']) && $_GET['variable']!=""){

}

Ответ 3

if(isset($_GET['variable']) && !empty($_GET['variable']))
{
//Do Something
}

Ответ 4

Если вы просто хотите проверить, установлен ли какой-либо $_GET, не зная значения, просто подсчитайте массив $_GET:

<?php
if (count($_GET) == 0):
    // do your stuff
else:
    // do your other stuff
endif;
?>

Ответ 5

Вы можете использовать check для isset(), но я бы предпочел также проверить не пустой символ с != ''

if (isset($_GET['variable'])) && ($_GET['variable']) != '')

Ответ 6

как насчет просто

if ($_GET['variable'])
{
     Do Something
}