3

重複の可能性:
PHP ToString() と同等
PHP オブジェクトを文字列に変換するには?

デバッグ目的で、任意の種類の変数 (プリミティブ、オブジェクト、配列など) を取り、それを文字列に変換できる関数を探しています。

これは、オブジェクトを文字列に変換することについて私が見つけた最良の質問です。その回答には、あらゆる種類のオブジェクトを処理できる汎用ソリューションが含まれていないようです。私は試しました(string)xstrval(x)そしてserialize(x)、そしてまたこの答えjson_encode(x)から。

(string)xstrval(x)原因Object of class Foo could not be converted to stringjson_encode(x)空の文字列を返します。serialize()動作しますが、その出力はテキストだけではありません (奇妙な「NULL」が含まれており、読みにくいです。

Stack Overflow で を検索しようとしObject of class Foo could not be converted to stringましたが、賛成票がゼロで一般的な解決策がない特定の質問がたくさん見つかりました。

もう一度質問です - どのようにphpの値をphpの文字列にきれいに印刷/変換するのですか?

4

3 に答える 3

4

私は通常 に行きprint_rます 、これまでのところ私にとってはうまくいきます。

PHP マニュアル: http://php.net/manual/en/function.print-r.php

print_r — 変数に関する人間が読める情報を出力します

于 2013-01-03T16:02:31.297 に答える
3

私が好む:

print_r($object, true);

これにより、オブジェクトの見栄えが文字列に出力されます。

于 2013-01-03T16:00:05.003 に答える
1

これがデバッグのためだけの場合、最も簡単な解決策はprint_rまたはvar_dumpを使用することです。これを HTML ドキュメントで表示する場合は、<pre>タグをラップして、読みやすい形式にすることができます。

<pre>    
<?php print_r( $object ); ?>
</pre>

出力例

$object = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

print_r( $object );

print_rと を使用\n\tて以下をフォーマットします。

mysqli Object
(
    [affected_rows] => 0
    [client_info] => 5.1.62
    [client_version] => 50162
    [connect_errno] => 0
    [connect_error] =>
    [errno] => 0
    [error] =>
    [error_list] => Array
        (
        )

    [field_count] => 0
    [host_info] => 127.0.0.1 via TCP/IP
    [info] =>
    [insert_id] => 0
    [server_info] => 5.5.20
    [server_version] => 50520
    [stat] => Uptime: 11556798  Threads: 2  Questions: 1351931648  Slow queries: 421  Opens: 225532  Flush tables: 1  Open tables: 1017  Queries per second avg: 116.981
    [sqlstate] => 00000
    [protocol_version] => 10
    [thread_id] => 171160
    [warning_count] => 0
)
于 2013-01-03T16:01:26.577 に答える