Voici mon bloc try/catch en PHP:
try
{
$api = new api($_GET["id"]);
echo $api -> processRequest();
} catch (Exception $e) {
$error = array("error" => $e->getMessage());
echo json_encode($error);
}
Lorsqu'il n'y a rien dans le $_GET["id"]
, j'obtiens toujours l'erreur de notification . Comment puis-je éviter de recevoir cette erreur?
utilisez la fonction isset
pour vérifier si la variable est définie ou non:
if( isset($_GET['id'])){
$api = new api($_GET["id"]);
echo $api -> processRequest();
}
Si vous voulez une solution rapide et "sale", vous pouvez utiliser
$api = new api(@$_GET["id"]);
Modifier:
Depuis PHP 7.0, il existe une solution bien meilleure et acceptée: utiliser l'opérateur de coalescence null (??) . Avec cela, vous pouvez raccourcir votre code pour
$api = new api($_GET["id"] ?? null);
et vous n'obtenez pas d'avis car vous avez défini ce qui devrait se produire si la variable n'est pas définie.
Si l'absence d'identifiant signifie que rien ne doit alors être traité, vous devez alors tester l'absence de l'identifiant et gérer correctement l'échec.
if(!isset($_GET['id'] || empty($_GET['id']){
// abort early
}
ALORS continuez et essayez-vous/attrapez-vous.
À moins bien sûr que vous ne deviez ajouter quelque chose d'intelligent à api () afin que soit répondu avec un ID par défaut, que vous déclareriez dans la fonction
function api($id = 1) {}
Donc, tout dépend, mais essayez d’échouer de bonne heure si vous le pouvez.
Essayez de vérifier si le $_GET
a été défini
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);
}