Pregunta

¿Hay alguna forma de convertir un entero en una cadena en PHP?

¿Fue útil?

Solución

Puede usar el strval () función para convertir un número en una cadena.

Desde una perspectiva de mantenimiento, es obvio lo que está tratando de hacer en lugar de algunas de las otras respuestas más esotéricas. Por supuesto, depende de su contexto.

$var = 5;

// Inline variable parsing
echo "I'd like {$var} waffles"; // = "I'd like 5 waffles

// String concatenation 
echo "I'd like ".$var." waffles"; // I'd like 5 waffles

// Explicit cast 
$items = (string)$var; // $items === "5";

// Function call
$items = strval($var); // $items === "5";

Otros consejos

Hay muchas formas de hacer esto.

Dos ejemplos:

 $str = (string) $int;
 $str = "$int";     

Consulte el Manual de PHP en Tipos Malabares para más.

$foo = 5;

$foo = $foo . "";

ahora $ foo es una cadena.

Pero, es posible que desee acostumbrarse al casting. Como el casting es la forma correcta de lograr algo por el estilo.

$foo = 5;    
$foo = (string)$foo;

Otra forma es encapsular entre comillas:

$foo = 5;
$foo = "$foo"

Hay varias formas de " convertir " un entero a una cadena en PHP.

La forma tradicional de CS sería convertir la variable como una cadena

$int = 5;
$int_as_string = (string) $int;
echo $int . ' is a '. gettype($int) . "\n"; 
echo $int_as_string . ' is a '. gettype($int_as_string) . "\n";

También puede aprovechar la conversión de tipo implícito de PHP y la interpolación de cadenas

$int = 5;
echo $int . ' is a '. gettype($int) . "\n"; 

$int_as_string = "$int";
echo $int_as_string . ' is a '. gettype($int_as_string) . "\n"; 

$string_int = $int.'';
echo $int_as_string . ' is a '. gettype($int_as_string) . "\n";     

Finalmente, de manera similar a lo anterior, cualquier función que acepte y devuelva una cadena podría usarse para convertir e integer. Considere lo siguiente

$int = 5;
echo $int . ' is a '. gettype($int) . "\n"; 

$int_as_string = trim($int);
echo $int_as_string . ' is a '. gettype($int_as_string) . "\n"; 

No recomendaría la opción final, pero he visto código en la naturaleza que se basaba en este comportamiento, así que pensé en pasarlo.

Todas estas respuestas son geniales, pero todas te devuelven una cadena vacía si el valor es cero.

Pruebe lo siguiente:

$v = 0;

$s = (string)$v : (string)$v ? "0";
$intValue = 1; 
$string = sprintf('%d',$intValue ); 

o podría ser:

$string = (string)$intValue ; 

o:

settype(&$intValue ,'string');  

Hay muchas formas posibles de conversión:

$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123

Puede usar el operador de período y concatenar una cadena (y se tecleará en una cadena):

$integer = 93;
$stringedInt = $integer."";

O, más correctamente, puede escribir cast el entero en una cadena:

$integer = 93;
$stringedInt = (string) $integer;

Diría que depende del contexto. strval () o se podría utilizar el operador de conversión (cadena), sin embargo, en la mayoría de los casos, PHP decidirá qué es bueno para usted, si por ejemplo lo usa con echo o printf ... Una pequeña nota: die () necesita una cadena y no mostrará ningún int :)

Como las respuestas aquí se demuestran muy bien, sí, hay varias formas. Sin embargo, en PHP rara vez necesitas hacer eso. La "forma dogmática" escribir PHP es confiar en el sistema de tipeo suelto del lenguaje, que coaccionará el tipo de forma transparente según sea necesario. Para valores enteros, esto suele ser sin problemas. Sin embargo, debe tener mucho cuidado con los valores de coma flotante.

Simplemente puede usar lo siguiente:

$intVal = 5;
$strVal = trim($intVal);
$amount = 2351.25;
$str_amount = "2351.25";

$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount);

Entonces el eco será devuelto string

$integer = 93;
$stringedInt = $integer.'';

es más rápido que

$integer = 93;
$stringedInt = $integer."";
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top