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…
Dichas funciones son intval
y strval
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.
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.
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.
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.
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:
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
También existen las funciones floatval y boolval para convertir variables a flotantes y booleanos respectivamente.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.
Ver comentarios