Vous voudrez peut-être corriger ces 5 habitudes de codage PHP !

藏色散人
Libérer: 2023-04-09 15:22:02
avant
4422 Les gens l'ont consulté

Recommandé : "Tutoriel vidéo Vous voudrez peut-être corriger ces 5 habitudes de codage PHP !"

Vous voudrez peut-être corriger ces 5 habitudes de codage PHP !

Après avoir effectué de nombreuses révisions de code, je vois souvent des erreurs en double, voici comment les corriger.

Un : tester si le tableau est vide avant de boucler

$items = [];
// ...
if (count($items) > 0) {
    foreach ($items as $item) {
        // process on $item ...
    }
}
Copier après la connexion

foreach et les fonctions de tableau (array_*) peuvent gérer des tableaux vides.

  • Pas besoin de tester au préalable
  • Peut réduire un niveau d'indentation
$items = [];
// ...
foreach ($items as $item) {
    // process on $item ...
}
Copier après la connexion

Deux : encapsuler le contenu du code dans une instruction if Résumé

function foo(User $user) {
    if (!$user->isDisabled()) {
        // ...
        // long process
        // ...
    }
}
Copier après la connexion

Ce n'est pas une situation spécifique à Vous voudrez peut-être corriger ces 5 habitudes de codage PHP !, mais je la rencontre souvent. Vous pouvez réduire l’indentation en revenant plus tôt.

Toutes les méthodes principales sont au premier niveau d'indentation

function foo(User $user) {
    if ($user->isDisabled()) {
        return;
    }

    // ...
    // 其他代码
    // ...
}
Copier après la connexion

Trois : Appelez la méthode isset plusieurs fois

Vous pouvez rencontrer les situations suivantes :

$a = null;
$b = null;
$c = null;
// ...

if (!isset($a) || !isset($b) || !isset($c)) {
    throw new Exception("undefined variable");
}

// 或者

if (isset($a) && isset($b) && isset($c) {
    // process with $a, $b et $c
}

// 或者

$items = [];
//...
if (isset($items['user']) && isset($items['user']['id']) {
    // process with $items['user']['id']
}
Copier après la connexion

Nous avons souvent besoin de vérifier si une variable a été définie. Vous voudrez peut-être corriger ces 5 habitudes de codage PHP ! fournit la fonction isset qui peut être utilisée pour détecter la variable, et la fonction peut accepter plusieurs paramètres à la fois, donc le code suivant peut être meilleur. :

$a = null;
$b = null;
$c = null;
// ...

if (!isset($a, $b, $c)) {
    throw new Exception("undefined variable");
}

// 或者

if (isset($a, $b, $c)) {
    // process with $a, $b et $c
}

// 或者

$items = [];
//...
if (isset($items['user'], $items['user']['id'])) {
    // process with $items['user']['id']
}
Copier après la connexion

Quatre : Utiliser les méthodes echo et sprintf ensemble

$name = "John Doe";
echo sprintf('Bonjour %s', $name);
Copier après la connexion

Ce code est peut-être souriant, mais il m'est arrivé de l'écrire pendant un moment. Et j'en vois encore beaucoup ! Au lieu de combiner echo et sprintf, on peut simplement utiliser la méthode printf.

$name = "John Doe";
printf('Bonjour %s', $name);
Copier après la connexion

Cinq : Vérifier si une clé existe dans un tableau en combinant deux méthodes

$items = [
    'one_key' => 'John',
    'search_key' => 'Jane',
];

if (in_array('search_key', array_keys($items))) {
    // process
}
Copier après la connexion

La dernière erreur que je vois souvent est entre in_array et array_keys Utilisé en combinaison. Tous ces éléments peuvent être remplacés en utilisant array_key_exists.

$items = [
    'one_key' => 'John',
    'search_key' => 'Jane',
];

if (array_key_exists('search_key', $items)) {
    // process
}
Copier après la connexion

On peut également utiliser isset pour vérifier si la valeur n'est pas null.

if (isset($items['search_key'])) {
    // process
}
Copier après la connexion

Adresse originale : https://dev.to/klnjmm/5-bad-habits-to-lose-in-php-2j98

Adresse de traduction : https:/ /learnku.com/php/t/49583

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!

Étiquettes associées:
php
source:learnku.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal