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 "
}