PHP: intval y strval para convertir variables

Introducción

PHP es un lenguaje débilmente tipado, aunque en la versión 7 incorporó la revisión de tipos en las funciones el lenguaje en sí lo sigue siendo.

Una de las ventajas de esto es que podemos castear o cambiar el tipo de una variable sin dificultad.

Lo que nos reúne hoy aquí son dos funciones que…

  1. Convierten un valor a entero
  2. Convierten un valor a cadena

Dichas funciones son intval y strval

Intval en PHP: convertir string o cualquier tipo a entero

La función intval en PHP recibe un argumento de cualquier tipo y devuelve su representación como entero.

Su uso más frecuente es cuando queremos convertir una cadena a un entero:

A lo que regresa ya podemos sumarle o restarle cosas, o hacerle cualquier operación matemática, pues tenemos la certeza de que es un entero.

Quitar decimales con intval

Con esta función igualmente podemos quitar los decimales de un número (como lo hicimos con JavaScript). Llamamos a la función y le pasamos un flotante.

La salida es 2. No importa si el número es 2.9 o 2.1, lo devuelve sin decimales. Incluso con 2.0001 devuelve 2.

Convertir binario a decimal con PHP e intval

Dado que intval devuelve la representación entera de un número,  y como segundo argumento recibe la base, podemos fácilmente llamarlo para que convierta un número binario a un decimal. Quedaría así:

La salida sería 13. Así de fácil sería convertir un binario a un decimal; es decir, un número en base 2 a base 10.

Strval en PHP: convertir cualquier variable en cadena

Este método es más fácil de explicar. Lo único que hace es obtener la representación de una variable, pero como string. Veamos esto:

Lo que devuelve strval es una cadena a la cual podemos aplicarle los métodos de cadenas, y podremos estar seguros de que estamos trabajando con un string para evitar comportamientos raros.

Strval en arreglos

Esta función no imprime arreglos, regresará simplemente la cadena “Array” o en versiones nuevas generará un error de que estamos intentando convertir un array a una cadena.

Si realmente queremos imprimir un arreglo usamos print_r:

La salida es esta:

Imprimir arreglo en PHP
Imprimir arreglo en PHP

Strval en objetos

La función strval, al usarla en objetos, llamará al método __toString del mismo. Si no lo implementa, regresará la cadena “Object” o generará un error en las versiones más nuevas.

Para implementar el método __toString en un objeto podemos declararlo en la clase:

Ahí tenemos a la clase mascota que únicamente tiene la propiedad nombre y el método ladrar, aunque eso no es lo importante; lo que importa es que implementa el método __toString.

Podemos implementarlo como queramos, siempre y cuando regrese una cadena. Por cierto, se recomienda devolver el estado de la mascota; es decir, concatenar todas sus variables.

El punto es que al llamar a strval y pasarle nuestra mascota así:

El resultado no es “Object” ni un error, es:

Soy de la clase mascota. Mi nombre es Maggie

Algo más

También existen las funciones floatval y boolval para convertir variables a flotantes y booleanos respectivamente.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

1 comentario en “PHP: intval y strval para convertir variables”

  1. Pingback: Funciones con chequeo de tipos en PHP 7 - Parzibyte's blog

Dejar un comentario