在PHP中有一种将整数转换为字符串的方法吗?
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
。 - danielson317$foo = 5;
$foo = $foo . "";
现在$foo
是一个字符串。
但是,您可能希望学会强制转换。因为强制转换是完成这种操作的正确方式:
$foo = 5;
$foo = (string)$foo;
另一种方法是将其用引号包裹:
$foo = 5;
$foo = "$foo"
在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";
我不建议最后一种选择,但我曾经见过现实世界中依赖这种行为的代码,所以我想传递这个信息。
使用:
$intValue = 1;
$string = sprintf('%d', $intValue);
或者它可能是:
$string = (string)$intValue;
或者:settype($intValue, 'string');
警告: 下面的答案基于错误的前提。将数字0转换为字符串始终返回字符串"0",使提供的代码冗余。
所有这些答案都很好,但如果值为零,则它们都会返回空字符串。
试试下面的方法:
$v = 0;
$s = (string)$v ? (string)$v : "0";
var_dump((string)0);
在我使用的 PHP 5.5.9(发布日期:2014年2月6日)上打印出 string(1) "0"
。你使用的是哪个版本的 PHP,会在值为零时返回“空字符串”? - Lacek有很多可能的转换方式:
$input => 123
sprintf('%d',$input) => 123
(string)$input => 123
strval($input) => 123
settype($input, "string") => 123
您可以使用点号运算符并将字符串连接到它上面(它将被强制转换为字符串):
$integer = 93;
$stringedInt = $integer . "";
$integer = 93;
$stringedInt = (string) $integer;
正如这里的答案很好地展示了,是的,有几种方法。然而,在PHP中,你很少需要这样做。编写PHP的“教条方式”是依靠语言的松散类型系统,它会根据需要透明地强制转换类型。对于整数值,通常没有问题。但是,您应该非常小心浮点值。
strlen(12345);
这个函数进行转换,但不会对$x = 12345; echo $x[2];
这个语句进行转换。所有这些类型转换函数都非常有用,越来越多的程序员正在检查他们的数据类型。 - Elzo Valugi我认为这取决于上下文。可以使用strval()或强制类型转换运算符(string)。但是,在大多数情况下,如果您将其与echo或printf一起使用,PHP将决定什么对您有好处...
一个小提示:die()需要一个字符串,不会显示任何整数 :)
echo
这个函数中被视为字符串类型(即所谓的“字符串上下文”)。 - hakrestrval()
函数在内部不会改变$variable
变量的值。 - hakre