PHP中的ToString()等效项
时间:2020-03-05 18:43:19 来源:igfitidea点击:
如何将PHP变量的值转换为字符串?
我在寻找比连接空字符串更好的东西:
$myText = $myVar . '';
就像Java或者.NET中的ToString()方法一样。
解决方案
回答
用双引号将其工作:
$myText = "$myVar";
回答
我们始终可以创建一个名为.ToString($ in)的方法,该方法返回
$in . '';
回答
How do I convert the value of a PHP variable to string?
可以使用(string)强制转换或者strval()函数将值转换为字符串。 (编辑:正如托马斯还说的那样)。
当我们将其用作字符串时,也应该自动为我们强制转换。
回答
我们可以使用强制转换运算符:
$myText = (string)$myVar;
PHP手册的"字符串"部分提供了有关字符串转换和转换的更多详细信息,包括对布尔值和null的特殊处理。
回答
如果要转换除整数或者布尔值之类的简单类型以外的任何内容,则需要为要转换的类型编写自己的函数/方法,否则PHP只会打印该类型(例如数组,GoogleSniffer或者坐浴盆)。
回答
PHP是动态类型的,因此就像Chris Fournier所说的那样:"如果像字符串一样使用它,它将变成字符串"。如果我们正在寻找对字符串格式的更多控制,那么printf是答案。
回答
这是通过类型转换完成的:
$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);
回答
对于基元,只需使用(string)$ var
或者立即打印此变量。 PHP是动态类型化的语言,并且变量将即时转换为字符串。
如果要将对象转换为字符串,则需要定义返回字符串的__toString()
方法。禁止使用此方法引发异常。
回答
我们正在寻找strval:
string strval ( mixed $var ) Get the string value of a variable. See the documentation on string for more information on converting to string. This function performs no formatting on the returned value. If you are looking for a way to format a numeric value as a string, please see sprintf() or number_format().
回答
我们可以使用类型转换:
$var = (string)$varname;
或者StringValue:
$var = strval($varname);
或者SetType:
$success = settype($varname, 'string'); // $varname itself becomes a string
在类型变戏法方面,它们都为同一件事工作。
回答
使用print_r:
$myText = print_r($myVar,true);
我们也可以使用
$myText = print_r($myVar,true)."foo bar";
这会将$ myText
设置为字符串,例如:
array ( 0 => '11', )foo bar
使用var_export获得更多信息(带有变量类型,...):
$myText = var_export($myVar,true);