Existe uma maneira de converter um número inteiro em uma string no PHP?
strval()
não muda $variable
internamente nem.
Existe uma maneira de converter um número inteiro em uma string no PHP?
strval()
não muda $variable
internamente nem.
Respostas:
Você pode usar a strval()
função para converter um número em uma string.
Do ponto de vista da manutenção, é óbvio o que você está tentando fazer, em vez de outras respostas mais esotéricas. 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";
strval(0.999999997)
retorna 1
.
Há muitas maneiras de fazer isso.
Dois exemplos:
$str = (string) $int;
$str = "$int";
Veja o Manual do PHP sobre Tipos de Malabarismo para mais.
0
para ""
pode não ser ruim; realmente depende da aplicação. Dito isto, você faz um bom argumento.
$foo = 5;
$foo = $foo . "";
Agora $foo
é uma string.
Mas você pode se acostumar com a transmissão. Como a transmissão é a maneira correta de realizar algo desse tipo:
$foo = 5;
$foo = (string)$foo;
Outra maneira é encapsular entre aspas:
$foo = 5;
$foo = "$foo"
Existem várias maneiras de "converter" um número inteiro em uma string no PHP.
A maneira tradicional de ciência da computação 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 aproveitar a conversão implícita de tipos e a interpolação de strings do PHP:
$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 acima, qualquer função que aceite e retorne uma string pode ser usada 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 já vi código que dependia desse comportamento, então pensei em repassá-lo.
Todas essas respostas são ótimas, mas todas retornam uma string vazia se o valor for zero.
Tente o seguinte:
$v = 0;
$s = (string)$v ? (string)$v : "0";
Você pode usar o operador de período e concatenar uma string para ele (e será do tipo convertido em uma string):
$integer = 93;
$stringedInt = $integer . "";
Ou, mais corretamente, você pode apenas digitar converter o número inteiro em uma string:
$integer = 93;
$stringedInt = (string) $integer;
Como as respostas aqui demonstram bem, sim, existem várias maneiras. No entanto, no PHP, você raramente precisa fazer isso. A "maneira dogmática" de escrever PHP é confiar no sistema de digitação flexível da linguagem, que coagirá o tipo de forma transparente conforme necessário. Para valores inteiros, isso geralmente é sem problemas. Você deve ter muito cuidado com os valores de ponto flutuante.
strlen(12345);
mas não por $x = 12345; echo $x[2];
Todas essas funções de conversão são bastante úteis e muitos programadores estão verificando seus tipos cada vez mais.
Eu diria que depende do contexto. strval () ou o operador de conversão (string) pode ser usado. No entanto, na maioria dos casos, o PHP decidirá o que é bom para você se, por exemplo, você o usar com echo ou printf ...
Uma pequena observação: die () precisa de uma string e não mostra nenhum int :)
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount); //string
Portanto, o eco será uma string de retorno .
$integer = 93;
$stringedInt = $integer.'';
é mais rápido que
$integer = 93;
$stringedInt = $integer."";
echo
o usa (usado no chamado contexto de string ).