Oto prosty kod PHPJaka jest różnica między, (przecinek) i. (kropka) jako operator konkatenacji?
echo '<form method="POST" action="calcbyme.php"></br>
enter value1 :<input type="text" name="f1"></br>
give operator :<input type="text" name="op"></br>
enter value2 :<input type="text" name="f2"></br>
<input type="submit" value="calculate"></br>';
if(isset($_POST["f1"]) && isset($_POST["f2"]) && isset($_POST["op"])){
$a=$_POST["f1"];
$b=$_POST["f2"];
$op=$_POST["op"];
switch ($op){
case '+':
echo "$a+$b=". $a+$b; break;
case '-':
echo "$a-$b=". $a-$b; break;
case '*':
echo "$a*$b=". $a*$b; break;
case '/';
echo "$a/$b=". $a/$b; break;
default:
echo "invalid operator"; break;
}
}
Jeśli zakładam $a=4
i $b=2
ale to daje tylko wartość jak ten
6
2
8
2
Jeśli mogę umieścić, (przecinek) zamiast. (kropka), a następnie podaje prawidłowy sygnał wyjściowy, taki jak ten:
4+2=6
4-2=2
4*2=8
4/2=2
Dlaczego tak się dzieje?
Z ciekawości spróbuj zamknąć operacje matematyczne na '()', np. '($ a + $ b)' – Vyktor
Czy nie odtwarzasz już wbudowanych operatorów arytmetycznych? – summea
Należy zauważyć, że 'echo' +', 'nie jest konkatenacją ciągów i jest nieco szybsze (ponieważ pozwala uniknąć tego narzutu). 'echo $ a, $ b' jest bardziej podobne do' echo $ a; echo $ b'. Ale jeśli chodzi o twoje pytanie, zobacz odpowiedzi, które mówią o pierwszeństwie operatora. – Matthew