PHP程序開發(fā)中,調(diào)試是一個重要的環(huán)節(jié)。在開發(fā)過程中,經(jīng)常需要檢查并打印出程序在某個時刻的內(nèi)部狀態(tài)。使用PHP中的var_dump函數(shù)或print_r函數(shù)可以實現(xiàn)對變量的打印輸出。但是,這些函數(shù)的輸出不夠清晰,不易于理解。為了解決這個問題,php提供了一個叫做pr()函數(shù)的調(diào)試函數(shù)。
pr()函數(shù)是一個非常方便的調(diào)試函數(shù)。該函數(shù)將變量以易于理解的方式呈現(xiàn)出來。無論是在調(diào)試階段或者生產(chǎn)環(huán)境中,都可以使用該函數(shù)幫助您更快的找到錯誤原因。
舉個例子,比如我們有如下的一段代碼
pre $a = array(1, 2, 3); pr($a); /pre
如果進行普通的輸出,則輸出內(nèi)容如下:
pre Array ( [0] =>1 [1] =>2 [2] =>3 ) /pre
使用pr()函數(shù)輸出后的結(jié)果則更加清晰:
pre Array ( [0] =>1 [1] =>2 [2] =>3 ) /pre
對于數(shù)組的多維嵌套,使用pr()的效果更加明顯。如下面代碼所示:
pre $array = [ 'name' =>'xiaoming', 'age' =>18, 'hobbies' =>[ 'reading' =>true, 'food' =>[ 'apple' =>200, 'pear' =>150 ] ] ];
pr($array); /pre
如果使用普通的輸出,則輸出內(nèi)容如下:
pre Array ( [name] =>xiaoming [age] =>18 [hobbies] =>Array ( [reading] =>1 [food] =>Array ( [apple] =>200 [pear] =>150 )
)
) /pre
使用pr()的輸出,則輸出內(nèi)容更加明確:
pre Array ( [name] =>xiaoming [age] =>18 [hobbies] =>Array ( [reading] =>1 [food] =>Array ( [apple] =>200 [pear] =>150 ) ) ) /pre
除了數(shù)組,pr()函數(shù)同樣適用于其他的數(shù)據(jù)類型。比如對象、字符串、函數(shù)等等。使用pr()函數(shù)可以讓程序員更方便的查看程序內(nèi)部狀態(tài),進一步調(diào)試。
有些時候,我們希望pr()函數(shù)只在開發(fā)環(huán)境下使用,在生產(chǎn)環(huán)境下禁止使用。這個時候,可以通過代碼層面進行區(qū)分。
pre if (ENVIRONMENT === 'development') { function pr($var) { echo '
通過該代碼,我們在開發(fā)環(huán)境下可以正常使用pr()進行調(diào)試,但是在生產(chǎn)環(huán)境下pr()函數(shù)將變成一個空函數(shù),不會產(chǎn)生任何輸出。
綜上所述,pr()函數(shù)是一個非常方便的調(diào)試函數(shù),對于開發(fā)人員來說也是一個非常好的朋友。通過pr()函數(shù),我們可以更加方便的查看程序的內(nèi)部狀態(tài),在調(diào)試過程中幫助我們更快的發(fā)現(xiàn)錯誤并解決問題。
pr()函數(shù)是一個非常方便的調(diào)試函數(shù)。該函數(shù)將變量以易于理解的方式呈現(xiàn)出來。無論是在調(diào)試階段或者生產(chǎn)環(huán)境中,都可以使用該函數(shù)幫助您更快的找到錯誤原因。
舉個例子,比如我們有如下的一段代碼
pre $a = array(1, 2, 3); pr($a); /pre
如果進行普通的輸出,則輸出內(nèi)容如下:
pre Array ( [0] =>1 [1] =>2 [2] =>3 ) /pre
使用pr()函數(shù)輸出后的結(jié)果則更加清晰:
pre Array ( [0] =>1 [1] =>2 [2] =>3 ) /pre
對于數(shù)組的多維嵌套,使用pr()的效果更加明顯。如下面代碼所示:
pre $array = [ 'name' =>'xiaoming', 'age' =>18, 'hobbies' =>[ 'reading' =>true, 'food' =>[ 'apple' =>200, 'pear' =>150 ] ] ];
pr($array); /pre
如果使用普通的輸出,則輸出內(nèi)容如下:
pre Array ( [name] =>xiaoming [age] =>18 [hobbies] =>Array ( [reading] =>1 [food] =>Array ( [apple] =>200 [pear] =>150 )
)
) /pre
使用pr()的輸出,則輸出內(nèi)容更加明確:
pre Array ( [name] =>xiaoming [age] =>18 [hobbies] =>Array ( [reading] =>1 [food] =>Array ( [apple] =>200 [pear] =>150 ) ) ) /pre
除了數(shù)組,pr()函數(shù)同樣適用于其他的數(shù)據(jù)類型。比如對象、字符串、函數(shù)等等。使用pr()函數(shù)可以讓程序員更方便的查看程序內(nèi)部狀態(tài),進一步調(diào)試。
有些時候,我們希望pr()函數(shù)只在開發(fā)環(huán)境下使用,在生產(chǎn)環(huán)境下禁止使用。這個時候,可以通過代碼層面進行區(qū)分。
pre if (ENVIRONMENT === 'development') { function pr($var) { echo '
'; print_r($var); echo ''; } } else { function pr($var) {} } /pre
通過該代碼,我們在開發(fā)環(huán)境下可以正常使用pr()進行調(diào)試,但是在生產(chǎn)環(huán)境下pr()函數(shù)將變成一個空函數(shù),不會產(chǎn)生任何輸出。
綜上所述,pr()函數(shù)是一個非常方便的調(diào)試函數(shù),對于開發(fā)人員來說也是一個非常好的朋友。通過pr()函數(shù),我們可以更加方便的查看程序的內(nèi)部狀態(tài),在調(diào)試過程中幫助我們更快的發(fā)現(xiàn)錯誤并解決問題。