1
votes

Erreur lors de l'affichage de "texte" en php avant de calculer l'opération

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;


2 commentaires

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


6 Réponses :


4
votes

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


1 commentaires

Veuillez ajouter une explication à votre code afin que d'autres puissent en tirer des leçons



2
votes

Vous pouvez essayer ceci.

<?php
    $x = 5;
    $y = 10.5;
    $z = $x + $y;
    echo "add: 5+6 = " . $z;
?>


1 commentaires

Veuillez ajouter une explication à votre code afin que d'autres puissent en tirer des leçons



1
votes
<?php
  $x = 5;
  $y = 10.5;
  printf("add: 5+6 = %f", $x + $y);
?>


1 commentaires

Veuillez ajouter une explication à votre code afin que d'autres puissent en tirer des leçons



3
votes
<?php
$x = 5;
$y = 10.5;

echo "add: 5+6 =" . ($x + $y); // automatic converts to `string`

0 commentaires

1
votes

essayez ceci:

$x = 5;
$y = 10.5;
$z=$x+$y;
echo "add:5+6 =".$z;


0 commentaires

1
votes

Vous pouvez le faire en concaténant votre variable

add: 5+10.5 = 15.5

sortie

<?php
$x = 5;
$y =10.5;
$z=$x+$y;

echo "add: ".$x."+".$y." = ". $z;
?>


0 commentaires