Maison > Article > développement back-end > Explication détaillée de la différence entre l'utilisation de virgules et de points pour l'écho en PHP
Cet article utilise plusieurs exemples spécifiques pour comprendre la différence entre l'utilisation de virgules et de points pour connecter l'écho dans la programmation PHP. Les amis dans le besoin peuvent s'y référer. J'espère que cela sera utile à tout le monde.
Il est mentionné qu'il est préférable d'utiliser une chaîne d'écho que d'utiliser .connection. Ne parlons pas des raisons. Regardons les deux phrases suivantes :
<?php // 逗号比.更节省时间? echo '1+5=' . 1+5; echo '1+5=' . 5+1;
Quel est le résultat ?
1+5=6? 1+5=6? —————— 6? 2? —————— 6.6? 6.6? ——————
Je peux seulement dire que le résultat de echo '5+1=' 1+5; donc le résultat est 6 et 2.
Pourquoi ? Est-ce en PHP Il n'y a pas de propriété commutative dans l'addition chinoise ? Bien sûr que non...
Ne réfléchissons pas à pourquoi si je remplace le point ci-dessus par une virgule et que je l'essaye.
echo '1+5=' , 5+1; //输出 1+5=6 echo '1+5=' , 1+5; //输出 1+5=6
Cela se voit. Ce n'est qu'en utilisant Seulement avec des virgules que nous pouvons obtenir les résultats attendus.
Alors pourquoi le point ne fonctionne-t-il pas ?
echo ('1+5' . 5)+1; //输出2
On ajoute des parenthèses au recto. Les résultats obtenus sont les mêmes
Cela prouve que PHP concatène d'abord les chaînes puis effectue le calcul de l'addition
. C'est bien. Puisqu'il s'agit de Connectez d'abord la chaîne. Ensuite, cela devrait être "1+55". Ensuite, ajoutez 1 à cette chaîne.
C'est la même chose. comme la chaîne en PHP Le mécanisme de transformation en nombre est lié. Regardons l'exemple suivant
echo (int)'abc1'; //输出0 echo (int)'1abc'; //输出1 echo (int)'2abc'; //输出2 echo (int)'22abc'; //输出22
À partir de l'exemple ci-dessus, nous pouvons voir que si une chaîne est forcée d'être convertie en nombre, PHP recherchera ce caractère Le début de la chaîne. Si le début est un nombre, convertissez-le
Sinon, renvoyez 0 directement
Retournez au 1+55. tout à l'heure. Puisque cette chaîne est 1+55. Donc après la conversion de type forcée, elle devrait être 1. Ajoutez 1 à cela, bien sûr, c'est 2.
Afin de prouver notre conjecture, vérifions-la.
echo '5+1=' . 1+5; //输出10 echo '5+1=' . 5+1; //输出6 echo '1+5=' . 1+5; //输出6 echo '1+5=' . 5+1; //输出2
Le résultat le prouve. Nous L'hypothèse est correcte.
Alors pourquoi le problème ci-dessus ne se produit-il pas lors de l'utilisation de virgules ?
Le manuel indique que l'utilisation de virgules signifie plusieurs paramètres.
C'est-à-dire qu'il est multi-paramètres. Autrement dit,
séparé par des virgules équivaut à N paramètres. une fonction.
Dans ce cas, echo calculera d'abord chaque paramètre, puis se connectera et affichera donc si nous utilisons des virgules, le problème ci-dessus n'existera pas :)
php echo. manuel
<?php // Strings can either be passed inpidually as multiple arguments or // concatenated together and passed as a single argument echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10); echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";
Quant à la raison pour laquelle il est rapide, cela peut être facilement compris. Utilisez d'abord . pour l'instant).
Mais la vitesse d'épissage est plus lente que la vitesse d'écho.
Si vous le comprenez profondément, VLD est comme indiqué ci-dessous. C'est une photo de maître @tywei
Le haut a plus de CONCAT que le bas, et le bas a plus d'écho que le haut.
Recommandations associées :
Le chemin vers l'apprentissage du framework MVC en PHP est expliqué par
Explication détaillée de l'utilisation de l'espace de noms 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!