Pourquoi utiliser declare(strict_types=in PHP – Conseils rapides

PHPz
Libérer: 2024-08-12 18:43:19
original
689 Les gens l'ont consulté

Why use declare(strict_types=in PHP – Fast tips

Dans ce tutoriel, nous explorerons ce que signifie declare(strict_types=1), pourquoi les développeurs PHP devraient l'utiliser et pourquoi pas, et fournirons des exemples pour illustrer son importance.

Ce paramètre est dû à la nature peu typée de PHP et à la demande croissante de fonctionnalités strictement typées dirigées par d'autres langages populaires comme Java.

Les deux stratégies de frappe (lâche ou stricte) ont des avantages et des inconvénients, comprenons tout d'abord leur signification.

Langage vaguement typé

Un langage faiblement typé, également appelé langage typé dynamiquement, est un langage de programmation dans lequel les variables ne sont pas liées à un type de données spécifique au moment de la compilation. Vous n'avez pas besoin de déclarer à l'avance quel type de données une variable contiendra lors de l'exécution.

Le type de données d'une variable est déterminé en fonction de la valeur qu'elle contient et peut changer au moment de l'exécution.

PHP est fondamentalement un langage peu typé, nous pouvons donc écrire un exemple avec :

$a = "hello";
$a = 1; 
// No errors. The content of the variable is changed from string to int.
Copier après la connexion

Les langages faiblement typés permettent souvent une conversion de type implicite, ce qui signifie qu'ils peuvent automatiquement convertir les données d'un type à un autre pour faciliter les opérations. Ce comportement peut conduire à plus de flexibilité mais également à un risque plus élevé d'erreurs fonctionnelles.

Langage strictement typé

Un langage strictement typé, également appelé langage typé statiquement, est un langage de programmation dans lequel les variables doivent être explicitement déclarées avec un type de données spécifique au moment de la compilation.

Une fois le type de données d'une variable défini, il ne peut pas changer au cours de sa durée de vie. Les langages strictement typés n'effectuent pas de conversion de type implicite, ce qui signifie que les opérations entre des variables de types différents entraînent généralement une erreur de compilation.

Nous pouvons écrire un exemple en Java :

public class CompileError {
    public static void main(String[] args) {

        int x = 15;
        x = "Valerio";

    }
}
Copier après la connexion

Qu'est-ce que declare(strict_types=1) ?

declare(strict_types=1) est une directive en PHP qui applique une vérification de type stricte pour les arguments de fonction et de méthode et renvoie les valeurs dans un fichier PHP ou un bloc de code spécifique. Lorsque vous activez la vérification stricte des types, PHP garantit que les types de données des arguments de fonction et les valeurs de retour correspondent exactement aux types déclarés. Exactement de la même manière que Java.

Placez cette déclaration au tout début de votre fichier PHP ou bloc de code (avant tout autre code) pour permettre une saisie stricte.

Voici la syntaxe de base pour activer une vérification de type stricte :

<?php

declare(strict_types=1);

function speak(string $name): string 
{
    return "Hello {$name}!";
}

speak(1); // This fires the error "Uncaught TypeError"
speak("Valerio"); // This prints "Hello Valerio!"
Copier après la connexion

Pourquoi utiliser declare(strict_types=1) ?

L'application d'un typage strict peut améliorer considérablement la fiabilité de votre code dans certains scénarios.

Une saisie stricte permet d'éviter les problèmes inattendus liés au type qui peuvent entraîner des erreurs d'exécution ou un comportement incorrect. Cela garantit que vous travaillez toujours avec les types de données que vous attendez.

Par exemple, considérons une fonction censée additionner deux nombres :

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

$result = add(5, '10'); // Without strict typing, this is allowed.
echo $result; // Output: 15
Copier après la connexion

Sans types stricts, PHP forcerait la chaîne « 10 » à devenir un entier et produirait un résultat qui pourrait ne pas être celui souhaité.

Avec déclarer(strict_types=1):

declare(strict_types=1);

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

$result = add(5, '10'); // Fatal error: Uncaught TypeError
Copier après la connexion

Avec les types stricts activés, PHP génère une TypeError et empêche l'exécution de la fonction, garantissant ainsi la sécurité des types.

Quelle stratégie choisir ?

Continuer vers l'article original ---> https://inspector.dev/why-use-declarestrict_types1-in-php-fast-tips/

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!

source:dev.to
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!