concaténation de numéro de chaîne php foiré
J'ai un peu de code php ici:
<?php
echo 'hello ' . 1 + 2 . '34';
?>
sorties 234,
mais quand j'ajoute un certain nombre 11 avant de "bonjour":
<?php
echo '11hello ' . 1 + 2 . '34';
?>
Il sorties 1334 plutôt que 245(auquel je m'attendais), pourquoi est-ce?
source d'informationauteur JustinHo
Vous devez vous connecter pour publier un commentaire.
C'est étrange...
Mais
OU
fixation question.
UPDv1:
Finalement réussi à obtenir la bonne réponse:
'hello'
=0
(ne contient pas de chiffres, PHP suppose que c'est zéro).Donc
'hello' . 1 + 2
simplifie à'hello1' + 2
est2
parce que pas de chiffres dans'hello1'
est un zéro de trop.'11hello '
=11
(contient des chiffres, PHP suppose qu'il est onze).Donc
'11hello ' . 1 + 2
simplifie à'11hello 1' + 2
comme11 + 2
est13
.UPDv2:
http://www.php.net/manual/en/language.types.string.php
De l'opérateur point a la même la préséance que + et -, ce qui peut produire des résultats inattendus.
Que, techniquement, les réponses à vos question... si vous voulez que les numéros à être traités comme des numéros au cours de concatination juste l'emballer dans la parenthèse.
vous devez utiliser
()
en opération mathématiqueVous devriez vérifier PHP de type tableau de conversion pour obtenir une meilleure idée de ce qui se passe derrière les coulisses: http://php.net/manual/en/types.comparisons.php
Si vous détestez mettant les opérateurs entre les affecter à des vaiable