variable strval numerico convertir cast array php types casting

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:

  1. intval($value);
  2. settype($value, ''int'')
  3. (int)$value

Todos ellos producen el mismo resultado.



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.