php

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:

<?php
$cadena = "123";
$entero = intval($cadena); #Ahora $entero es un verdadero 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.

<?php
$flotante = 2.999;
$sinDecimales = intval($flotante);
echo $sinDecimales; # Imprime 2

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í:

<?php
$binario = "1101"; # El 13 en binario
# Con el 2 indicamos que la cadena que le pasamos está en base 2
$decimal = intval($binario, 2);
echo $decimal; # Imprime 13

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:

<?php
$entero = 15000;
$string = strval($entero);
echo $string;

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:

<?php
$arreglo = array(1, 2, 3);
print_r($arreglo);
?>

La salida es esta:

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:

<?php
class Mascota{
    var $nombre;

    public function __construct($nombre){
        $this->nombre = $nombre;
    }

    public function ladrar(){
        echo "¡Guau!";
    }

    public function __toString(){
        return "Soy de la clase mascota. Mi nombre es " . $this->nombre;
    }
}

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í:

<?php
class Mascota{
    var $nombre;

    public function __construct($nombre){
        $this->nombre = $nombre;
    }

    public function ladrar(){
        echo "¡Guau!";
    }

    public function __toString(){
        return "Soy de la clase mascota. Mi nombre es " . $this->nombre;
    }
}

$maggie = new Mascota("Maggie");
echo strval($maggie);
?>

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

6 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

6 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

6 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

6 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

6 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

1 semana hace

Esta web usa cookies.