запрос адреса php

#php

#php

Вопрос:

у меня есть этот метод запроса:

 if (!$_REQUEST['0'])  {
    echo "Address missing...";
    die();
} else {
    code
    code etc.
}
  

И адрес такой: http://localhost/api.php?0 =адрес

Если я открою: api.php?0=0 я должен получить другую ошибку, в которой говорится, что адрес не исправлен. Но я получаю Address missing … На мой взгляд, что-то не так с:

 if (!$_REQUEST['0']) 
  

Есть идеи?

Комментарии:

1. 0, null и false обрабатываются php одинаково. Итак, когда вы вводите 0 = 0, условие воспринимает его как false, поэтому вы получаете «Адрес не предоставлен».

Ответ №1:

Вы проверяете, является ли значение $_REQUEST[‘0’] ложным. В PHP (и многих других языках) 0 означает false. Поскольку 0 == false, ваше выражение приводит к ‘true’ и echo и die() выполняются.

Если вы пытаетесь проверить, существует ли $_REQUEST[‘0’], вам следует использовать isset() или empty()

Ответ №2:

 if(!isset($_REQUEST['0']))
{
    die("Address not provided");
}
else
{
    // code
}
  

Ответ №3:

   if (empty ($_REQUEST['0'])) 
  {
      echo "Address doesn't provided...";
      die();
  } else {
     code
     code etc.
  

Ответ №4:

 if (array_key_exists('0', $_REQUEST['0']) === true) {
    echo 'exists';
}
else {
    echo 'does not';
}
  

Примечание: Лучшая проверка того, установлен ли ключ в массиве, — это array_key_exists. В отличие от isset, эта функция не возвращает false, когда значение равно NULL.

Примечание 2: Вы должны указать, какой суперглобальный файл использовать, используя $_REQUEST вместо указания $_POST или $ _GET, это может быть причиной возникновения неопределенных ошибок.