Stavo scrivendo un piccolo programma quando ho incontrato qualcosa di strano. Se volessi che PHP presentasse un'operazione aritmetica di addizione o sottrazione con un'istruzione echo e il risultato dell'operazione dovessi aggiungere parentesi o la pagina html non avrebbe presentato l'operazione ma solo il risultato.Perché è necessario aggiungere parentesi alle operazioni + - quando si concatenano?
Di seguito è riportato un esempio ridotto.
primo caso (senza parentesi):
$a = 10;
$b = 5;
echo "$a + $b = ".$a + $b."<br>"; // 15
echo "$a - $b = ".$a - $b."<br>"; // 5
echo "$a * $b = ".$a * $b."<br>"; // 10 * 5 = 50
echo "$a/$b = ".$a/$b."<br>"; // 10/5 = 2
echo "$a % $b = ".$a % $b."<br>"; // 10 % 5 = 0
secondo caso (con le parentesi):
$a = 10;
$b = 5;
echo "$a + $b = ".($a + $b)."<br>"; // 10 + 5 = 15
echo "$a - $b = ".($a - $b)."<br>"; // 10 - 5 = 5
echo "$a * $b = ".($a * $b)."<br>"; // 10 * 5 = 50
echo "$a/$b = ".($a/$b)."<br>"; // 10/5 = 2
echo "$a % $b = ".($a % $b)."<br>"; // 10 % 5 = 0
Qualcuno potrebbe spiegare perché questo sta accadendo?
In due parole, [ "__Operator Precedence__"] (http: //www.php. net/manual/it/language.operators.precedence.php) –
@MarkBaker Ci dispiace, anche se la precedenza degli operatori gioca certamente un ruolo in questo caso, non è chiaro il motivo per cui l'OP ottiene l'output descrittivo. Ho controllato e ottenuto lo stesso risultato. Dal momento che apparentemente sai cosa sta succedendo, ti dispiacerebbe elaborare il tuo commento? Grazie! – arkascha
Un suggerimento specifico sull'uso di "echo". Non concatenare! Usa invece ','. Per esempio. "echo" $ a + $ b = ", $ a + $ b,"
";" Non incontrerai mai più questi problemi. – Yoshi