Maison > Article > développement back-end > PHP est-il un langage statique ou dynamique ?
php est un langage dynamique. PHP est un langage de script dynamique et faiblement typé. Il détermine le type de données au moment de l'exécution et il n'est pas nécessaire de le déclarer à l'avance avant d'utiliser la variable. La variable sera automatiquement créée lorsqu'une valeur lui sera attribuée pour la première fois ; le type de données en PHP peut être ignoré. Lors de l'attribution d'une valeur à une variable, vous n'avez pas besoin de prendre en compte son type. La variable n'a un certain type qu'après avoir reçu une certaine valeur.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
php est un langage dynamique.
php est un langage de script typé dynamiquement et faiblement typé ; il n'est pas nécessaire de déclarer les variables à l'avance avant de les utiliser. Les variables seront automatiquement créées lors de leur première affectation et lors de l'attribution d'une valeur à une variable. , il n'est pas nécessaire de considérer son type. Une variable n'a pas un certain type tant qu'on ne lui a pas attribué une certaine valeur.
<?php $a = 1; $b = "2"; $c = [1,3,4]; var_dump($a); var_dump($b); var_dump($c); ?>
Par conséquent, une conversion de type automatique se produira lors de l'exécution de calculs de variables.
En PHP, la conversion de type automatique se produit généralement lorsque des variables de types différents sont mélangées pour l'opération. Si les types de variables impliqués dans l'opération sont de types différents, ils doivent d'abord être convertis vers le même type, puis l'opération est effectuée. .
Habituellement, seuls les quatre types scalaires (entier, flottant, chaîne, booléen) et NULL seront automatiquement convertis lors des opérations. Notez que la conversion de type automatique ne modifie pas le type des variables elles-mêmes, mais uniquement la façon dont ces variables sont évaluées.
Bien que la conversion automatique de type soit automatiquement effectuée par le système, lors d'opérations mixtes, la conversion automatique de type doit également suivre la direction de l'augmentation de la longueur des données pour garantir que la précision n'est pas réduite. Les règles sont indiquées ci-dessous.
Lorsqu'une valeur booléenne est impliquée dans l'opération, TRUE sera converti en un entier de type 1, FALSE sera converti en un entier de type 0, puis participera à l'opération.
Lorsqu'une valeur NULL est impliquée dans l'opération, la valeur NULL sera convertie en un entier de type 0 avant que l'opération ne soit effectuée.
Lorsque des valeurs de type entier et de type flottant sont impliquées dans l'opération, la valeur de type entier sera d'abord convertie en type flottant, puis l'opération sera effectuée.
Lorsque des valeurs de chaîne et numériques (entier, flottant) sont impliquées dans l'opération, le type de chaîne sera d'abord converti en nombre, puis participera à l'opération. Le nombre converti est une chaîne numérique commençant à partir de la chaîne. Si la chaîne numérique commençant à partir de la chaîne n'a pas de point décimal, elle sera convertie en une valeur de type entier. S'il y a un point décimal, il est converti en valeur de type flottant. Par exemple : la chaîne "123ab" est convertie en entier 123, la chaîne "123.45ab" est convertie en nombre à virgule flottante 123,45 et la chaîne ". abc" est converti en entier 0.
【Exemple】Ce qui suit est un exemple simple pour démontrer la conversion automatique de type en PHP.
<?php header('content-type:text/html;charset=utf-8'); $str = '100abc'; $str += 5; echo '此时 $str 的类型为:'.gettype($str).', 值为:'.$str.'<br>'; $str += 3.14; echo '此时 $str 的类型为:'.gettype($str).', 值为:'.$str.'<br>'; $str = null + 'C语言中文网'; echo '此时 $str 的类型为:'.gettype($str).', 值为:'.$str.'<br>'; ?>
Connaissances approfondies : Introduction et différences entre les langages dynamiques et les langages statiques
Les langages dynamiques (langages faiblement typés) sont des langages qui déterminent le type de données au moment de l'exécution. Les variables n'ont pas besoin de le faire. déclarer leurs types avant utilisation. Généralement, les variables Value sont le type de la valeur attribuée. Tels que Php, Asp, JavaScript, Python, Perl, etc.
$a = 1; $b = "2"; $c = [1,3,4];
Le langage statique (langage fortement typé) est un langage dans lequel le type de données des variables peut être déterminé au moment de la compilation. La plupart des langages statiques exigent que le type de données soit connu avant d'utiliser des variables. Tels que Java, C, C++, C#, etc.
String s="hello"; //String 类型的变量 boolean b=true; //boolean 类型的变量 int i=0; //int 类型的变量
Un langage faiblement typé est un langage dans lequel les types de données peuvent être ignorés. C'est le contraire d'un langage fortement typé, où une variable peut se voir attribuer des valeurs de différents types de données. Le type d'une variable est déterminé par son contexte, qui est plus efficace.
Un langage fortement typé est un langage qui doit déterminer avec force le type de données. Une fois qu'une variable se voit attribuer un certain type de données, si elle n'est pas forcée de se convertir, ce sera toujours ce type de données. Le type d'une variable est déterminé lors de sa déclaration, ce qui est plus sûr.
Différence :
En raison de la déclaration obligatoire des types de données, le langage statique permet à l'outil de développement (IDE) d'avoir une forte capacité à juger le code. Il est utile pour mettre en œuvre une logique métier complexe et développer des applications commerciales à grande échelle. systèmes, ainsi que ceux avec de longs cycles de déclaration. Dans les applications, les développeurs peuvent s'appuyer sur des IDE puissants pour développer plus efficacement et en toute sécurité.
La pensée dynamique du langage n'est pas limitée et peut être utilisée à volonté, en se concentrant davantage sur le produit lui-même ; en se concentrant sur la réflexion sur la mise en œuvre de la logique métier, et le processus de réflexion est le processus de mise en œuvre.
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!