Академический Документы
Профессиональный Документы
Культура Документы
A pesar de que php es un lenguaje con un tipado dbil. Esto significa que, para los tipos primitivos de datos,
estos son convertidos automticamente para poder operar con ellos sin que el programador tenga que hacer
nada. Por lo tanto en la mayora de las ocasiones esta operacin 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 operacin:
Type casting
Basta con forzar la conversin 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);
Conversin forzada
Forzar la conversin a cadena (string) empleando alguna operacin que lo requiera
Podemos encontrar diversos ejemplos de esta tcnica
$a = 456.""; //concatenacin de cadenas
$b = 567;
$a = "$b"; //formacin de cadenas
Benchmark
Haciendo un benchmark de todos estos mtodos con una version de php 5.2.5
Este sera el cdigo empleado:
<?php
echo 'PHP version: '.phpversion()."\n\n";
$microtime = microtime(true);
for($i=0;$i<1000000;$i++) $a = (string)567;
echo 'Mtodo cast: '.(microtime(true)-$microtime)." segundos\n";
var_dump($a);
$microtime = microtime(true);
for($i=0;$i<1000000;$i++) $a = strval(343);
echo 'Funcin strval: '.(microtime(true)-$microtime)." segundos\n";
var_dump($a);
$b = 456;
$microtime = microtime(true);
for($i=0;$i<1000000;$i++) $a = $b.""; //concatenacin de cadenas
echo 'Concatenacin de cadenas: '.(microtime(true)-$microtime)." segundos\n";
var_dump($a);
$b = 567;
$microtime = microtime(true);
for($i=0;$i<1000000;$i++) $a = "$b"; //formacin de cadenas
echo 'Formacin de cadenas: '.(microtime(true)-$microtime)." segundos\n";
var_dump($a);
?>
Y estos los resultados obtenidos en mi caso:
PHP version: 5.2.5
Mtodo cast: 6.115082025528 segundos
string(3) "567"
Funcin strval: 6.3874759674072 segundos
string(3) "343"
Concatenacin de cadenas: 6.1379280090332 segundos
string(3) "456"
Formacin de cadenas: 6.1571230888367 segundos
string(3) "567"
El mtodo cast es el ms rpido y la funcin strval la ms lenta quizs debido a que este mtodo tiene ms
funcionalidades. Los otros mtodos parecen ligeramente inferiores en rapidez.
Tenemos otra artculo relacionado con este por si estas interesado en la conversin de int a string en java.
Java es un lenguaje con el tipado ms estricto que php por lo que conocer esta conversin de tipos para este
lenguaje puede serte til tambin.
Ejemplo:
int entero = 1;
String enteroString = Integer.toString(entero);
double d = 8342342;
System.out.println(Double.toString(d));
Tanto la clase Integer con la clase Double se encuentran en el package java.lang. Atencin int y double son
tipos primitivos del lenguaje java. Integer y Double son clases que representan estos tipos primitivos y le
aaden ms funcionalidades. Como por ejemplo las que acabamos de ver.
Publicado por Abraham Covelo