Ответ 1
используйте функцию isset
, чтобы проверить, установлена ли переменная или нет:
if( isset($_GET['id'])){
$api = new api($_GET["id"]);
echo $api -> processRequest();
}
Это мой блок try/catch в PHP:
try
{
$api = new api($_GET["id"]);
echo $api -> processRequest();
} catch (Exception $e) {
$error = array("error" => $e->getMessage());
echo json_encode($error);
}
Если в $_GET["id"]
ничего нет, я все равно получаю сообщение об ошибке.
Как я могу избежать получения этой ошибки?
используйте функцию isset
, чтобы проверить, установлена ли переменная или нет:
if( isset($_GET['id'])){
$api = new api($_GET["id"]);
echo $api -> processRequest();
}
Если отсутствие идентификатора означает, что ничего не должно обрабатываться, тогда вы должны тестировать отсутствие идентификатора и грамотно управлять отказом.
if(!isset($_GET['id'] || empty($_GET['id']){
// abort early
}
Затем продолжайте, и вы пытаетесь/поймаете.
Если вы, конечно, не добавили некоторую сообразительность к api(), так что на него отвечает id по умолчанию, который вы объявляете в функции
function api($id = 1) {}
Итак, это "все зависит", но попробуйте и выйдете раньше, если сможете.
Попробуйте проверить, установлен ли $_GET
try
{
if(isset($_GET["id"]))
{
$api = new api($_GET["id"]);
echo $api -> processRequest();
}
} catch (Exception $e) {
$error = array("error" => $e->getMessage());
echo json_encode($error);
}
Если вы хотите быстрое и "грязное" решение, вы можете использовать
$api = new api(@$_GET["id"]);