Ayuk coding : Mengatasi error “Wrong datatype for second argument” pada fungsi in_array PHP

Mungkin error “Wrong datatype for second argument” pernah kita jumpai pada saat kita menggunakan fungsi in_array() pada PHP. Pertanyaannya adalah, mengapa error itu bisa terjadi padahal secara logika harusnya jalan?? Salah satu kekurangan pada PHP adalah tidak adanya strong data type sehingga kita bebas membuat variabel tanpa menentukan tipe datanya terlebih dahulu. Pada fungsi in_array(), error “Wrong datatype for second argument” akan dimunculkan apabila variabel yang kita cek dalam array bernilai NULL atau empty. Mengapa bisa terjadi demikian?? ini dikarenakan karena PHP tidak bisa mengenali tipe data yang digunakan pada saat kita membuat array.

Untuk mengatasi error ini, ada beberapa cara yang bisa dilakukan:

1. Membuat array sebagai variabel global. Kita tinggal menambahkan kata global di depan variabel array yang kita buat. Ada yang berhasil ketika menggunakan array sebagai variabel global akan tetapi ini sangat tidak disarankan karena berhubungan dengan masalah keamanan. Ex :

global $arr_buah = array('jeruk', 'pisang');

2. Memanfaatkan metode lain yang sama dengan fungsi in_array

$fast = array('apple' => 'apple', 'banana' => 'banana', 'orange' => 'orange');

if (isset($fast['banana']))
    echo 'wow,banana!';

Kalo saya biasanya lebih suka menggunakan metode yang kedua jika mengalami error pada saat menggunakan in_array() pada PHP. Pada metode yang kedua, dilakukan pengecekan terhadap array yang dicari, jika ditemukan maka akan dimunculkan, sebaliknya jika array yang dicari itu NULL atau empty maka bisa dijalankan error handling.

Semoga artikel yang sederhana ini bisa bermanfaat, happy coding😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s