Maison  >  Article  >  développement back-end  >  Pourquoi j'utilise la construction de langage empty() plus que isset() en PHP et vous devriez aussi

Pourquoi j'utilise la construction de langage empty() plus que isset() en PHP et vous devriez aussi

Susan Sarandon
Susan Sarandonoriginal
2024-10-22 20:55:36381parcourir

Why I Use the empty() Language Construct More than isset() in PHP and You Should Too

Lors du développement en PHP, la gestion efficace des vérifications de variables est cruciale pour garantir un code robuste et sans erreur. Deux constructions de langage fréquemment utilisées à cette fin sont empty() et isset(). Cependant, dans de nombreux cas, choisir empty() peut être plus avantageux que isset(), principalement parce que empty() couvre presque tous les scénarios réalisés par isset(), ainsi que des vérifications supplémentaires. Cet article expliquera pourquoi il est généralement préférable d'utiliser empty() de manière cohérente en PHP et le démontrera avec plusieurs exemples de code.

Comprendre isset() et empty()

Avant d'entrer dans les détails, clarifions ce que font ces constructions de langage :

isset() : Cette construction de langage vérifie si une variable est définie et n'est pas NULL. Il renvoie vrai si la variable existe et que sa valeur n'est pas NULL ; sinon, il renvoie false.

$var = 0;
echo isset($var); // Outputs: 1 (true)

empty() : Cette construction de langage détermine si une variable est considérée comme « vide ». Une variable est considérée comme vide si elle n'existe pas ou si sa valeur est fausse. empty() renvoie true si la variable est vide selon les conditions mentionnées précédemment ; sinon, il renvoie false.

$var = 0;
echo empty($var); // Outputs: 1 (true)

Pourquoi j'aime plus empty() ?

Le principal avantage de l'utilisation de empty() par rapport à isset() réside dans sa capacité à gérer plusieurs vérifications simultanément. empty() vérifiera si une variable est définie et si sa valeur est vide ("", 0, 0.0, "0", null, false et un tableau vide). Cela élimine le besoin d'utiliser à la fois isset() et une vérification de valeur séparément, réduisant ainsi la complexité du code et les erreurs potentielles.

Exemple de code 1 : vérification des valeurs par défaut

$input = $_POST['data'] ?? '';

// Using isset()
if (isset($input) && $input !== '') {
    echo "Input is set and not empty.";
} else {
    echo "Input is not set or empty.";
}

// Using empty()
if (!empty($input)) {
    echo "Input is set and not empty/falsy.";
} else {
    echo "Input is not set or empty/falsy.";
}

Dans l'exemple ci-dessus, empty() simplifie la vérification en la consolidant en une seule condition.

Exemple de code 2 : Travailler avec des tableaux

Lorsque vous travaillez avec des tableaux, en particulier avec des clés qui peuvent exister ou non, empty() est particulièrement utile pour éviter les notifications concernant des index non définis.

$data = ['username' => 'JohnDoe'];

// Using isset()
if (isset($data['username']) && $data['username'] !== '') {
    echo "Username is set and not empty.";
} else {
    echo "Username is missing or empty.";
}

// Using empty()
if (!empty($data['username'])) {
    echo "Username is set and not empty/falsy.";
} else {
    echo "Username is missing or empty/falsy.";
}

Exemple de code 3 : vérifications booléennes

Lors de la vérification des indicateurs booléens, en particulier ceux qui pourraient ne pas être définis, empty() peut éviter des vérifications conditionnelles supplémentaires.

$options = ['enabled' => false];

// Using isset()
if (isset($options['enabled']) && $options['enabled']) {
    echo "Feature is enabled.";
} else {
    echo "Feature is disabled.";
}

// Using empty()
if (!empty($options['enabled'])) {
    echo "Feature is enabled.";
} else {
    echo "Feature is disabled.";
}

Conclusion

En PHP, utiliser empty() est souvent plus efficace que isset() car il vérifie de manière exhaustive si une variable est à la fois définie et a une valeur non fausse. Cela en fait un excellent outil pour réduire la verbosité et la complexité du code tout en garantissant la robustesse des contrôles. Bien qu'il existe des cas spécifiques où isset() est nécessaire, par exemple pour faire la distinction entre les valeurs fausses, nulles et non définies. en général, empty() fournit une alternative simple et puissante pour la plupart des cas d'utilisation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn