-1

重複の可能性:
PHP でオブジェクトを文字列に変換する方法

オブジェクト (SimpleXML) を含む変数があります。
この変数の型を変更して、この変数自体に割り当てることはできますか?
このような:

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

上記のコードは機能しないため、出力はまだobject(SimpleXMLElement)であり、string.

しかし、別の変数を割り当てると$new_test = (string)$test、うまく機能し、var_dump の出力はstring]

4

5 に答える 5

0

文字列の内容が必要な場合は、asXMLメソッドを使用します。

var_dump($test->asXML());
于 2012-09-14T07:36:04.820 に答える
0

変換されるオブジェクトによって異なります。SimpleXMLの場合、おそらくそのasXMLメソッドが必要です:http ://www.php.net/manual/en/simplexmlelement.asxml.php 。一般的なオブジェクトの場合、オブジェクトが__toString()メソッドを実装している場合は、文字列に型キャストできます。別のオプションもありますがvar_export(...,true)、デバッグを除いて、それが役立つことはめったにありません。

于 2012-09-14T07:38:12.543 に答える
0

SimpleXMLマジック関数__toString()の実装方法によって異なります。クラスごとに違います。しかし、実装されていない場合、PHP は致命的なエラーをスローします。

そのため、メソッドが実装されていない限り、 from からobjectto への直接の型キャストは機能しません。string__toString()

于 2012-09-14T07:36:17.877 に答える
0

宣言を追加するのと同じようにオブジェクトを文字列に変換することはできません。動作する可能性がありますが、目的のように動作しません。 tostring メソッドを追加することによる最適な方法で行う方法について、スタックで以前に書かれた素晴らしい記事があります。詳細はこちら... PHPでオブジェクトを文字列に変換する方法

于 2012-09-14T07:36:45.400 に答える
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

于 2012-09-14T07:37:06.090 に答える