Je souhaite imprimer un texte avant d'imprimer la sortie du calcul, sans stocker le texte dans une variable. Comment puis-je y parvenir?
Voici mon code:
$x = 5; $y = 10.5; echo "add: 5+6 =" . $x + $y;
6 Réponses :
Ce code calcule l'addition $ x + $ y, puis convertit en chaîne, puis concatène en chaîne "add: 5 + 6 =" (voir https://www.php.net/manual/en/function.strval.php )
echo 10.5;
À propos de votre code
Voir https://www.php.net/manual/en/language.operators.precedence.php : les opérateurs de concaténation ont une priorité plus élevée que les opérateurs arithmétiques.
Votre code d'origine est le même que :
0 + 10.5
Cela signifie: d'abord, concaténer la chaîne "add: 5 + 6 =". $ x
(int)("add: 5+6 =5")
puis cast en int (qui retournent 0)
add 5+6 =5
puis ajouter $ y
XXX
puis echo
$x = 5; $y = 10.5; echo (int)("add: 5+6 =" . $x) + $y;
C'est pourquoi votre code renvoie 10.5
Veuillez ajouter une explication à votre code afin que d'autres puissent en tirer des leçons
Vous pouvez essayer ceci.
<?php $x = 5; $y = 10.5; $z = $x + $y; echo "add: 5+6 = " . $z; ?>
Veuillez ajouter une explication à votre code afin que d'autres puissent en tirer des leçons
<?php $x = 5; $y = 10.5; printf("add: 5+6 = %f", $x + $y); ?>
Veuillez ajouter une explication à votre code afin que d'autres puissent en tirer des leçons
<?php $x = 5; $y = 10.5; echo "add: 5+6 =" . ($x + $y); // automatic converts to `string`
essayez ceci:
$x = 5; $y = 10.5; $z=$x+$y; echo "add:5+6 =".$z;
Vous pouvez le faire en concaténant votre variable
add: 5+10.5 = 15.5
<?php $x = 5; $y =10.5; $z=$x+$y; echo "add: ".$x."+".$y." = ". $z; ?>
Vous devez afficher toutes les erreurs et avertissements pour voir ce qui ne va pas: stackoverflow.com/questions/1053424/...
Amélioration de la réponse avec quelques explications