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

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

$myText = $myVar . '';

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


当前回答

我如何转换一个PHP的值 变量转换为字符串?

可以使用(string)强制转换或strval()函数将值转换为字符串。(编辑:托马斯也说过)。

当您将它作为字符串使用时,它也应该自动为您强制转换。

其他回答

对于对象,您可能无法使用强制转换操作符。相反,我使用json_encode()方法。

例如,下面将输出内容到错误日志:

error_log(json_encode($args));

您还可以使用var_export PHP函数。

您总是可以创建一个名为.ToString($in)的方法来返回

$in . '';  

除了Thomas G. Mayfield给出的答案之外:

如果你跟随字符串强制转换手册的链接,有一个非常重要的特殊情况需要理解:

(string)类型转换更可取,特别是如果变量$a是一个对象,因为PHP将根据其对象模型调用__toString()魔术方法来遵循类型转换协议(如果在$a实例化的类中定义了此方法)。

PHP做了类似的事情

function castToString($instance) 
{ 
    if (is_object($instance) && method_exists($instance, '__toString')) {
        return call_user_func_array(array($instance, '__toString'));
    }
}

(string)强制转换操作是PHP5+编程中推荐的技术,可以使代码更加面向对象。在我看来,这是一个与其他OOP语言(如Java/ c#等)设计相似(不同)的好例子。也就是说,以它自己特殊的PHP方式(只要是为了好的或有价值的)。

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

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