在PHP中将整数转换为字符串
有没有办法在PHP中将整数转换为字符串?
12个解决方案
647 votes
您可以使用strval()函数将数字转换为字符串。
从维护的角度来看,它显然是你想要做的,而不是其他一些更深奥的答案。 当然,这取决于你的背景。
$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";
Chris Thompson answered 2019-01-01T04:55:15Z
79 votes
有很多方法可以做到这一点。
两个例子:
$str = (string) $int;
$str = "$int";
有关更多信息,请参阅PHP手册类型杂耍。
Sanjay Sheth answered 2019-01-01T04:55:49Z
36 votes
$foo = 5;
$foo = $foo . "";
现在$foo是一个字符串。
但是,你可能想习惯投射。 铸造是完成某种事情的正确方法。
$foo = 5;
$foo = (string)$foo;
另一种方法是封装在引号中:
$foo = 5;
$foo = "$foo"
Sev answered 2019-01-01T04:56:24Z
9 votes
在PHP中有很多方法可以将整数“转换”为字符串。
传统的CS方式是将变量转换为字符串
$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";
您还可以利用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";
最后,与上面类似,任何接受并返回字符串的函数都可以用于转换和整数。 考虑以下
$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";
我不推荐最终选项,但我已经看到了依赖于这种行为的野外代码,所以我想我会把它传递给它。
Alan Storm answered 2019-01-01T04:57:13Z
7 votes
所有这些答案都很棒,但如果值为零,它们都会返回一个空字符串。
请尝试以下方法:
$v = 0;
$s = (string)$v : (string)$v ? "0";
Microprocessor Cat answered 2019-01-01T04:57:37Z
6 votes
$intValue = 1;
$string = sprintf('%d',$intValue );
或者可能是:
$string = (string)$intValue ;
要么:
settype(&$intValue ,'string');
gewel answered 2019-01-01T04:58:05Z
4 votes
有许多可能的转换方式:
$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123
Saad answered 2019-01-01T04:58:27Z
3 votes
您可以使用句点运算符并将字符串连接到它(并且它将类型转换为字符串):
$integer = 93;
$stringedInt = $integer."";
或者,更准确地说,您只需键入强制转换为字符串:
$integer = 93;
$stringedInt = (string) $integer;
Andrew Dunkman answered 2019-01-01T04:58:55Z
0 votes
我会说这取决于背景。 可以使用strval()或者转换操作符(string),但是在大多数情况下,PHP会决定什么对你有好处,例如你将它与echo或printf一起使用...一个小注释:die()需要一个字符串, 不会显示任何int :)
merkuro answered 2019-01-01T04:59:17Z
0 votes
由于这里的答案很好地证明了,是的,有几种方法。 但是,在PHP中,您很少需要这样做。 编写PHP的“教条方式”是依赖于语言的松散类型系统,它将根据需要透明地强制类型化。 对于整数值,这通常没有问题。 不过,您应该非常小心浮点值。
troelskn answered 2019-01-01T04:59:41Z
0 votes
您只需使用以下内容:
$intVal = 5;
$strVal = trim($intVal);
Imam answered 2019-01-01T05:00:02Z
-4 votes
$integer = 93;
$stringedInt = $integer.'';
比...更快
$integer = 93;
$stringedInt = $integer."";
Arthur Kushman answered 2019-01-01T05:00:24Z