Foros del Web » Programando para Internet » PHP »

Concatenar números, ¿Porqué se hace con una coma?

Estas en el tema de Concatenar números, ¿Porqué se hace con una coma? en el foro de PHP en Foros del Web. Hola! Tengo una duda. Yo en PHP para concataner uso el punto "." Pero si quiero hacer esta resta: Código PHP: <? echo  "Hagamos una resta: "  .  ...
  #1 (permalink)  
Antiguo 21/04/2008, 14:16
Avatar de marcolandia  
Fecha de Ingreso: febrero-2007
Ubicación: En mi hermosa nación Arge
Mensajes: 107
Antigüedad: 17 años, 9 meses
Puntos: 2
Concatenar números, ¿Porqué se hace con una coma?

Hola! Tengo una duda. Yo en PHP para concataner uso el punto "."
Pero si quiero hacer esta resta:
Código PHP:
<?
echo "Hagamos una resta: " 10 7;
?>
El resultado que obtengo es: "Hagamos una resta: -7"
para que la operación matemática se haga bien, debo usar la coma, así:
Código PHP:
<?
echo "Hagamos una resta: " 10 7;
?>
¿Porqué debo usar la coma?
Ya googlie mucho y no encuentro cuándo debo usar la coma y cuándo el punto :S
Gracias de antemano
Un saludo
  #2 (permalink)  
Antiguo 21/04/2008, 14:27
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años
Puntos: 5
Re: Concatenar números, ¿Porqué se hace con una coma?

Bueno, es curioso para nosotros tan inexpertos ¿no?
Probé con echo "Hagamos una resta ",$rest=10-4;
Indistintamente cambie ',' por '.' e igual daba bien, de todas formas espero la explicación al igual q tú

saludos
  #3 (permalink)  
Antiguo 21/04/2008, 14:30
 
Fecha de Ingreso: marzo-2008
Ubicación: Venezuela
Mensajes: 60
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Concatenar números, ¿Porqué se hace con una coma?

yo jamás he usado la coma. en el caso de hacer restas o sumas y al mismo tiempo concatenar, he usado paréntesis para encerrar las operaciones matemáticas y listo (lo he usado sobretodo en paginación).

sí me parece interesante cómo dan valores diferentes:
Código PHP:
<? 
echo "Hagamos una resta: ".(10-7); //3
echo "Hagamos una resta: ".10-7//error
echo "Hagamos una resta: " 10 7//-7
echo "Hagamos una resta: " 10 7//3
?>
  #4 (permalink)  
Antiguo 26/04/2008, 03:45
 
Fecha de Ingreso: diciembre-2005
Ubicación: Redondela (Galicia)
Mensajes: 368
Antigüedad: 18 años, 10 meses
Puntos: 1
Re: Concatenar números, ¿Porqué se hace con una coma?

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.
  #5 (permalink)  
Antiguo 26/04/2008, 22:49
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Concatenar números, ¿Porqué se hace con una coma?

Lo que sucede en el último caso es lo siguiente:

Según el manual, (en la página sobre operadores) el punto tiene la misma precedencia que el operador de resta -.

Entonces, PHP convierte

"Hagamos una resta: " . 10

a

"Hagamos una resta: 10"

y luego hace la resta. Las reglas de manipulación de tipos indican que la cadena "Hagamos una resta: 10" será convertida a entero, con el valor 0.

En este paso, la línea de "echo" será equivalente a

echo 0 - 7;

cuyo resultado es claramente -7.

Interesante


Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 17:33.