numerico - strval php
PHP encasillado (6)
Me preguntaba cuál es la mejor manera de encasillar un valor de un tipo a otro.
Que variante debemos usar:
intval($value);
-
settype($value, ''int'')
-
(int)$value
Todos ellos producen el mismo resultado.
La conversión de tipos en PHP funciona como lo hace en C: el nombre del tipo deseado se escribe entre paréntesis antes de la variable que se va a convertir.
http://php.net/manual/en/language.types.type-juggling.php#language.types.typecasting
La respuesta aquí es usar lo que te diga "limpiador". Cualquier diferencia en la velocidad será tan pequeña, que preocuparse por ello le costará más tiempo del que puede ahorrar. Sin embargo, lo que le ahorrará tiempo es tener un código que puede leer y comprender en el futuro.
Hay un excelente artículo que explica esto mismo en Coding Horror .
Prefiero usar
settype($value,getType(intval((int)$value)));
Puede depender de qué tipos estás convirtiendo. PHP ya está diseñado para convertir tipos sobre la marcha. Puede convertir la cadena ''5'' en el valor entero 5 o flotar 5.0 si es necesario. Eso es solo la conversión de tipos naturales de PHP, pero hay formas de forzar comportamientos similares.
En muchos casos, intval () puede ser más rápido que (int) typecasting, especialmente en la conversión de cadena a entero. Pero personalmente, como también escribo C ++, uso el encasillado ya que es más natural y limpio para mí. Los resultados, sin embargo, varían ligeramente en diferentes situaciones. Sin embargo, nunca pensé que settype () fuera prometedor.
(int)$value
es mucho más rápido que otras formas
(int)$value
guarda una llamada de función en comparación con intval($value)
y settype($value, ''int'')
.
Y (int)$value
es lo suficientemente limpio, así que prefiero esta manera.
Cuando necesita usar intval($value)
es cuando necesita usar la base especificada para la conversión (el valor predeterminado es base 10). intval acepta un segundo parámetro para la base para la conversión.