提问人:kman99 提问时间:6/24/2009 最后编辑:YanDatsiukkman99 更新时间:6/4/2022 访问量:1588998
在 PHP 中将整数转换为字符串
Converting an integer to a string in PHP
答:
$foo = 5;
$foo = $foo . "";
现在是一个字符串。$foo
但是,您可能想习惯铸造。因为铸造是完成此类任务的正确方法:
$foo = 5;
$foo = (string)$foo;
另一种方法是用引号括起来:
$foo = 5;
$foo = "$foo"
评论
有很多方法可以做到这一点。
两个例子:
$str = (string) $int;
$str = "$int";
有关更多信息,请参阅有关类型杂耍的 PHP 手册。
您可以使用句点运算符并将字符串连接到它(它将被类型转换为字符串):
$integer = 93;
$stringedInt = $integer . "";
或者,更准确地说,你可以将整数转换为字符串:
$integer = 93;
$stringedInt = (string) $integer;
您可以使用 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
// The two examples above have the same end value...
// ... And so do the two below
// Explicit cast
$items = (string)$var; // $items === "5";
// Function call
$items = strval($var); // $items === "5";
评论
strval(0.999999997)
1
我想说这取决于上下文。strval() 或强制转换运算符 (string) 可以使用。然而,在大多数情况下,PHP会决定什么对你有好处,例如,如果你将它与echo或printf一起使用。
一个小提示:die() 需要一个字符串,并且不会显示任何 int :)
评论
在 PHP 中,有许多方法可以将整数“转换”为字符串。
传统的计算机科学方法是将变量转换为字符串:
$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";
我不推荐最后一个选项,但我在野外看到过依赖于这种行为的代码,所以我想我会把它传递出去。
正如这里的答案很好地表明的那样,是的,有几种方法。然而,在PHP中,你很少需要这样做。编写PHP的“教条方式”是依靠语言的松散类型系统,该系统将根据需要透明地强制类型。对于整数值,这通常没有问题。但是,您应该非常小心浮点值。
评论
strlen(12345);
$x = 12345; echo $x[2];
$integer = 93;
$stringedInt = $integer.'';
比
$integer = 93;
$stringedInt = $integer."";
评论
用:
$intValue = 1;
$string = sprintf('%d', $intValue);
或者它可能是:
$string = (string)$intValue;
艺术
settype($intValue, 'string');
有多种可能的转换方式:
$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123
警告:以下答案基于错误的前提。将 0 数字转换为字符串始终返回字符串“0”,从而使提供的代码变得多余。
所有这些答案都很好,但如果值为零,它们都会返回一个空字符串。
请尝试以下操作:
$v = 0;
$s = (string)$v ? (string)$v : "0";
评论
var_dump((string)0);
在PHP 5.5.9(发布时间:2014年2月6日)上为我打印。你得到的是哪个版本的 PHP“如果值为零,则为空字符串”?string(1) "0"
您可以简单地使用以下命令:
$intVal = 5;
$strVal = trim($intVal);
评论
trim()
strval()
number_format()
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount); //string
所以 echo 将是返回字符串。
评论
我的情况:
echo strval("12"); => 12
echo strval("0"); => "0"
我在工作......
$a = "12";
$b = "0";
echo $a * 1; => 12
echo $b * 1; => 0
评论
我尝试了上述所有方法,但是当我将值嵌入到另一个字符串中时,我遇到了“数组到字符串转换”错误。如果您对我有同样的问题,请尝试 implode() 函数。 例:
$integer = 0;
$id = implode($integer);
$text = "Your user ID is: ".$id ;
评论
Argument #1 ($pieces) must be of type array, string given
评论
echo
strval()
$variable