Memeriksa kondisi kode PHP Anda


Saat men-debug kode PHP, memeriksa keadaan kode Anda pada titik waktu tertentu dapat membantu. Hal ini dapat membantu Anda memahami apa yang terjadi dalam kode dan mengidentifikasi masalah apa pun yang mungkin menyebabkan kendala.

Mari kita lihat beberapa cara untuk memeriksa keadaan kode PHP Anda menggunakan fungsi bawaan PHP.

Menggunakan error_log() untuk mencatat pesan

Seperti yang dibahas dalam pelajaran tentang opsi debugging bawaan WordPress, Anda dapat menggunakan fungsi error_log() untuk mencatat pesan ke file debug.log WordPress.

Hal ini dapat berguna untuk keperluan debugging karena memungkinkan Anda melihat apa yang terjadi dalam kode tanpa menampilkannya di layar.

Fungsi error_log() tidak spesifik untuk WordPress; fungsi ini adalah fungsi PHP yang dapat Anda gunakan dalam kode PHP apa pun untuk mencatat pesan ke file log kesalahan PHP yang dikonfigurasi di server.

Namun, setelah Anda mengaktifkan opsi debugging khusus WordPress dalam file wp-config.php, apa pun yang diteruskan ke error_log() akan dicatat ke file debug.log WordPress.

error_log( $some_variable );

Ini akan mencatat nilai $some_variable ke file debug.log, sehingga Anda dapat melihat isinya pada titik tersebut dalam kode.

Keuntungan menggunakan error_log() adalah Anda dapat mencatat pesan ke file tanpa menampilkannya di layar. Jika Anda menampilkannya di layar, terutama di lingkungan produksi, Anda berisiko mengekspos informasi sensitif kepada pengguna.

Terkadang juga lebih cepat melihat keluaran dalam file log daripada harus menelusuri daftar keluaran yang panjang di layar.

Menggunakan print_r()

Fungsi lain yang berguna untuk memeriksa keadaan kode PHP Anda adalah print_r(). Fungsi ini menampilkan nilai variabel, array, atau objek dalam format yang mudah dibaca manusia, sehingga Anda dapat melihat isinya.

Perhatikan contoh kode PHP berikut.

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

Kode ini akan menampilkan keluaran berikut di layar:

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

Pengembang sering membungkus print_r() dalam tag <pre> agar keluaran lebih mudah dibaca.

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

Ini akan menampilkan keluaran berikut di layar:

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

Perhatikan bahwa secara default print_r() menampilkan nilai variabel, tetapi tidak mengembalikannya. Jika Anda ingin menggunakan keluaran print_r() dengan error_log(), Anda perlu mengatur parameter kedua ke true.

error_log( print_r( $some_array, true ) );

Ini akan mencatat keluaran pemanggilan print_r ke file debug.log, sehingga Anda dapat melihat isi $some_array pada titik tersebut dalam kode.

Menggunakan var_dump()

Fungsi var_dump() adalah fungsi lain yang berguna untuk memeriksa keadaan kode PHP Anda. Fungsi ini menampilkan nilai variabel, array, atau objek dalam format yang mudah dibaca manusia, beserta informasi tambahan tentang jenis dan panjang variabel tersebut.

Perhatikan contoh kode PHP berikut.

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

Kode ini akan menampilkan keluaran berikut di layar:

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

Perhatikan bahwa var_dump() menampilkan nilai variabel beserta informasi tambahan tentang jenis dan panjang variabel tersebut. Hal ini dapat berguna untuk keperluan debugging karena memberikan informasi yang lebih mendetail tentang variabel dibandingkan print_r().

Berbeda dengan print_r(), var_dump() tidak memiliki opsi untuk mengembalikan keluaran ke variabel, sehingga Anda tidak dapat menggunakannya secara langsung dengan error_log().

Namun, Anda dapat menggunakan sesuatu yang disebut buffering keluaran untuk menangkap keluaran var_dump() lalu mencatatnya ke file debug.log.

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

Pengembang sering menggunakan jenis kode ini dalam fungsi pencatatan khusus agar dapat menggunakan var_dump dan error_log secara bersamaan.

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

Bacaan lebih lanjut

Untuk informasi selengkapnya tentang fungsi yang disebutkan dalam pelajaran ini, lihat halaman-halaman berikut dalam dokumentasi PHP:

Fungsi PHP var_dump()

Fungsi PHP error_log()

Fungsi PHP print_r()