2012-09-14 47 views
0

可能重複:
how to convert object into string in php我可以將對象的變量類型更改爲字符串嗎?

我有包含一些對象(的SimpleXML)的變量。
我可以更改此變量的類型,並將其分配給此變量本身嗎?
像這樣:

$test = (string)$test; 
var_dump($test); 

上面的代碼不工作,所以輸出仍然object(SimpleXMLElement)而不是string

但是,當我爲它分配另一個變量,如$new_test = (string)$test它運作良好,以及後續代碼var_dump輸出爲string]

+1

有沒有這樣的東西sring – Breezer

+0

http://stackoverflow.com/questions/2469222/how-to-convert-object-into-string-in-php – Ziinloader

+0

http://stackoverflow.com/questions/28098/ php-tostring-equivalent – pankar

回答

0

如果你想字符串內容,請使用asXML方法。

var_dump($test->asXML()); 
1

這取決於如何SimpleXML實現了神奇的功能__toString()。它不同於班級。但是如果它沒有實現,PHP會拋出一個致命的錯誤。

因此,除非實施__toString()方法,否則直接從objectstring的類型轉換不起作用。

+0

當我將它賦值給另一個變量時[比如'$ test2 =(string)$ test',它工作的很好,var_dump的輸出是'sring'] – s976

+0

我不知道你在做什麼,因爲我沒有看到你的代碼。但是'$ var =(string)$ var;'與'$ var2 =(string)$ var;'相同,因爲'$ var'和'$ var2'都會包含相同的內容。 – vanneto

+0

非常感謝。你是對的,這是代碼中的另一個問題。感謝您的幫助 – s976

0

你不能將對象轉換爲字符串就像添加一個聲明,它可能會工作,但它不會像希望的那樣行爲有一個greate文章,雖然之前在這裏寫在堆棧上你應該如何做它的最佳方式是添加toString方法在這裏閱讀更多... how to convert object into string in php

0

類型轉換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); 
?> 

輸出

object(SimpleXMLElement)#1 (1) { 
    ["child"]=> 
    string(13) " hello world " 
} 
array(1) { 
    [0]=> 
    string(13) " hello world " 
} 

http://codepad.org/Bss1rndd

0

它取決於被轉換的對象。對於SimpleXML,您可能需要它的asXML方法:http://www.php.net/manual/en/simplexmlelement.asxml.php。對於一般對象,如果對象實現__toString()方法,則可以對字符串進行類型轉換。另一個選項是var_export(...,true),但除調試外,這種方法很少有用。

相關問題