अपने PHP कोड की स्थिति की जाँच करना


जब आप PHP कोड को डीबग कर रहे हों, तो किसी विशेष समय-बिंदु पर अपने कोड की स्थिति की जाँच करना उपयोगी हो सकता है। इससे आपको यह समझने में मदद मिल सकती है कि आपके कोड में क्या हो रहा है और समस्याएँ उत्पन्न करने वाली किसी भी दिक्कत की पहचान की जा सकती है।

आइए कुछ ऐसे तरीकों पर नज़र डालते हैं जिनसे आप अंतर्निहित PHP फ़ंक्शनों का उपयोग करके अपने PHP कोड की स्थिति की जाँच कर सकते हैं।

संदेश लॉग करने के लिए error_log() का उपयोग करना

जैसा कि अंतर्निहित WordPress डीबगिंग विकल्पों वाले पाठ में बताया गया है, आप WordPress की debug.log फ़ाइल में संदेश लॉग करने के लिए error_log() फ़ंक्शन का उपयोग कर सकते हैं।

यह डीबगिंग के लिए उपयोगी हो सकता है, क्योंकि इससे आप स्क्रीन पर प्रदर्शित किए बिना अपने कोड में क्या हो रहा है, यह देख सकते हैं।

error_log() फ़ंक्शन WordPress के लिए विशिष्ट नहीं है; यह एक PHP फ़ंक्शन है जिसका उपयोग आप किसी भी PHP कोड में सर्वर पर कॉन्फ़िगर की गई PHP त्रुटि लॉग फ़ाइल में संदेश लॉग करने के लिए कर सकते हैं।

हालाँकि, एक बार जब आप अपनी wp-config.php फ़ाइल में WordPress-विशिष्ट डीबगिंग विकल्प सक्षम कर देते हैं, तो error_log() को भेजी गई कोई भी चीज़ WordPress की debug.log फ़ाइल में लॉग की जाएगी।

error_log( $some_variable );

यह $some_variable के मान को debug.log फ़ाइल में लॉग करेगा, ताकि आप देख सकें कि आपके कोड में उस बिंदु पर इसमें क्या है।

error_log() का उपयोग करने का लाभ यह है कि इससे आप संदेशों को स्क्रीन पर प्रदर्शित किए बिना किसी फ़ाइल में लॉग कर सकते हैं। यदि आप उन्हें स्क्रीन पर प्रदर्शित करते हैं, विशेष रूप से उत्पादन वातावरण में, तो उपयोगकर्ताओं के सामने संवेदनशील जानकारी उजागर होने का जोखिम रहता है।

कभी-कभी स्क्रीन पर आउटपुट की लंबी सूची में खोजने के बजाय लॉग फ़ाइल में आउटपुट देखना अधिक तेज़ भी होता है।

print_r() का उपयोग करना

आपके PHP कोड की स्थिति की जाँच करने के लिए एक अन्य उपयोगी फ़ंक्शन print_r() है। यह फ़ंक्शन किसी चर, ऐरे या ऑब्जेक्ट का मान मानव-पठनीय प्रारूप में आउटपुट करता है, ताकि आप देख सकें कि उसमें क्या है।

इस उदाहरण PHP कोड पर नज़र डालें।

$some_array = array( 'apple', 'banana', 'cherry' );
print_r( $some_array );

यह कोड स्क्रीन पर निम्नलिखित आउटपुट देगा:

Array ( [0] => apple [1] => banana [2] => cherry )

डेवलपर अक्सर आउटपुट को पढ़ना आसान बनाने के लिए print_r() को <pre> टैग में लपेटते हैं।

echo '<pre>';
print_r( $some_array );
echo '</pre>';

यह स्क्रीन पर निम्नलिखित आउटपुट देगा:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

ध्यान दें कि डिफ़ॉल्ट रूप से print_r() चर का मान आउटपुट करता है, लेकिन उसे लौटाता नहीं है। यदि आप print_r() के आउटपुट का उपयोग error_log() के साथ करना चाहते हैं, तो आपको दूसरे पैरामीटर को true पर सेट करना होगा।

error_log( print_r( $some_array, true ) );

यह print_r कॉल के आउटपुट को debug.log फ़ाइल में लॉग करेगा, ताकि आप देख सकें कि आपके कोड में उस बिंदु पर $some_array में क्या है।

var_dump() का उपयोग करना

var_dump() फ़ंक्शन आपके PHP कोड की स्थिति की जाँच करने के लिए एक अन्य उपयोगी फ़ंक्शन है। यह फ़ंक्शन किसी चर, ऐरे या ऑब्जेक्ट का मान मानव-पठनीय प्रारूप में आउटपुट करता है और साथ ही चर के प्रकार और लंबाई के बारे में अतिरिक्त जानकारी भी देता है।

इस उदाहरण PHP कोड पर नज़र डालें।

$some_array = array( 'apple', 'banana', 'cherry' );
echo '<pre>';
var_dump( $some_array );
echo '</pre>';

यह कोड स्क्रीन पर निम्नलिखित आउटपुट देगा:

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(6) "cherry"
}

ध्यान दें कि var_dump() चर के मान के साथ-साथ उसके प्रकार और लंबाई के बारे में अतिरिक्त जानकारी भी आउटपुट करता है। यह डीबगिंग के लिए उपयोगी हो सकता है, क्योंकि यह print_r() की तुलना में चर के बारे में अधिक विस्तृत जानकारी प्रदान करता है।

print_r() के विपरीत, var_dump() में आउटपुट को किसी चर में लौटाने का विकल्प नहीं होता, इसलिए आप इसे सीधे error_log() के साथ उपयोग नहीं कर सकते।

हालाँकि, आप आउटपुट बफ़रिंग नामक किसी तकनीक का उपयोग करके var_dump() के आउटपुट को कैप्चर कर सकते हैं और फिर उसे debug.log फ़ाइल में लॉग कर सकते हैं।

$some_array = array( 'apple', 'banana', 'cherry' );
ob_start();
var_dump( $some_array );
$output = ob_get_clean();
error_log( $output );

डेवलपर अक्सर इस प्रकार के कोड का उपयोग किसी विशेष लॉगिंग फ़ंक्शन में करते हैं, ताकि var_dump और error_log दोनों का एक साथ उपयोग किया जा सके।

function log_var_dump( $variable ) {
    ob_start();
    var_dump( $variable );
    $output = ob_get_clean();
    error_log( $output );
}

आगे पढ़ें

इस पाठ में बताए गए फ़ंक्शनों के बारे में अधिक जानकारी के लिए, PHP दस्तावेज़ में निम्नलिखित पृष्ठ देखें:

PHP var_dump() फ़ंक्शन

PHP error_log() फ़ंक्शन

PHP print_r() फ़ंक्शन