PHP adalah bahasa pemrograman web yang paling banyak digunakan saat ini. Hal ini tidak lepas dari fitur PHP yang menyediakan berbagai Library, baik asli dalam paket PHP maupun buatan third-party. Begitu banyaknya fungsi PHP membuatnya sangat sulit untuk dihafalkan seluruhnya. Padahal beberapa fungsi yang jarang diketahui merupakan fungsi yang powerful yang bisa Anda manfaatkan.
Jarang ada programmer baru yang mau membaca seluruh dokumentasi PHP, sehingga jarang pula yang mengetahui keberadaan fungsi-fungsi ini. Kebanyakan fungsi yang akan dibahas di artikel ini adalah fungsi yang sering dimanfaatkan oleh programmer professional yang telah lama mendalami PHP, sehingga mengerti pentingnya keberadaan fungsi ini. Berikut ini adalah pembahasan singkat beberapa fungsi tersebut.
- Membuat fungsi dengan jumlah argument tidak menentu.
PHP memiliki kemampuan untuk membuat fungsi dengan argument opsional. Biasanya programmer akan menuliskannya sebagai berikut:1234567functionmultiple($arg1='',$arg2='') {echo$arg1.' '.$arg2;}multiple('PC','Mild','06');// mencetak:// PC MildKelemahannya adalah fungsi tersebut tidak dapat menangkap argument sejumlah lebih dari yang dideklarasikan. Namun Anda bisa mengatasinya dengan fungsi func_get_args() seperti di bawah ini:12345678910functionmultiple() {$args= func_get_args();foreach($argsas$arg) {echo$arg.' ';}}multiple('PC','Mild','06');// mencetak:// PC Mild 06 - Mencari file lebih mudah
Biasanya untuk mencari file dalam sebuah folder, fungsi yang digunakan adalah scandir(). Untuk mencari file dengan pola nama tertentu, maka harus dilakukan perulangan untuk mengecek setiap file yang ditemukan. Dengan fungsi glob(), hal ini dapat dilakukan dengan lebih singkat. Pola yang ingin dicari dimasukkan sebagai argument pertama fungsi ini. Pola dapat berupa relative path dari lokasi folder.12345678910111213141516171819202122$files=glob('*.php');print_r($files);/** Mencetak array:* Array* (* [0] => index.php* [1] => file.php* [2] => database.php* )*/$files=glob('../images/h*.png');print_r($files);/** Mencetak array:* Array* (* [0] => ../images/hello.png* [1] => ../images/humble.png* )*/ - Serialization
Terkadang program perlu untuk menyimpan variable kompleks ke dalam sebuah file atau database. Pembuatan fungsi untuk mengubahnya dari array atau object ke teks dengan format tertentu dan sebaliknya akan cukup merepotkan. Anda tidak perlu melakukannya, karena PHP telah menyediakan fungsi tersebut. Dua fungsi yang dapat Anda gunakan adalah serialize() dan unserialize().
Fungsi pertama adalah untuk mengubah variable kompleks menjadi sebuah teks. Sedangkan unserialize() akan mengembalikan teks tersebut ke dalam sebuah array atau object. Berikut adalah contoh penggunaannya.12345678910111213141516171819202122232425262728293031// variable kompleks$myvar=array('drink'=>'beer',27,array(11, 1988),'salad');$string= serialize($myvar);echo$string;// mencetak:// a:4:{s:5:"drink";s:4:"beer";i:0;i:27;i:1;a:2:{i:0;i:11;i:1;i:1988;}i:2;s:5:"salad";}echo'<br />';$newvar= unserialize($string);print_r($newvar);/** mencetak:* Array* (* [drink] => beer* [0] => 27* [1] => Array* (* [0] => 11* [1] => 1988* )* [2] => salad* )*/Mulai PHP 5.2 juga telah tersedia konversi format data JSON yang popularitasnya sedang meningkat. Anda bisa menggunakan fungsi json_encode() dan json_decode() untuk hal yang sama.1234567891011121314151617181920212223242526272829303132// array kompleks$myvar=array('hello',42,array(1,'two'),'apple');// mengubah ke string$string= json_encode($myvar);echo$string;/* prints["hello",42,[1,"two"],"apple"]*/// mengembalikan variable$newvar= json_decode($string);print_r($newvar);/* printsArray([0] => hello[1] => 42[2] => Array([0] => 1[1] => two)[3] => apple)*/ - Mengkompres teks
Kompresi sering dikaitkan dengan file ZIP. Dalam PHP, Anda bisa mengkompres teks yang panjang menjadi lebih pendek dengan fungsi gzcompress() dan mengembalikannye dengan fungsi gzuncompress().1234567891011121314151617181920212223242526272829303132$string="Lorem ipsum dolor sit amet, consecteturadipiscing elit. Nunc ut elit id mi ultriciesadipiscing. Nulla facilisi. Praesent pulvinar,sapien vel feugiat vestibulum, nulla dui pretium orci,non ultricies elit lacus quis ante. Lorem ipsum dolorsit amet, consectetur adipiscing elit. Aliquampretium ullamcorper urna quis iaculis. Etiam ac massased turpis tempor luctus. Curabitur sed nibh eu elitmollis congue. Praesent ipsum diam, consectetur vitaeornare a, aliquam a nunc. In id magna pellentesquetellus posuere adipiscing. Sed non mi metus, at laciniaaugue. Sed magna nisi, ornare in mollis in, mollissed nunc. Etiam at justo in leo congue mollis.Nullam in neque eget metus hendrerit scelerisqueeu non enim. Ut malesuada lacus eu nulla bibendumid euismod urna sodales. ";$compressed= gzcompress($string);echo"Original size: ".strlen($string)."\n";/* cetakOriginal size: 800*/echo"Compressed size: ".strlen($compressed)."\n";/* cetakCompressed size: 418*/// mengembalikan kompresi$original= gzuncompress($compressed); - Memanggil fungsi yang dijalankan terakhir
Fungsi register_shutdown_function() dapat mendaftarkan fungsi yang akan dipanggil sesaat sebelum program selesai berjalan. Fungsi ini bisa Anda gunakan untuk berbagai hal, antara lain adalah untuk membuat benchmark total waktu eksekusi program Anda dari awal hingga akhir.
Jika Anda belum mengetahui adanya fungsi ini, kemungkinan Anda akan meletakkan kode penghitungan waktu eksekusi di bagian paling bawah program seperti berikut ini.12345678910// waktu awal$start_time= microtime(true);// proses lain// ...// waktu akhirecho"execution took: ".(microtime(true) -$start_time)." seconds.";Namun cara ini memiliki kelemahan. Bila dalam suatu kode Anda memanggil fungsi exit(), terjadi Fatal error, ataupun user menghentikan eksekusi kode, maka baris tersebut tidak akan pernah terpanggil. Lain dengan bila Anda mendaftarkannya dalam register_shutdown_function(), maka fungsi tersebut akan dijalankan apapun yang terjadi.12345678910111213$start_time= microtime(true);register_shutdown_function('my_shutdown');// proses lain// ...functionmy_shutdown() {global$start_time;echo"execution took: ".(microtime(true) -$start_time)." seconds.";} - Membuat ID Unik
Salah satu permasalahan dalam dunia data adalah pembuatan ID unik. Biasanya fungsi yang digunakan adalah kombinasi md5() terhadap waktu saat kode dijalankan.1echomd5(time() . mt_rand(1,1000000));PHP telah menyediakan fungsi uniqid() untuk membuat sebuah string unik. Hasil yang dikeluarkan relatif terhadap waktu server, sehingga pembuatan id yang dalam waktu berdekatan akan semakin mirip. Anda bisa menambahkan prefix maupun memperbesar entropinya melalui argument.1234567891011121314151617181920// standarechouniqid();// dengan prefixechouniqid('hq_');/* printshq_4bd67d6cd8b8f*/// dengan entropyechouniqid('',true);/* prints4bd67d6cd8b926.12135106*/// prefix dan entropyechouniqid('hq_',true);/* printshq_4bd67da367b650.43684647*/
Artikel ini pernah dipublikasikan di http://bisakomputer.com/tutorial-php-6-fungsi-powerful-pada-php/

0 komentar:
Posting Komentar