Maison  >  Article  >  développement back-end  >  Comment résoudre le problème de code en double dans les fonctions PHP ?

Comment résoudre le problème de code en double dans les fonctions PHP ?

WBOY
WBOYoriginal
2024-05-01 10:27:01760parcourir

Vous pouvez utiliser des fonctions et des fermetures pour éliminer la redondance dans votre code en encapsulant le code en double. Les fonctions encapsulent les tâches répétitives dans des unités réutilisables, les fermetures encapsulent le code répétitif et peuvent accéder aux variables de portée en dehors de la fonction. Dans le cas réel, nous encapsulons le code d’envoi répété d’e-mails dans une fonction pour éviter la duplication et la redondance.

如何解决 PHP 函数中重复代码的问题?

Comment éliminer le code en double dans les fonctions PHP ?

Le code en double rend non seulement votre code encombré, mais rend également plus difficile sa maintenance et sa mise à jour. PHP propose plusieurs façons de résoudre le code en double, comme les fonctions et les fermetures.

Réutilisation des fonctions

Une utilisation courante des fonctions consiste à encapsuler des tâches répétitives. Prenons l'exemple suivant où il y a un code répété pour calculer la somme de deux nombres :

function sum($a, $b) {
    $total = $a + $b;
    return $total;
}

$x = sum(1, 2);
$y = sum(3, 4);

À l'aide de fonctions, nous pouvons encapsuler le code de calcul répété dans une fonction réutilisable :

function sum($a, $b) {
    return $a + $b;
}

$x = sum(1, 2);
$y = sum(3, 4);

Fermetures

Les fermetures sont une autre technique puissante pour encapsuler code répétitif. Les fermetures sont des fonctions anonymes qui peuvent accéder aux variables de portée depuis l'extérieur de la fonction. Prenons l'exemple suivant où il y a un code répété pour formater des chaînes :

function formatName($first, $last) {
    $name = $first . " " . $last;
    return $name;
}

$fullName1 = formatName("John", "Doe");
$fullName2 = formatName("Jane", "Smith");

En utilisant des fermetures, nous pouvons encapsuler le code de formatage répété dans une fermeture réutilisable :

$formatName = function($first, $last) {
    return $first . " " . $last;
};

$fullName1 = $formatName("John", "Doe");
$fullName2 = $formatName("Jane", "Smith");

Exemple pratique

Ce qui suit est un exemple pratique de la façon d'encapsuler code répété dans une fonction :

// 重复的代码
function sendEmail($to, $subject, $body) {
    // 发送电子邮件的代码
}

function sendOrderConfirmationEmail($orderInfo) {
    sendEmail("customer@example.com", "订单确认", "您的订单已确认...");
}

function sendShippingNotificationEmail($shippingInfo) {
    sendEmail("customer@example.com", "发货通知", "您的订单已发货...");
}

En encapsulant le code email d'envoi répété dans une fonction sendEmail, nous évitons la duplication et la redondance de code :

function sendEmail($to, $subject, $body) {
    // 发送电子邮件的代码
}

function sendOrderConfirmationEmail($orderInfo) {
    sendEmail("customer@example.com", "订单确认", "您的订单已确认...");
}

function sendShippingNotificationEmail($shippingInfo) {
    sendEmail("customer@example.com", "发货通知", "您的订单已发货...");
}

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