Php 我可以将变量类型从object更改为string吗?

Php 我可以将变量类型从object更改为string吗?,php,type-conversion,Php,Type Conversion,可能重复: 我有一个包含某个对象(SimpleXML)的变量。 我可以更改此变量的类型并将其分配给此变量本身吗? 像这样: $test = (string)$test; var_dump($test); 上面的代码不起作用,因此输出仍然是对象(simplexmlement),而不是字符串 但是当我给它分配另一个变量时,比如$new\u test=(string)$test,它工作得很好,并且var\u dump输出是string]如果需要字符串内容,请使用asXML方法 var_dump($

可能重复:

我有一个包含某个对象(SimpleXML)的变量。
我可以更改此变量的类型并将其分配给此变量本身吗?
像这样:

$test = (string)$test;
var_dump($test);
上面的代码不起作用,因此输出仍然是
对象(simplexmlement)
,而不是
字符串


但是当我给它分配另一个变量时,比如
$new\u test=(string)$test
,它工作得很好,并且var\u dump输出是
string
]

如果需要字符串内容,请使用
asXML
方法

var_dump($test->asXML());

这取决于
SimpleXML
如何实现神奇功能。每个班级都不一样。但是如果它没有实现,PHP将抛出一个致命错误


因此,除非实现了
\uu toString()
方法,否则直接从
对象
字符串的类型转换不起作用。

不能像添加声明一样将对象转换为字符串,它可能会工作,但它不会表现得像期望的那样。尽管在stack中有一篇伟大的文章,但是在这里之前写过,关于如何以最佳方式完成它,这是通过添加tostring方法来实现的。请阅读这里的更多内容。。。

将SimpleXMLObject类型转换为字符串

$foo = array( (string) $xml->parent->child );

<?php
  $xmlstring = "<parent><child> hello world </child></parent>";
  $xml = simplexml_load_string($xmlstring);
  $foo = array( (string) $xml->child );
  var_dump($xml).PHP_EOL;
  var_dump($foo);
?>

这取决于正在转换的对象。对于SimpleXML,您可能需要它的
asXML
方法:。对于常规对象,如果对象实现了
\uuu toString()
方法,则可以将其类型转换为字符串。另一个选项是
var\u export(…,true)
,但除了调试之外,它很少有用。

当我将它分配给另一个变量时,没有sring这样的事情[像这样
$test2=(string)$test
它工作得很好,而var\u dump输出是
sring
]我不知道你在做什么,因为我没有看到你的代码。但是
$var=(字符串)$var
$var2=(字符串)$var相同
的意思是
$var
$var2
都包含相同的内容。非常感谢。你是对的,这是代码中的另一个问题。谢谢你的帮助
object(SimpleXMLElement)#1 (1) {
  ["child"]=>
  string(13) " hello world "
}
array(1) {
  [0]=>
  string(13) " hello world "
}