在PHP中有方法将整数转换为字符串吗?
$foo = 5;
$foo = $foo . "";
现在$foo是一个字符串。
但是,你可能需要习惯选角。因为铸造是完成这类事情的正确方式:
$foo = 5;
$foo = (string)$foo;
另一种方法是用引号封装:
$foo = 5;
$foo = "$foo"
你可以使用句号操作符并将一个字符串连接到它(它将被类型转换为字符串):
$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()或强制转换操作符(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的“教条方式”是依赖于该语言的松散类型系统,该系统将根据需要透明地强制输入类型。对于整数值,这通常没有问题。但是,使用浮点值时应该非常小心。
$integer = 93;
$stringedInt = $integer.'';
比
$integer = 93;
$stringedInt = $integer."";
Use:
$intValue = 1;
$string = sprintf('%d', $intValue);
也可能是:
$string = (string)$intValue;
Or:
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";
$amount = 2351.25;
$str_amount = "2351.25";
$strCorrectAmount = "$amount";
echo gettype($strCorrectAmount); //string
echo将返回string。
我的情况:
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 ;
推荐文章
- 编写器更新和安装之间有什么区别?
- 是否有可能更新一个本地化的故事板的字符串?
- 为什么字符串类型的默认值是null而不是空字符串?
- 在Python中包装长行
- 本地机器上的PHP服务器?
- 如何评论laravel .env文件?
- string. isnullorempty (string) vs. string. isnullowhitespace (string)
- 如何检查字符串的特定字符?
- Haskell:将Int转换为字符串
- 在PHP中检测移动设备的最简单方法
- 将字符串转换为Uri
- jUnit中的字符串上的AssertContains
- 如何在树枝模板中呈现DateTime对象
- 我如何把变量javascript字符串?
- 如何删除查询字符串,只得到URL?