如何将PHP变量的值转换为字符串?
我正在寻找比连接一个空字符串更好的东西:
$myText = $myVar . '';
类似于Java或。net中的ToString()方法。
如何将PHP变量的值转换为字符串?
我正在寻找比连接一个空字符串更好的东西:
$myText = $myVar . '';
类似于Java或。net中的ToString()方法。
当前回答
当预期的字符串变量前导为0(例如077543)时,前面的回答中的一些(如果不是全部)方法会失败。
转换这样一个变量的尝试无法获得预期的字符串,因为变量被转换为以8为基数(八进制)。
所有这些将使$str的值为32611:
$no = 077543
$str = (string)$no;
$str = "$no";
$str = print_r($no,true);
$str = strval($no);
$str = settype($no, "integer");
其他回答
把它放在双引号里应该可以:
$myText = "$myVar";
__toString方法或(string)强制转换
$string=(string)$variable; //force make string
可以将对象视为字符串
class Foo
{
public function __toString()
{
return "foo";
}
}
echo new Foo(); //foo
还有另一个技巧,假设你有int变量,你想把它变成字符串
$string=''.$intvariable;
您总是可以创建一个名为.ToString($in)的方法来返回
$in . '';
我认为值得一提的是,你可以通过使用输出缓冲来捕获变量中的任何输出(如print_r, var_dump):
<?php
ob_start();
var_dump($someVar);
$result = ob_get_clean();
?>
感谢: 如何将var_dump的结果捕获到字符串?
当预期的字符串变量前导为0(例如077543)时,前面的回答中的一些(如果不是全部)方法会失败。
转换这样一个变量的尝试无法获得预期的字符串,因为变量被转换为以8为基数(八进制)。
所有这些将使$str的值为32611:
$no = 077543
$str = (string)$no;
$str = "$no";
$str = print_r($no,true);
$str = strval($no);
$str = settype($no, "integer");