ホームページ  >  記事  >  php教程  >  Xdebugドキュメント(2) 変数表示機能

Xdebugドキュメント(2) 変数表示機能

WBOY
WBOYオリジナル
2016-06-16 08:39:241046ブラウズ

Xdebug は、PHP の var_dump() 関数を置き換えて変数値を表示できます。 xdebug のバージョンには、配列要素/オブジェクト属性、最大深さ、およびさまざまなデータ型の文字列長のさまざまな色が含まれています。ここには、変数の表示を適切に処理する関数もいくつかあります。

関連設定:

xdebug.cli_color

タイプ: 整数、デフォルト値: 0、バージョン 2.2 以降

1 に設定すると、xdebug は CLI モードおよび tty ターミナルで出力するときに、var_dump トレースによって出力されたテキストをカラーで表示します。ウィンドウの下に、ANSICON ツールをインストールする必要があります。

2 に設定すると、xdebug は、tty 端末に接続されているかどうか、または ANSICON がインストールされているかどうかに関係なく、常に var_dump とデバッグ トレース情報をカラーで表示します。この場合、最後にエスケープ コードが表示されることがあります。

xdebug.overload_var_dump

タイプ: ブール値、デフォルト値: 2 (バージョン 2.4 より前、デフォルト値は 1)、バージョン 2.1 以降

xdebug はデフォルトで var_dump() 関数をオーバーロードし、php.ini で html_errors が 1 または 2 に設定されている場合に独自の改良版を使用して変数を表示します。この設定を本当に望まない場合は、この設定を 0 に設定できますが、html_errors がインテリジェントにオフにならないように注意してください。

値 2 を使用することをお勧めします。 var_dump() 出力の美しくフォーマットされた表示に加えて、出力にはファイル名と行番号も表示されます。さらに、それに応じて xdebug.file_link_format も提供されます (バージョン 2.3 の新機能)。

xdebug.var_display_max_children

タイプ: 整数、デフォルト値: 128

この設定は、xdebug_var_dump()、xdebug.show_local_vars、またはトレース関数を使用する場合の配列要素の数とオブジェクト プロパティの表示を制御します。

制限されていない場合は、-1 の値に設定できます。

この設定は Remot_Debuggin の影響を受けません。

xdebug.var_display_max_data

タイプ: 整数、デフォルト値: 512

この設定は、xdebug_var_dump()、xdebug.show_local_vars、またはトレース関数を使用するときに表示される文字列の最大長を制御します。

制限されていない場合は、-1 の値に設定できます。

この設定は Remot_Debugging の影響を受けません。

xdebug.var_display_max_ Depth

タイプ: 整数、デフォルト値: 3

この設定は、xdebug_var_dump()、xdebug.show_local_vars、またはトレース関数を使用する場合の配列要素とオブジェクト プロパティの表示レベルを制御します。

最大値は 1023 です。-1 に設定して最大値を示すことができます。

この設定は Remot_Debugging の影響をまったく受けません。

関連機能:

void var_dump( [混合 var [, ...]] )

変数の詳細を表示します。

この関数は xdebug でカバーされています。詳細については、xdebug_var_dump() を参照してください。

void xdebug_debug_zval( [string varname [, ...]] )

この関数は、タイプ、値、参照情報など、1 つ以上の変数の構造化情報を表示するために使用されます。配列はループし、要素の値を再帰的に探索します。この関数は、PHP の debug_zval_dump() 関数とは異なる方法で実装されており、変数自体を関数に渡す必要があるという問題を解決できます。 Xdebug バージョンの関数では、変数名を有効に活用して内部シンボル テーブルでその変数を検索し、関数に変数を渡す手間を省いてすべてのプロパティに直接アクセスします。この関数によって返される情報は、zval 情報をより正確に表現できます。

例:

<?<span style="color: #000000;">php
    </span><span style="color: #800080;">$a</span> = <span style="color: #0000ff;">array</span>(1, 2, 3<span style="color: #000000;">);
    </span><span style="color: #800080;">$b</span> =& <span style="color: #800080;">$a</span><span style="color: #000000;">;
    </span><span style="color: #800080;">$c</span> =& <span style="color: #800080;">$a</span>[2<span style="color: #000000;">];

    xdebug_debug_zval(</span>'a'<span style="color: #000000;">);
    xdebug_debug_zval(</span>"a[2]"<span style="color: #000000;">);
</span>?>

<span style="color: #008000;">/*</span><span style="color: #008000;">*
Returns:

a: (refcount=2, is_ref=1)=array (

    0 => (refcount=1, is_ref=0)=1,

    1 => (refcount=1, is_ref=0)=2,

    2 => (refcount=2, is_ref=1)=3)

a[2]: (refcount=2, is_ref=1)=3
</span><span style="color: #008000;">*/</span>

void xdebug_debug_zval_stdout( [string varname [, ...]] )

xdebug_debug_zval() と同じですが、この関数は Web API インターフェイスを介して情報を表示せず、stdout デバイスに直接表示されます (たとえば、Apache のシングルプロセス モードで実行して表示することができます)ターミナル内)。

void xdebug_dump_superglobals()

この関数はスーパーグローバル変数の要素値を表示します。表示する値はphp.iniのxdebug.dump.*に設定されています。たとえば、php.ini の設定は次のとおりです:

例:

xdebug.dump.GET=*<span style="color: #000000;">
xdebug</span>.dump.SERVER=<span style="color: #000000;">REMOTE_ADDR

Query </span><span style="color: #0000ff;">string</span>:
?<span style="color: #0000ff;">var</span>=fourty%20two&<span style="color: #0000ff;">array</span>[a]=a&<span style="color: #0000ff;">array</span>[9]=<span style="color: #000000;">b

Returns</span>:<span style="color: #000000;">

Dump </span><span style="color: #800080;">$_SERVER</span>

<span style="color: #800080;">$_SERVER</span>['REMOTE_ADDR'] =

<span style="color: #0000ff;">string</span> '127.0.0.1' (length=9<span style="color: #000000;">)

Dump </span><span style="color: #800080;">$_GET</span>

<span style="color: #800080;">$_GET</span>['var'] =

<span style="color: #0000ff;">string</span> 'fourty two' (length=10<span style="color: #000000;">)

</span><span style="color: #800080;">$_GET</span>['array'] =

<span style="color: #0000ff;">array</span>

  'a' => <span style="color: #0000ff;">string</span> 'a' (length=1<span style="color: #000000;">)

  </span>9 => <span style="color: #0000ff;">string</span> 'b' (length=1<span style="color: #000000;">)

 </span>

void xdebug_var_dump( [混合 var [, ...]] )

この関数は、型や値など、1 つ以上の式の構造化された詳細を表示します。配列は要素の値を再帰的に調べます。

例:

<?<span style="color: #000000;">php
</span><span style="color: #008080;">ini_set</span>('xdebug.var_display_max_children', 3<span style="color: #000000;"> );
</span><span style="color: #800080;">$c</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> stdClass;
</span><span style="color: #800080;">$c</span>->foo = 'bar'<span style="color: #000000;">;
</span><span style="color: #800080;">$c</span>-><span style="color: #008080;">file</span> = <span style="color: #008080;">fopen</span>( '/etc/passwd', 'r'<span style="color: #000000;"> );
</span><span style="color: #008080;">var_dump</span><span style="color: #000000;">(
    </span><span style="color: #0000ff;">array</span><span style="color: #000000;">(
        </span><span style="color: #0000ff;">array</span>(<span style="color: #0000ff;">TRUE</span>, 2, 3.14, 'foo'),
        'object' => <span style="color: #800080;">$c</span><span style="color: #000000;">
    )
);
</span>?>  

<span style="color: #008000;">/*</span><span style="color: #008000;">*
Returns:

array

  0 =>

    array

      0 => boolean true

      1 => int 2

      2 => float 3.14

      more elements...

  'object' =>

    object(stdClass)[1]

      public 'foo' => string 'bar' (length=3)

      public 'file' => resource(3, stream)
</span><span style="color: #008000;">*/</span>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。