PHP - Warning, string y double. Definición explicita de tipos de variable.

 
Vista:
sin imagen de perfil

Warning, string y double. Definición explicita de tipos de variable.

Publicado por Joaquín (9 intervenciones) el 28/04/2017 12:23:17
Alguien puede explicarme porqué en mi servidor antes las variables $latitud y $longitud no me daban error en una aplicación de cálculo de distancias y de repente me da el siguiente error:
PHP Warning: deg2rad() expects parameter 1 to be double, string given in…
Que corresponde a:
1
2
$rLat = deg2rad($latitud);
$rLng = deg2rad($longitud);
Y como indica el warning al cambiarlas a:
1
2
$latitud=(double) $latitud2;
$longitud=(double) $longitud2;
Vuelve a funcionar correctamente.
¿Es posible que tenga que ver que mi servidor haya cambiado de versión PHP o algo así?
Gracias por anticipado por la respuesta.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Warning, string y double. Definición explicita de tipos de variable.

Publicado por xve (6935 intervenciones) el 28/04/2017 14:53:42
Hola Joaquín, de donde sacas las variables $latitud y $longitud??

Como bien indicas, el problema es que son cadena en vez de long
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Warning, string y double. Definición explicita de tipos de variable.

Publicado por Joaquín (9 intervenciones) el 28/04/2017 15:57:31
Estoy haciendo una aplicación móvil en la que la longitud y la latitud corresponde a mi posición actual y las obtengo de un método de Android. Estas las paso a un php para realizar una consulta basada en la distancia. Por exigencias del guión las tengo que pasar con un Array, y luego en php las obtengo de la siguiente forma:
1
$latitudstring= $_POST['latitud'];
igual para la longitud.
Antes con:
1
2
$reemplazarlat=str_replace('[','',$latitudstring);
$latitud=str_replace(']','',$reemplazarlat);
estaba funcionando bien, pero de repente me da el problema mencionado en mi pregunta, por lo que he tenido que cambiar a:
1
2
3
$reemplazarlat=str_replace('[','',$latitudstring);
$latitud2=str_replace(']','',$reemplazarlat);
$latitud=(double) $latitud2;
y ya no da problemas, aunque en otros apartados dejándolo como estaba seguían funcionando bien (los he cambiado también por si las moscas). Y eso es lo que no me explico, porqué en unos caso la definición explicita de las variables ha estado funcionando años y de repente no. Y es más porqué una vez corregida en en un apartado que no funcionaba ahora funciona declarando el tipo de variable en ese apartado y en otros que no lo he hecho funciona tomando de manera explícita el tipo de variable. Y se que en mi servidor han estado trasteando, por eso lo preguntaba.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar