Pergunta

Existe uma maneira de converter um inteiro para uma string em PHP?

Foi útil?

Solução

Você pode usar a função strval() para converter um número em uma string.

Do ponto de vista de manutenção a sua evidente que você está tentando fazer, em vez de alguns dos outros respostas mais esotéricos. Claro, isso depende do seu 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";

Outras dicas

Há muitas maneiras de fazer isso.

Dois exemplos:

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

Consulte o Manual de PHP em Tipos malabarismo para mais.

$foo = 5;

$foo = $foo . "";

Agora $foo é uma string.

Mas, você pode querer se acostumar com a fundição. Como casting é a maneira correta de realizar algo desse tipo.

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

Outra maneira é encapsular entre aspas:

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

Há uma série de maneiras de "converter" um inteiro para uma string em PHP.

A maneira tradicional CS seria converter a variável como uma string

$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";

Você também pode tirar vantagem da conversão de PHP implícita tipo e seqüência de interpolação

$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, semelhante ao anterior, qualquer função que aceita e retorna uma string pode ser usado para converter e inteiro. Considere o seguinte

$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"; 

Eu não recomendaria a opção final, mas eu vi o código em estado selvagem que contavam com este comportamento, então pensei que passá-lo.

Todas estas respostas são grandes, mas todos eles retornar uma string vazia se o valor é zero.

Tente o seguinte:

$v = 0;

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

ou poderia ser:

$string = (string)$intValue ; 

ou

settype(&$intValue ,'string');  

Existem muitas maneiras possíveis de conversão:

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

Você pode usar o operador período e concatenar uma string para ele (e ele vai ser do tipo fundido a uma string):

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

Ou, mais corretamente, você pode simplesmente digitar lançar o inteiro para uma string:

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

Eu diria que depende do contexto. strval () ou o operador de conversão (cadeia) pode ser utilizada, no entanto, na maioria dos casos PHP vai decidir o que é bom para você, se por exemplo você usá-lo com eco ou printf ... uma pequena nota: die () precisa de uma corda e não vai mostrar qualquer int:)

Como as respostas aqui demonstra muito bem, sim, existem várias maneiras. No entanto, em PHP você raramente realmente precisa fazer isso. A "forma dogmática" para escrever PHP é contar com sistema de tipificação fraca da linguagem, que vai transparente coagir o tipo conforme necessário. Para valores inteiros, isto é, normalmente, sem problemas. Você deve ter muito cuidado com valores de ponto flutuante, apesar de tudo.

Você pode simplesmente usar o seguinte:

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

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

Assim o eco será retorno string

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

é mais rápido do que

$integer = 93;
$stringedInt = $integer."";
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top