Dans ce cas une solution possible serait de créer ta propre fonction à la place d'une fonction anonyme mais cela est seulement utile si cette fonction est réutilisée, sinon aucun intérêt par rapport à la fonction anonyme (un peu plus lisible éventuellement...) :
function maFonction() {
if(!isset($_POST['foo'])) {
return ["success" => false, "error" => "foo is empty"];
}
if(!isset($_POST['bar'])) {
return ["success" => false, "error" => "bar is empty"];
}
// traitement
return ["success" => true, "foo" => $_POST['foo'], "bar" => $_POST['bar']];
}
echo json_encode(maFonction());
Une autre alternative légèrement différente est de définir une variable $errors à laquelle on affecte les éventuels messages d'erreurs lors de la vérification des données, puis on fini simplement par vérifier si des erreurs existent ou non.
Cette solution permet également de gérer plusieurs messages d'erreur, il faut par contre modifier l'affichage (la récupération du json coté client) pour traiter un tableau de chaine de caractères à la place d'une chaine de caractère (élément error du json) :
$errors = array();
if(!isset($_POST['foo'])) {
$errors[] = "foo is empty";
}
if(!isset($_POST['bar'])) {
$errors[] = "bar is empty";
}
if ($errors) {
echo json_encode(["success" => false, "error" => $errors]);
} else {
// traitement
echo json_encode(["success" => true);
}
Dans ce cas une solution possible serait de créer ta propre fonction à la place d'une fonction anonyme mais cela est seulement utile si cette fonction est réutilisée, sinon aucun intérêt par rapport à la fonction anonyme (un peu plus lisible éventuellement...) :
[php]function maFonction() {
if(!isset($_POST['foo'])) {
return ["success" => false, "error" => "foo is empty"];
}
if(!isset($_POST['bar'])) {
return ["success" => false, "error" => "bar is empty"];
}
// traitement
return ["success" => true, "foo" => $_POST['foo'], "bar" => $_POST['bar']];
}
echo json_encode(maFonction());[/php]
Une autre alternative légèrement différente est de définir une variable $errors à laquelle on affecte les éventuels messages d'erreurs lors de la vérification des données, puis on fini simplement par vérifier si des erreurs existent ou non.
Cette solution permet également de gérer plusieurs messages d'erreur, il faut par contre modifier l'affichage (la récupération du json coté client) pour traiter un tableau de chaine de caractères à la place d'une chaine de caractère (élément error du json) :
[php]$errors = array();
if(!isset($_POST['foo'])) {
$errors[] = "foo is empty";
}
if(!isset($_POST['bar'])) {
$errors[] = "bar is empty";
}
if ($errors) {
echo json_encode(["success" => false, "error" => $errors]);
} else {
// traitement
echo json_encode(["success" => true);
}[/php]