2009-07-29 11 views
1

c'est probablement si simple mais je ne peux pas le faire fonctionner J'utilise cette déclaration:php echo agit étrange

echo "$num1"."+"."$num2"."=".$num1+$num2."<BR>"; 

j'attendais quelque chose comme 3 + 3 = 6 mais à la place je reçois juste 6

des idées pourquoi?

+1

Vous devriez envisager de réitérer la question. Tout le monde sait que les actes PHP sont étranges. – spoulson

Répondre

10

Mettez les parens autour de l'addition. C'est un conflit d'ordre d'opérations.

echo "$num1"."+"."$num2"."=".($num1+$num2)."<BR>"; 

La raison est PHP a interprété l'expression comme si elle était:

$a = "$num1"."+"."$num2"."=".$num1; 
$b = $num2."<BR>"; 
echo $a + $b; 

Lorsque vous ajoutez des chaînes, PHP essaie de cooerce un numéro hors de lui. Le premier nombre de la chaîne $a est $num1 ou "3". Il fait la même chose pour $b, obtenant $num2 ou "3". Ainsi, $a+$b est 6.

-2
echo "$num1"."+"."$num2"."=".($num1).+.($num2)."<BR>"; 

cela peut fonctionner !!!

+0

'($ num1). +. ($ Num2)' est une syntaxe invalide ... – yprez