Converter um inteiro para uma string em PHP
-
10-07-2019 - |
Pergunta
Existe uma maneira de converter um inteiro para uma string em PHP?
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."";