如何将PHP变量的值转换为字符串?
我正在寻找比用空字符串连接更好的东西:
$myText = $myVar . '';
Run Code Online (Sandbox Code Playgroud)
就像ToString()Java或.NET中的方法一样.
所以当我偶然发现新的JsonSerializable接口时,我在php.net上闲逛,了解有关将PHP对象序列化为JSON的信息.它只有PHP> = 5.4,而且我在5.3.x环境中运行.
这种功能如何实现PHP <5.4?
我还没有使用JSON,但是我正在尝试在应用程序中支持API层,并且将数据对象(否则将被发送到视图)转储到JSON中将是完美的.
如果我尝试直接序列化对象,它会返回一个空的JSON字符串; 这是因为我认为json_encode()不知道该对象究竟做了什么.应予递归降低对象到一个数组,然后编码该?
$data = new Mf_Data();
$data->foo->bar['hello'] = 'world';
Run Code Online (Sandbox Code Playgroud)
echo json_encode($data) 产生一个空对象:
{}
Run Code Online (Sandbox Code Playgroud)
var_dump($data) 但是,按预期工作:
object(Mf_Data)#1 (5) {
["_values":"Mf_Data":private]=>
array(0) {
}
["_children":"Mf_Data":private]=>
array(1) {
[0]=>
array(1) {
["foo"]=>
object(Mf_Data)#2 (5) {
["_values":"Mf_Data":private]=>
array(0) {
}
["_children":"Mf_Data":private]=>
array(1) {
[0]=>
array(1) {
["bar"]=>
object(Mf_Data)#3 (5) {
["_values":"Mf_Data":private]=>
array(1) {
[0]=>
array(1) {
["hello"]=>
string(5) "world"
}
}
["_children":"Mf_Data":private]=>
array(0) …Run Code Online (Sandbox Code Playgroud) 可能重复:
PHP ToString()等效
我收到此错误:
Catchable fatal error: Object of class stdClass could not be converted to string
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是,如何在PHP中将对象转换为字符串?我不想序列化它.
请注意:我使用的代码适用于PHP 4,但不适用于PHP 5
谢谢!
编辑:我自己解决了.这是一种痛苦,但我做到了.无论如何,谢谢大家:-)