Convertir int a string in php

A pesar de que php es un lenguaje con un tipado débil. Esto significa que, para los tipos primitivos de datos, estos son convertidos automáticamente para poder operar con ellos sin que el programador tenga que hacer nada. Por lo tanto en la mayoría de las ocasiones esta operación de convertir int a string no es realmente necesaria. Sin embargo es posible que nos encontremos con algunos casos en la que si lo sea. Existen varias posibilidades para realizar esta operación:

Type casting

Basta con forzar la conversión empleando el cast (string). Exemplo:

$a = (string)345;
var_dump($a);

Funcion strval:

Directamente convierte una variable (no tiene porque ser un entero) en un string

$a = strval(354);
var_dump($a);

Conversión forzada
Forzar la conversión a cadena (string) empleando alguna operación que lo requiera

Podemos encontrar diversos ejemplos de esta técnica

$a = 456.””; //concatenación de cadenas

$b = 567;
$a = “$b”; //formación de cadenas

Benchmark

Haciendo un benchmark de todos estos métodos con una version de php 5.2.5

Este sería el código empleado:

<?php

echo ‘PHP version: ‘.phpversion().”\n\n”;

$microtime = microtime(true);
for($i=0;$i<1000000;$i++) $a = (string)567;
echo ‘Método cast: ‘.(microtime(true)-$microtime).” segundos\n”;

var_dump($a);

$microtime = microtime(true);
for($i=0;$i<1000000;$i++) $a = strval(343);
echo ‘Función strval: ‘.(microtime(true)-$microtime).” segundos\n”;

var_dump($a);

$b = 456;
$microtime = microtime(true);
for($i=0;$i<1000000;$i++) $a = $b.””; //concatenación de cadenas
echo ‘Concatenación de cadenas: ‘.(microtime(true)-$microtime).” segundos\n”;

var_dump($a);

$b = 567;
$microtime = microtime(true);
for($i=0;$i<1000000;$i++) $a = “$b”; //formación de cadenas
echo ‘Formación de cadenas: ‘.(microtime(true)-$microtime).” segundos\n”;

var_dump($a);
?>

Y estos los resultados obtenidos en mi caso:

PHP version: 5.2.5

Método cast: 6.115082025528 segundos
string(3) “567”
Función strval: 6.3874759674072 segundos
string(3) “343”
Concatenación de cadenas: 6.1379280090332 segundos
string(3) “456”
Formación de cadenas: 6.1571230888367 segundos
string(3) “567”

El método cast es el más rápido y la función strval la más lenta quizás debido a que este método tiene más funcionalidades. Los otros métodos parecen ligeramente inferiores en rapidez.

Tenemos otra artículo relacionado con este por si estas interesado en la conversión de int a string en java. Java es un lenguaje con el tipado más estricto que php por lo que conocer esta conversión de tipos para este lenguaje puede serte útil también.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *