Lo de los diferentes resultados es normal.
Código PHP:
echo "Hagamos una resta: ".(10-7); //3
Se hace primero lo del paréntesis, luego se convierte el resultado a cadena, se concatenan ambas cadenas y por último se pasa la nueva cadena resultante como argumento a
echo.
Código PHP:
echo "Hagamos una resta: ".10-7; //error
Normal que de un error, el punto se toma como el separador de decimales. En muchos lenguajes de programación 0.1 es equivalente a, simplemente, .1, por lo que esa sentencia es igual a
Código PHP:
echo "Hagamos una resta: "0.10-7; //error
en la que ya se hace evidente el error de sintaxis.
Código PHP:
echo "Hagamos una resta: " , 10 - 7; //3
La coma no es un operador de concatenación, para nada. Lo que haces ahí es pasar a la función
echo dos argumentos: Primero una cadena literal y luego una cadena (conversión de tipo implícita) resultado de la resta. Puedes echarle un ojo a la
entrada para echo en el manual de PHP.
Código PHP:
echo "Hagamos una resta: " . 10 - 7; //-7
En este caso no comprendo el error... intentaré investigarlo, pues me parece muy interesante.
Saludos.