摘要:我在官方文檔基礎(chǔ)上針對(duì)中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來(lái)更容易理解。英文原始文檔地址中文文檔地址替換了的函數(shù)來(lái)顯示變量。通過(guò),或函數(shù)軌跡顯示變量時(shí),控制數(shù)組元素和對(duì)象屬性的嵌套級(jí)別。
文檔內(nèi)容來(lái)自xdebug.org/docs,翻譯時(shí)xdebug版本為2.6。我在官方文檔基礎(chǔ)上針對(duì)中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來(lái)更容易理解。
英文原始文檔地址:https://xdebug.org/docs/
中文文檔github地址:https://github.com/Anoxia/xde...
Xdebug替換了PHP的var_dump()函數(shù)來(lái)顯示變量。Xdebug的版本包含不同類型的不同顏色,并限制數(shù)組元素/對(duì)象屬性的數(shù)量,最大深度和字符串長(zhǎng)度。還有一些其他功能處理變量顯示。
設(shè)置對(duì)var_dump的影響有許多設(shè)置可以控制Xdebug修改的var_dump()函數(shù)的輸出 :xdebug.var_display_max_children,xdebug.var_display_max_data和xdebug.var_display_max_depth。這三個(gè)設(shè)置的效果最好用一個(gè)例子來(lái)展示。下面的腳本運(yùn)行四次,每次都有不同的設(shè)置。您可以使用這些標(biāo)簽來(lái)查看差異。
代碼:
pub = $t; $data = array( "one" => "a somewhat long string!", "two" => array( "two.one" => array( "two.one.zero" => 210, "two.one.one" => array( "two.one.one.zero" => 3.141592564, "two.one.one.one" => 2.7, ), ), ), "three" => $t, "four" => range(0, 5), ); var_dump( $data ); ?>
輸出(默認(rèn)值):
array "one" => string "a somewhat long string!" (length=23) "two" => array "two.one" => array "two.one.zero" => int 210 "two.one.one" => array ... "three" => object(test)[1] public "pub" => &object(test)[1] private "priv" => boolean true protected "prot" => int 42 "four" => array 0 => int 0 1 => int 1 2 => int 2 3 => int 3 4 => int 4 5 => int 5
輸出(xdebug.var_display_max_children = 2):
array "one" => string "a somewhat long string!" (length=23) "two" => array "two.one" => array "two.one.zero" => int 210 "two.one.one" => array ... more elements...
輸出(xdebug.var_display_max_data = 16):
array "one" => string "a somewhat long "... (length=23) "two" => array "two.one" => array "two.one.zero" => int 210 "two.one.one" => array ... "three" => object(test)[1] public "pub" => &object(test)[1] private "priv" => boolean true protected "prot" => int 42 "four" => array 0 => int 0 1 => int 1 2 => int 2 3 => int 3 4 => int 4 5 => int 5
輸出(xdebug.var_display_max_depth = 2):
array "one" => string "a somewhat long string!" (length=23) "two" => array "two.one" => array ... "three" => object(test)[1] public "pub" => &object(test)[1] private "priv" => boolean true protected "prot" => int 42 "four" => array 0 => int 0 1 => int 1 2 => int 2 3 => int 3 4 => int 4 5 => int 5
輸出(xdebug.var_display_max_children = 3,xdebug.var_display_max_data = 8,xdebug.var_display_max_depth = 1):
array "one" => string "a somewh"... (length=23) "two" => array ... "three" => object(test)[1] ... more elements...相關(guān)設(shè)置 xdebug.cli_color
該功能僅適用于Xdebug> = 2.2
類型:整數(shù),默認(rèn)值:0,
如果此設(shè)置為1,則在CLI模式下以及輸出為tty時(shí),var_dumps和堆棧跟蹤Xdebug將著色輸出。在Windows上, 需要安裝ANSICON工具。
如果設(shè)置為2,那么無(wú)論是否連接到tty或是否安裝ANSICON,Xdebug將始終為var_dumps和堆棧跟蹤著色。在這種情況下,您最終可能會(huì)看到轉(zhuǎn)義碼。
看到這篇文章的一些更多的信息。
xdebug.overload_var_dump該功能僅適用于Xdebug> = 2.1
當(dāng)php.ini中html_errors設(shè)置為1或2時(shí),Xdebug會(huì)默認(rèn)更改var_dump輸出。如果您不希望如此,您可以將其值設(shè)置為0,但是首先檢查是否智能關(guān)閉html_errors。
該值設(shè)置為2時(shí),除了很好的格式化var_dump()輸出外,它還會(huì)將文件名和行號(hào)添加到輸出中。
在Xdebug 2.4之前,這個(gè)設(shè)置的默認(rèn)值是 1。
xdebug.var_display_max_children類型:整數(shù),默認(rèn)值:128
當(dāng)使用xdebug_var_dump(), xdebug.show_local_vars或通過(guò)函數(shù)軌跡顯示變量時(shí),控制數(shù)組的數(shù)量和子對(duì)象的屬性。
要禁用任何限制,請(qǐng)使用-1作為值。
此設(shè)置對(duì)通過(guò)遠(yuǎn)程調(diào)試功能發(fā)送給客戶端的子項(xiàng)數(shù)量沒(méi)有任何影響。
xdebug.var_display_max_data類型:整數(shù),默認(rèn)值:512
控制使用xdebug_var_dump(), xdebug.show_local_vars或通過(guò)函數(shù)軌跡顯示變量時(shí)顯示的最大字符串長(zhǎng)度。
要禁用任何限制,請(qǐng)使用-1作為值。
此設(shè)置對(duì)通過(guò)遠(yuǎn)程調(diào)試功能發(fā)送給客戶端的子項(xiàng)數(shù)量沒(méi)有任何影響。
xdebug.var_display_max_depth通過(guò)xdebug_var_dump(), xdebug.show_local_vars或函數(shù)軌跡顯示變量時(shí),控制數(shù)組元素和對(duì)象屬性的嵌套級(jí)別。
您可以選擇的最大值是1023。您也可以使用-1作為值來(lái)選擇此最大值。
此設(shè)置對(duì)通過(guò)遠(yuǎn)程調(diào)試功能發(fā)送給客戶端的子項(xiàng)數(shù)量沒(méi)有任何影響。
相關(guān)函數(shù) void var_dump( [mixed var [, ...]] )顯示有關(guān)變量的詳細(xì)信息
這個(gè)函數(shù)被Xdebug重載,參見(jiàn)xdebug_var_dump()的描述 。
void xdebug_debug_zval( [string varname [, ...]] )顯示有關(guān)變量的信息
此功能顯示有關(guān)一個(gè)或多個(gè)變量的結(jié)構(gòu)化信息,其中包括其類型,值和引用計(jì)數(shù)信息。數(shù)組通過(guò)值遞歸地進(jìn)行探索。這個(gè)函數(shù)的實(shí)現(xiàn)方式與PHP的debug_zval_dump()函數(shù)不同,是用來(lái)解決debug_zval_dump()函數(shù)存在的問(wèn)題,因?yàn)樽兞勘旧韺?shí)際上被傳遞給函數(shù)。Xdebug的版本更好,因?yàn)樗褂米兞棵檎覂?nèi)部符號(hào)表中的變量,并直接訪問(wèn)所有屬性,而不必處理實(shí)際將變量傳遞給函數(shù)。結(jié)果是這個(gè)函數(shù)返回的信息比PHP自己的顯示zval信息的函數(shù)要準(zhǔn)確得多。
自Xdebug 2.3以來(lái), 支持除簡(jiǎn)單變量名稱(如下面的“a [2]”)之外的任何其他內(nèi)容。
例:
輸出:
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)=3void xdebug_debug_zval_stdout( [string varname [, ...]] )
將有關(guān)變量的信息返回到stdout。
此功能顯示有關(guān)一個(gè)或多個(gè)變量的結(jié)構(gòu)化信息,其中包括其類型,值和引用計(jì)數(shù)信息。數(shù)組通過(guò)值遞歸地進(jìn)行探索。與xdebug_debug_zval()的不同之處在于信息不是通過(guò)Web服務(wù)器API層顯示的,而是直接顯示在標(biāo)準(zhǔn)輸出上(所以當(dāng)你在單進(jìn)程模式下運(yùn)行Apache時(shí),它將在控制臺(tái)上輸出)。
例:
輸出:
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)void xdebug_dump_superglobals()顯示有關(guān)超級(jí)全局的信息
這個(gè)函數(shù)按照xdebug.dump.*在php.ini的設(shè)置轉(zhuǎn)儲(chǔ)超級(jí)全局元素的值。對(duì)于下面的例子,php.ini中的設(shè)置是:
xdebug.dump.GET=* xdebug.dump.SERVER=REMOTE_ADDR Query string: ?var=fourty%20two&array[a]=a&array[9]=b返回:
Dump $_SERVER | |
---|---|
$_SERVER["REMOTE_ADDR"] = | string "127.0.0.1" *(length=9)* |
Dump $_GET | |
---|---|
$_GET["var"] = | string "fourty two" *(length=10)* |
$_GET["array"] = | **array** "a" => string "a" *(length=1)* 9 => string "b" *(length=1)* |
顯示有關(guān)變量的詳細(xì)信息
此功能顯示關(guān)于一個(gè)或多個(gè)表達(dá)式的結(jié)構(gòu)化信息,包括其類型和值。數(shù)組通過(guò)值遞歸地進(jìn)行探索。請(qǐng)參閱php.ini設(shè)置影響此功能的變量顯示功能的介紹(上文)。
例:
foo = "bar"; $c->file = fopen( "/etc/passwd", "r" ); var_dump( array( array(TRUE, 2, 3.14, "foo"), "object" => $c ) ); ?>
輸出:
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)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28131.html
摘要:我在官方文檔基礎(chǔ)上針對(duì)中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來(lái)更容易理解。英文原始文檔地址中文文檔地址目錄安裝本節(jié)介紹各個(gè)操作系統(tǒng)下如何安裝。堆棧跟蹤本節(jié)介紹當(dāng)被激活時(shí),只要決定顯示通知,警告,錯(cuò)誤等,就會(huì)顯示堆棧跟蹤。 文檔內(nèi)容來(lái)自xdebug.org/docs,翻譯時(shí)xdebug版本為2.6。我在官方文檔基礎(chǔ)上針對(duì)中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看...
摘要:我在官方文檔基礎(chǔ)上針對(duì)中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來(lái)更容易理解??刂贫褩8欀酗@示的堆棧幀的數(shù)量,包括錯(cuò)誤堆棧跟蹤期間的命令行以及跟蹤的瀏覽器。 文檔內(nèi)容來(lái)自xdebug.org/docs,翻譯時(shí)xdebug版本為2.6。我在官方文檔基礎(chǔ)上針對(duì)中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來(lái)更容易理解。 英文原始文檔地址:https://xdebug....
摘要:英文原始文檔地址中文文檔地址當(dāng)被激活時(shí),只要決定顯示通知,警告,錯(cuò)誤等,就會(huì)顯示堆棧跟蹤。堆棧跟蹤中的變量默認(rèn)情況下,將在它生成的堆棧跟蹤中顯示可變信息。 文檔內(nèi)容來(lái)自xdebug.org/docs,翻譯時(shí)xdebug版本為2.6。我在官方文檔基礎(chǔ)上針對(duì)中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來(lái)更容易理解。 英文原始文檔地址:https://xdebug.org/docs...
摘要:我在官方文檔基礎(chǔ)上針對(duì)中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來(lái)更容易理解。英文原始文檔地址中文文檔地址預(yù)編譯的模塊有幾個(gè)預(yù)編譯模塊,它們都是的非調(diào)試版本。按照這些指示安裝。 文檔內(nèi)容來(lái)自xdebug.org/docs,翻譯時(shí)xdebug版本為2.6。我在官方文檔基礎(chǔ)上針對(duì)中文排版和教程內(nèi)容的編排做了一些優(yōu)化,希望中文文檔看起來(lái)更容易理解。 英文原始文檔地址:https:...
摘要:寫(xiě)代碼總繞不過(guò)需要調(diào)試,除了外,我們還是需要借助進(jìn)行調(diào)試。這里的使用,是分別整合到和下。安裝還是基于神級(jí)武器。至于下一步如何更好的使用,就看各自的實(shí)際項(xiàng)目和開(kāi)發(fā)需要了。 寫(xiě)代碼總繞不過(guò)需要調(diào)試,除了 UnitTest 外,我們還是需要借助 Xdebug 進(jìn)行調(diào)試。 所以今天來(lái)說(shuō)說(shuō)如何基于本地 Docker 環(huán)境下,使用 Xdebug。 這里的使用,是分別整合到 VS Code 和 PH...
閱讀 2849·2021-11-22 14:45
閱讀 2998·2021-09-10 11:26
閱讀 3368·2021-09-07 10:18
閱讀 2268·2019-08-30 14:08
閱讀 679·2019-08-29 12:22
閱讀 1440·2019-08-26 13:48
閱讀 2661·2019-08-26 10:24
閱讀 1207·2019-08-23 18:35