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.
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.
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.
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"; } }
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!"
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
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
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.
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!