Cet article est écrit dans le cadre de la politique d'apprentissage du langage PHP par rapport à Java. Par conséquent, il est destiné aux personnes (principalement l'auteur) qui ont une connaissance de Java mais qui sont «qu'est-ce que PHP ?? D'ailleurs, l'auteur est un débutant de The ☆, qui est la période d'apprentissage Java → environ 3 mois, la période d'apprentissage PHP → environ 2 semaines, donc il peut y avoir des erreurs dans le contenu, mais je ne suis pas du tout responsable! … Mais je vous serais reconnaissant de bien vouloir le signaler dans les commentaires. J'espère qu'il servira de référence pour votre apprentissage.
Tout d'abord, à propos de la grande différence entre les deux langues ... Eh bien, si vous y réfléchissez normalement, il n'y a pas de mots (connaissances) pour renvoyer quoi que ce soit lorsque vous dites "tout est différent" car ce sont des langues différentes en premier lieu. Alors laissons cela pour l'instant ... La grande différence entre Java et PHP est le ** "langage de compilation" ou "langage de script" **. … Compilateur? Script? Des caractères horizontaux difficiles apparaissent et il est difficile à comprendre, mais la brève explication est la suivante.
・ Java → Langage du compilateur Lorsque le programme est exécuté, il est converti (compilé) pour pouvoir être lu par un ordinateur. L'opération est rapide car la conversion est terminée en premier.
・ PHP → Langage de script Lorsque le programme est exécuté, il est exécuté tout en étant converti dans le langage informatique un par un. L'opération est lente car elle est convertie à chaque fois, mais le code source est reflété rapidement.
En d'autres termes, lorsque vous exécutez un programme, la différence est de savoir si la totalité est ou non convertie une fois en mots utilisés par l'ordinateur. Par exemple, du point de vue d'un utilisateur qui utilise un certain programme, il est préférable de ne convertir qu'une seule fois au début que de convertir un par un, ce qui économise l'effort supplémentaire de conversion. D'un autre côté, du point de vue du développeur d'un certain programme, si vous voulez n'exécuter que la partie modifiée, vous n'avez qu'à convertir cette partie, c'est donc un langage de script qui convertit un par un plutôt qu'un langage de compilation qui convertit tout. Le résultat sera reflété plus rapidement et plus facilement. Comme vous pouvez le voir, Java et PHP ont des caractéristiques très différentes en termes de conversion en langage informatique. Lorsque j'étudiais juste PHP, j'ai été impressionné par PHP, qui reflète les résultats simplement en cliquant sur le bouton d'actualisation du navigateur en modifiant la source. En Java, j'ai dû redémarrer le serveur un par un, donc je n'étais pas satisfait, donc PHP est facile à apprendre pour moi tout en vérifiant le fonctionnement.
De là, le sujet principal. En ce qui concerne les variables, les principales différences entre Java et PHP sont les suivantes.
・ Java → La variable "type" est ** obligatoire ** (ex. String hoge = "Yamada")
・ PHP → Le "type" de la variable est ** inutile ** Ajoutez simplement \ $ au début de la variable (ex. $ Hoge = "Yamada")
Lors de la déclaration d'une variable, Java doit déclarer un "type" fixe. Par contre, en PHP, vous pouvez créer une variable simplement en ajoutant "$" au début du nom de la variable. En Java, il existe des "types" fixes tels que String et int, et si vous essayez de mettre une valeur numérique dans une variable de type chaîne, vous serez grondé comme une erreur ... Cependant, PHP définira le type de variable. Il n'y a pas de règle pour décider en premier, vous pouvez donc mettre n'importe quels caractères ou nombres dans une variable. En ce qui concerne les variables, Java a des règles strictes et PHP a des règles lâches. Cependant, comme PHP n'a pas de type de variable, vous pouvez entrer tout ce que vous voulez, mais les débutants comme moi devraient faire attention à une telle idée. Le fait est que PHP n'a pas de type de variable, mais PHP se charge de convertir le type de variable. Par exemple, si vous avez l'exemple de phrase suivant:
php
<?php
$hoge = "a";
$fuga = 0;
if ($hoge == $fuga){
//L'expression conditionnelle ci-dessus est jugée vraie
}
Quoi! Dans l'expression conditionnelle de cette instruction if, PHP reconnaît la variable hoge et la variable fuga comme équivalentes. A = 0 n'est pas le même que vous pensez normalement. Pourquoi cela arrive-t-il? En fait, en PHP, lorsque vous essayez de comparer un caractère à un nombre, vous faites attention à convertir le caractère en nombre. De plus, si le premier mot d'une lettre n'a pas de numéro valide, il semble reconnaître cette lettre comme 0. Donc, dans la source ci-dessus, lorsque j'ai essayé de convertir la lettre «a» en un nombre, il n'y avait pas de nombre valide dans la lettre, donc je l'ai arbitrairement mis à «0». Le ** PHP ci-dessus est trop prudent et le problème d'inactivité ** semble se produire dans de nombreux endroits, sans se limiter aux instructions if. Pour cette raison, en particulier ceux qui ont peu d'expérience en programmation, vous devez toujours être conscient des types de variables. (Autodiscipline)
・ Java → Un type est requis pour la variable. Les règles sont strictes! C'est ennuyeux, mais il y a moins d'erreurs.
・ PHP → Si vous ajoutez \ $ au début, il jugera le type de la variable sans autorisation. C'est sympa, mais inflexible! Faites attention aux débutants.
Cette fois, c'est fini.
Indécis! !! Peut-être! Array! !! Tel!
Merci pour votre visite.
J'ai oublié que Java avait également la capacité de convertir automatiquement les types ... alors voici un peu plus de détails En Java, vous pouvez écrire comme suit.
Java
//Conversion de type lors du calcul entre les nombres
double hoge = 2.5 * 5;
//Le type de chaîne et le type int peuvent être combinés
String fuga = "windows" + 10;
//Vous pouvez attribuer un numéro de type int à une variable de type double
double boee = 10;
Regardons trois exemples dans l'ordre
Le meilleur exemple est que si un calcul est fait à l'intérieur d'un hoge variable de type double, le nombre sera de type double. Les types qui gèrent les nombres incluent non seulement les entiers, mais aussi les doubles et les flottants qui gèrent les fractions, les longs qui peuvent stocker des nombres plus grands que int, et les shorts et octets qui peuvent stocker des valeurs inférieures à int. Lors de tels calculs entre les nombres, Java prendra soin de convertir le type dans l'un ou l'autre type avant de faire le calcul. Par exemple, il calculera de 5 à 5,0 avant de calculer.
Dans l'exemple du milieu, lors de la concaténation d'un type String et d'un nombre, le nombre est converti en type String puis combiné. La concaténation de caractères consiste simplement à ajouter des caractères et des caractères (valeurs numériques avant la conversion), on peut donc dire qu'elle est un exemple de conversion de type automatique au moment du calcul, tout comme l'exemple dans un sens.
L'exemple du bas est que vous pouvez affecter une variable d'un type à une variable d'un type différent. Il s'agit d'une conversion automatique pour les types qui gèrent les nombres mentionnés ci-dessus. Dans cet exemple, int, qui est un type numérique entier, est affecté à double, qui est un type numérique comprenant des fractions. Si vous faites un sysout, ce sera "10.0", mais je pense que certaines personnes peuvent le deviner. Il est possible d'exprimer 10 comme 10,0. Ainsi Java convertira automatiquement le type en disant "C'est un type int, mais devrais-je le convertir en double ...". Inversement, les nombres de type double ne peuvent pas être affectés à des variables de type int. Certes, 10,0 peut être exprimé par 10. Cependant, si la valeur à affecter est 2,5, 2,5 ne peut pas être représenté par le type int, qui est un type entier. En d'autres termes, les nombres entiers peuvent être représentés par des nombres qui incluent des fractions, mais les nombres qui incluent des fractions ne peuvent pas être représentés uniquement par des entiers, c'est donc la règle. Dans un certain livre de référence, il s'exprime ainsi.
Sémaniquement, lors de l'affectation d'une valeur «petit type» à une case «grand type», la valeur affectée est automatiquement convertie en type de variable de destination d'affectation avant que l'affectation ne soit effectuée. (Nakayama / Kunimoto 2014 p.78)
Pour plus de détails, voir "Conversion automatique de type au moment de l'affectation Java".
Comme mentionné ci-dessus, Java peut également effectuer automatiquement une conversion de type. Il y a beaucoup à comprendre ...
Les références Kiyotaka Nakayama et Daigo Kunimoto (2014) "Introduction à Java avec une compréhension rafraîchissante" Impress Co., Ltd.
D'un film fantastique
Java
double harry = 9 + 0.75;
String potter = harry + "Piste";
-Impressions- D'une manière ou d'une autre, je l'ai trouvé alors je l'ai essayé
Recommended Posts