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);