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

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

$myText = $myVar . '';

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


当前回答

文档说你还可以这样做:

$str = "$foo";

和演员一样,但是我觉得看起来更漂亮。

来源:

俄罗斯 英语

其他回答

你可以使用类型转换:

$var = (string)$varname;

或StringValue:

$var = strval($varname);

或SetType:

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

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

如果转换的不是简单类型(如整数或布尔值),则需要为要转换的类型编写自己的函数/方法,否则PHP将只打印该类型(如数组、GoogleSniffer或Bidet)。

$parent_category_name = "new clothes & shoes";

// To make it to string option one
$parent_category = strval($parent_category_name);

// Or make it a string by concatenating it with 'new clothes & shoes'
// It is useful for database queries
$parent_category = "'" . strval($parent_category_name) . "'";

这是通过类型转换完成的:

$strvar = (string) $var; // Casts to string
echo $var; // Will cast to string implicitly
var_dump($var); // Will show the true type of the variable

在类中,你可以使用神奇的__toString方法来定义输出内容。下面是一个例子:

class Bottles {
    public function __toString()
    {
        return 'Ninety nine green bottles';
    }
}

$ex = new Bottles;
var_dump($ex, (string) $ex);
// Returns: instance of Bottles and "Ninety nine green bottles"

更多类型强制转换示例:

$i = 1;

// int 1
var_dump((int) $i);

// bool true
var_dump((bool) $i);

// string "1"
var_dump((string) 1);

你正在寻找strval:

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