如何将PHP变量的值转换为字符串?

我正在寻找比连接一个空字符串更好的东西:

$myText = $myVar . '';

类似于Java或。net中的ToString()方法。


当前回答

对于基本类型,只需使用(string)$var或直接打印此变量。PHP是动态类型的语言,变量会动态地转换为字符串。

如果你想将对象转换为字符串,你需要定义返回字符串的__toString()方法。禁止此方法抛出异常。

其他回答

你正在寻找strval:

字符串strval (mixed $var) 获取一个变量的字符串值。 参见有关字符串的文档 有关转换到的更多信息 字符串。 此函数不执行格式化 返回值。如果你是 正在寻找格式化数字的方法 值作为字符串,请参见 Sprintf()或number_format()。

你可以使用类型转换:

$var = (string)$varname;

或StringValue:

$var = strval($varname);

或SetType:

$success = settype($varname, 'string');
// $varname itself becomes a string

它们在类型杂耍方面的作用都是一样的。

PHP是动态类型的,所以就像Chris Fournier说的,“如果你像字符串一样使用它,它就变成了字符串”。如果您正在寻找对字符串格式的更多控制,那么printf就是您的答案。

当预期的字符串变量前导为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";