Jumat, 16 Maret 2012

Belajar PHP dan MySQL Part VII (Fungsi)



Fungsi dalam PHP

Fungsi adalah menjadi “suatu blok statemen yang dapat dikelompokkan bersama sebagai sebuah entitas bernama.” Karena ini adalah tutorial tentang PHP, bukan kursus pengantar dalam bahasa Yunani, saya akan menerjemahkan bahwa untuk Anda: fungsi hanyalah satu set pernyataan program yang melakukan tugas tertentu, dan yang bisa “disebut”, atau dieksekusi, dari mana saja dalam program anda.
Setiap bahasa pemrograman datang dengan memiliki fungsi built-in, dan biasanya juga memungkinkan pengembang untuk menentukan fungsi mereka sendiri. Sebagai contoh, jika saya punya laporan laba untuk tahun di meja saya, dan saya ingin mengembang setiap angka sebesar 35%, saya bisa menelepon lingkungan akuntansi saya dan meminta mereka untuk melakukannya untuk saya … atau saya bisa menulis fungsi PHP sederhana yang disebut cheatTheShareholders () dan memilikinya melakukan pekerjaan untuk saya (itu lebih cepat, ditambah dengan PHP tidak tagihan per jam).
Ada tiga alasan penting mengapa fungsi adalah Good Thing™.
Pertama: fungsi-fungsi yang ditetapkan memungkinkan Anda untuk memisahkan kode Anda ke subbagian mudah diidentifikasi – yang lebih mudah untuk memahami dan debug.
Kedua: fungsi membuat program anda modular, memungkinkan Anda untuk menulis sepotong kode sekali dan kemudian kembali menggunakannya beberapa kali dalam program yang sama.
Dan ketiga: pembaruan menyederhanakan fungsi kode atau perubahan, karena perubahan hanya perlu dilaksanakan dalam satu tempat (definisi fungsi). Fungsi sehingga menghemat waktu, uang dan elektron … dan saya tahu elektron setidaknya akan terima kasih!

Praktek penggunaan fungsi

Untuk melihat bagaimana fungsi bekerja, lihat contoh berikut:
<?php
 
// define a function
function myStandardResponse() {
    echo "Get lost, jerk!<br /><br />";
}
 
// on the bus
echo "Hey lady, can you spare a dime? <br />";
myStandardResponse();
 
// at the office
echo "Can you handle Joe's workload, in addition to your own, while he's in Tahiti for a month? You'll probably need to come in early and work till midnight, but we are confident you can handle it. Oh, and we can't pay you extra because of budgetary constraints...<br />";
myStandardResponse();
 
// at the party
echo "Hi, haven't I seen you somewhere before?<br />";
myStandardResponse();
 
?>
Inilah output yang akan terlihat:
 
Hey lady, can you spare a dime?
Get lost, jerk!
 
Can you handle Joe's workload, in addition to your own, while he's in Tahiti for a month?
You'll probably need to come in early and work till midnight, but we are confident you can
handle it. Oh, and we can't pay you extra because of budgetary constraints...
Get lost, jerk!
 
Hi, haven't I seen you somewhere before?
Get lost, jerk!

(Tentu itu kasar, tapi itu tidak menunjukkan bagaimana fungsi memungkinkan Anda untuk menggunakan kembali potongan-potongan kode.)
Hal pertama yang saya lakukan dalam script di atas adalah mendefinisikan sebuah fungsi baru, dengan kata kunci fungsi. Kata kunci ini diikuti oleh nama fungsi, yang dalam hal ini adalah myStandardResponse (). Semua kode program yang melekat pada fungsi yang kemudian ditempatkan di dalam pasangan kurung kurawal – dan ini dapat berisi kode program loop, pernyataan bersyarat, panggilan ke fungsi-fungsi yang ditentukan lain, atau panggilan ke fungsi-fungsi PHP yang lain.
Tentu saja, mendefinisikan suatu fungsi hanya setengah dari teka-teki, untuk itu ada gunanya sama sekali, Anda perlu untuk “memohon” itu. Dalam PHP, seperti dalam satu juta bahasa lain, hal ini dilakukan dengan memanggil fungsi berdasarkan namanya, seperti yang telah saya lakukan dalam contoh di atas. Memanggil fungsi yang ditetapkan pengguna identik dengan memanggil built-in fungsi PHP seperti echo () atau meledak ().
Berikut format khas untuk fungsi:
function function_name (optional function arguments) {
    statement 1...
    statement 2...
    .
    .
    .
    statement n...
}

Memiliki Argumen sebuah … atau Dua

Fungsi seperti yang Anda lihat di bagian sebelumnya cetak nilai yang sama setiap kali Anda memanggil mereka. Sementara ini menarik enam pertama kali, bisa membosankan pada hari ketujuh. Apa yang perlu kita lakukan, untuk membuat, membosankan fungsi bodoh sedikit lebih menarik, adalah mendapatkan mereka untuk kembali nilai yang berbeda setiap kali mereka dipanggil.
Masukkan argumen.
Argumen bekerja dengan menggunakan pengganti untuk mewakili suatu variabel tertentu dalam suatu fungsi. Nilai untuk variabel ini diberikan ke fungsi tersebut pada saat run-time dari program utama. Karena masukan ke fungsi tersebut akan berbeda pada setiap permintaan, sehingga akan output.
Untuk melihat bagaimana ini bekerja, lihat fungsi berikut, yang menerima sebuah argumen tunggal dan kemudian mencetak kembali setelah perhitungan:
<?php
 
// define a function
function getCircumference($radius) {
    echo "Circumference of a circle with radius $radius is ".sprintf("%4.2f", (2 * $radius * pi()))."<br />";
}
 
// call a function with an argument
getCircumference(10);
 
// call the same function with another argument
getCircumference(20);
 
?>
Dalam contoh ini, ketika getCircumference () fungsi ini disebut dengan argumen, argumen yang diberikan ke variabel placeholder $ radius dalam fungsi tersebut, kemudian ditindaklanjuti oleh kode dalam definisi fungsi.
Ada juga kemungkinan untuk lulus lebih dari satu argumen untuk fungsi. Hal ini dilakukan dengan menggunakan daftar dipisahkan koma, seperti yang ditunjukkan contoh berikut:
<?php
 
// define a function
function changeCase($str, $flag) {
    /* check the flag variable and branch the code */
    switch($flag) {
        case 'U':
            print strtoupper($str)."<br />";
            break;
        case 'L':
            print strtolower($str)."<br />";
            break;
        default:
            print $str."<br />";
            break;
    }
}
 
// call the function
changeCase("The cow jumped over the moon", "U");
changeCase("Hello Sam", "L");
 
?>
Di sini, tergantung pada nilai argumen kedua, program aliran dalam fungsi bergerak ke cabang sesuai dan memanipulasi argumen pertama.
Perhatikan bahwa tidak ada persyaratan untuk menentukan tipe data dari argumen yang dilewatkan ke fungsi. Karena PHP adalah bahasa dinamis-mengetik, secara otomatis mengidentifikasi jenis variabel dan bertindak atas secara wajar.

Lingkaran di Pasir

Fungsi pada halaman sebelumnya hanya dicetak output mereka ke layar. Tetapi bagaimana jika Anda ingin fungsi untuk melakukan sesuatu yang lain dengan hasilnya? Nah, dalam PHP, Anda dapat memiliki fungsi mengembalikan nilai, seperti hasil perhitungan, untuk pernyataan yang memanggilnya. Hal ini dilakukan dengan menggunakan pernyataan return dalam fungsi, seperti ditunjukkan di bawah ini:
<?php
 
// define a function
function getCircumference($radius) {
    // return value
    return (2 * $radius * pi());
}
 
/* call a function with an argument and store the result in a variable */
$result = getCircumference(10);
 
/* call the same function with another argument and print the return value */
print getCircumference(20);
 
?>
Di sini, argumen dikirimkan ke getCircumference () fungsi diproses, dan hasilnya dikembalikan ke program utama, di mana ia dapat ditangkap dalam variabel, dicetak, atau ditangani dengan cara lain.
Anda bahkan dapat menggunakan hasil dari fungsi di dalam fungsi lain, seperti digambarkan dalam revisi kecil dari contoh di atas:
<?php
 
// define a function
function getCircumference($radius) {
// return value
    return (2 * $radius * pi());
}
 
// print the return value after formatting it
print "The answer is ".sprintf("%4.2f", getCircumference(20));
 
?>
Nilai Kembali tidak perlu angka atau string saja: fungsi hanya dapat dengan mudah mengembalikan array (ingat mereka?), seperti yang ditunjukkan dalam contoh berikut:
<?php
 
/* define a function that can accept a list of email addresses */
function getUniqueDomains($list) {
    /* iterate over the list, split addresses and add domain part to another array */
    $domains = array();
    foreach ($list as $l) {
        $arr = explode("@", $l);
        $domains[] = trim($arr[1]);
    }
    // remove duplicates and return
    return array_unique($domains);
}
 
// read email addresses from a file into an array
$fileContents = file("data.txt");
 
/* pass the file contents to the function and retrieve the result array */
$returnArray = getUniqueDomains($fileContents);
 
// process the return array
foreach ($returnArray as $d) {
    print "$d, ";
}
 
?>
Dengan asumsi file tersebut tampak seperti ini,
test@test.com
a@x.com
zooman@deeply.bored.org
b@x.com
guess.me @ where.ami.net
testmore@test.com
output dari script di atas akan terlihat seperti ini:
test.com, x.com, deeply.bored.org, where.ami.net,
Perhatikan bahwa pernyataan return berakhir pelaksanaan program di dalam suatu fungsi.

Susunan letak argumen

Urutan argumen dilewatkan ke suatu fungsi dapat menjadi penting. Contoh berikut ini mengharuskan bahwa nama dilewatkan sebagai argumen pertama, dan tempat sebagai yang kedua.
<?php
 
// define a function
function introduce($name, $place) {
    print "Hello, I am $name from $place";
}
 
// call function
introduce("Moonface", "The Faraway Tree");
 
?>
Ini adalah output:
Hello, I am Moonface from The Faraway Tree
Dalam contoh ini, jika Anda membalik urutan argumen yang dilewatkan ke fungsi, ini adalah apa yang Anda akan melihat:
Hello, I am The Faraway Tree from Moonface
Dan lihat apa yang terjadi jika Anda lupa untuk melewati sebuah argumen yang dibutuhkan:
Warning: Missing argument 2 for introduce() in xx.php on line 3
Hello, I am Moonface from
Untuk menghindari kesalahan seperti itu, PHP memungkinkan Anda untuk menentukan nilai default untuk semua argumen dalam fungsi yang ditetapkan pengguna. Nilai-nilai default digunakan jika pemanggilan fungsi yang hilang beberapa argumen. Berikut ini contohnya:
<?php
 
// define a function
function introduce($name="John Doe", $place="London") {
    print "Hello, I am $name from $place";
}
 
// call function
introduce("Moonface");
 
?>
Dalam hal ini output akan:
Hello, I am Moonface from London
Perhatikan bahwa fungsi telah disebut dengan hanya satu argumen, meskipun definisi fungsi membutuhkan dua. Namun, karena nilai-nilai default yang hadir untuk setiap argumen dalam fungsi tersebut, argumen yang hilang diganti dengan nilai default untuk argumen itu, dan tidak ada kesalahan yang dihasilkan.

Daftar Argumen Amazing Menyusut

Semua contoh di halaman sebelumnya memiliki satu kesamaan: jumlah argumen pada definisi fungsi adalah tetap. Namun, PHP 4.x juga mendukung daftar variabel-panjang argumen, dengan menggunakan func_num_args () dan func_get_args () perintah. Karena ingin nama yang lebih baik, fungsi-fungsi ini disebut “fungsi fungsi”. Coba membungkus lidah Anda di sekitar bahwa ketika Anda melihat contoh berikut ini, yang menunjukkan bagaimana mereka dapat digunakan:
<?php
 
// define a function
function someFunc() {
    // get the arguments
    $args = func_get_args();
 
    // print the arguments
    print "You sent me the following arguments:";
    foreach ($args as $arg) {
        print " $arg ";
    }
    print "<br />";
}
 
// call a function with different arguments
someFunc("red", "green", "blue");
someFunc(1, "soap");
 
?>
Hmmm … jika Anda licik, Anda mungkin telah mencoba untuk melewati someFunc () array, dan menemukan bahwa alih-alih menampilkan elemen array, itu hanya berkata “Array”. Anda dapat memperbaikinya dengan menambahkan tes cepat untuk argumen array dalam fungsi, seperti dalam hal ini menulis ulang:
<?php
 
// define a function
function someFunc() {
    // get the number of arguments passed
    $numArgs = func_num_args();
 
// get the arguments
    $args = func_get_args();
 
    // print the arguments
    print "You sent me the following arguments: ";
    for ($x = 0; $x < $numArgs; $x++) {
        print "<br />Argument $x: ";
        /* check if an array was passed and, if so, iterate and print contents */
        if (is_array($args[$x])) {
            print " ARRAY ";
            foreach ($args[$x] as $index => $element) {
                print " $index => $element ";
            }
        }
        else {
            print " $args[$x] ";
        }
    }
}
 
// call a function with different arguments
someFunc("red", "green", "blue", array(4,5), "yellow");
 
?>

Going Global

Sekarang mari kita berbicara sedikit tentang variabel yang digunakan dalam fungsi, dan hubungan mereka dengan variabel di dunia luar. Biasanya, variabel yang digunakan dalam suatu fungsi yang “lokal” – yang berarti bahwa nilai-nilai yang ditugaskan kepada mereka, dan perubahan yang dilakukan kepada mereka, dibatasi untuk fungsi ruang saja.
Pertimbangkan contoh sederhana ini:
<?php
 
// define a variable in the main program
$today = "Tuesday";
 
// define a function
function getDay() {
    // define a variable inside the function
    $today = "Saturday";
    // print the variable
    print "It is $today inside the function<br />";
}
 
// call the function
getDay();
 
// print the variable
print "It is $today outside the function";
 
?>
Ketika Anda menjalankan script ini, di sini adalah apa yang Anda akan melihat:
It is Saturday inside the function
It is Tuesday outside the function
Dengan kata lain, variabel di dalam fungsi ini terisolasi dari variabel identik-nama dalam program utama. Variabel dalam fungsi demikian tepat disebut “lokal” variabel karena mereka hanya ada dalam fungsi di mana mereka didefinisikan.
Sebaliknya juga benar: variabel didefinisikan dalam suatu fungsi tidak bisa “melihat” luar. Untuk mengilustrasikan, lihatlah contoh berikut ini dan outputnya (atau kurangnya itu):
<?php
 
// define a function
function getDay() {
    // define a variable inside the function
    $today = "Saturday";
}
 
getDay();
print "Today is $today";
 
?>
Berikut adalah output:
Today is
Tergantung pada error_reporting Anda telah mengatur di php.ini, Anda juga mungkin akan melihat pesan kesalahan:
Notice: Undefined variable: today in x1.php on line 10
Namun, saya tidak mengatakan ini tidak bisa diatasi. Untuk memiliki variabel dalam fungsi dapat diakses dari luar (dan sebaliknya), semua yang perlu Anda lakukan adalah pertama menyatakan mereka “global” dengan – coba tebak! – global kata kunci.
Berikut ini adalah menulis ulang dari contoh sebelumnya, kali ini mendeklarasikan variabel hari $global:
<?php
 
// define a variable in the main program
$today = "Tuesday";
 
// define a function
function getDay() {
    // make the variable global
    global $today;
 
    // define a variable inside the function
    $today = "Saturday";
    // print the variable
    print "It is $today inside the function<br />";
}
 
// print the variable
print "It is $today before running the function<br />";
 
// call the function
getDay();
 
// print the variable
print "It is $today after running the function";
 
?>
Dan ini adalah output nya:
It is Tuesday before running the function
It is Saturday inside the function
It is Saturday after running the function
Jadi, sekali variabel dideklarasikan global, tersedia di tingkat global, dan dapat dimanipulasi baik di dalam dan luar fungsi.
PHP juga dilengkapi dengan variabel superglobal disebut – variabel yang selalu tersedia, terlepas dari apakah Anda sedang berada dalam suatu fungsi atau luar. Kau sudah melihat beberapa variabel khusus dalam aksi: tersebut _SERVER $, $ _POST dan $ _GET variabel semua superglobals, itulah sebabnya anda dapat mengakses hal-hal seperti nama-mengeksekusi script saat ini atau bahkan di dalam bentuk nilai fungsi.
Superglobals adalah Good Thing ™, karena mereka selalu ada ketika Anda membutuhkan mereka, dan Anda tidak perlu melompat melalui drum atau apapun untuk menggunakan data yang tersimpan di dalamnya. Baca lebih lanjut tentang superglobals dan lingkup variabel di http://www.php.net/manual/en/language.variables.predefined.php dan http://www.php.net/manual/en/language.variables.scope. php.

Memeriksa Referensi

Setiap diskusi tentang variabel dalam dan keluar dari fungsi tidak akan lengkap tanpa menyebutkan perbedaan antara “lewat referensi” dan “lewat nilai”. Sejauh ini, semua contoh Anda pernah melihat telah terlibat lewat argumen untuk fungsi “dengan nilai” – yang berarti bahwa salinan variabel dilewatkan ke fungsi, sedangkan variabel asli tetap tidak tersentuh. Namun, PHP juga memungkinkan Anda untuk melewatkan “dengan referensi” – yang berarti bahwa alih-alih lulus nilai ke fungsi, Anda lulus referensi ke variabel asli, dan memiliki fungsi pada tindakan yang bukan salinan.
Membingungkan? Nah, ini mungkin lebih mudah untuk memahami dengan sebuah contoh. Mari kita mulai dengan ini:
<?php
 
// create a variable
$today = "Saturday";
 
// function to print the value of the variable
function setDay($day) {
    $day = "Tuesday";
    print "It is $day inside the function<br />";
}
 
// call function
setDay($today);
 
// print the value of the variable
print "It is $today outside the function";
 
?>
Anda sudah melihat ini sebelumnya, dan Anda sudah tahu apa output yang akan dikatakan:
It is Tuesday inside the function
It is Saturday outside the function
Hal ini karena ketika getDay tersebut () fungsi dipanggil, ia melewati nilai “Sabtu” untuk fungsi (“lewat nilai”). Variabel yang asli tetap tak tersentuh, hanya isinya dikirim ke fungsi. Fungsi kemudian bekerja pada konten, memodifikasi dan menampilkan itu.
Sekarang, melihat bagaimana “lewat referensi” bekerja:
<?php
 
// create a variable
$today = "Saturday";
 
// function to print the value of the variable
function setDay(&$day) {
    $day = "Tuesday";
    print "It is $day inside the function<br />";
}
 
// call function
setDay($today);
 
// print the value of the variable
print "It is $today outside the function";
 
?>
Perhatikan ampersand (&) sebelum argumen dalam definisi fungsi. Ini memberitahu PHP untuk menggunakan referensi variabel bukan nilai variabel. Ketika seperti referensi dilewatkan ke fungsi, kode di dalam fungsi bekerja pada referensi, dan memodifikasi isi dari variabel asli (yang referensi menunjuk ke) bukan salinan. Jika kemudian kamu mencoba mengambil nilai dari variabel asli luar fungsi, ia mengembalikan nilai diubah:
.
It is Tuesday inside the function
It is Tuesday outside the function
Sekarang Anda mengerti mengapa saya mengatakan tidak diskusi tentang variabel akan lengkap tanpa menyebutkan dua cara variabel yang lewat. Ini, tentu saja, adalah apa kata kunci global tidak di dalam fungsi: gunakan referensi untuk memastikan bahwa perubahan variabel di dalam fungsi tersebut juga mencerminkan luar. Manual PHP menempatkan dengan sangat baik ketika ia mengatakan “… ketika Anda mendeklarasikan sebuah variabel sebagai var $ global Anda sebenarnya menciptakan referensi ke variabel global”. Untuk contoh lebih lanjut, baca semua tentang referensi di http://www.zend.com/manual/language.references.php.
Dan itu hanya tentang menyimpulkan tutorial ini. Kali ini Anda telah mengambil langkah besar menuju desain software yang lebih baik dengan belajar bagaimana bagian abstrak dari kode PHP Anda ke dalam fungsi dapat digunakan kembali. Anda sekarang tahu bagaimana menambah fleksibilitas untuk fungsi Anda dengan memungkinkan mereka untuk menerima argumen yang berbeda, dan bagaimana untuk memperoleh satu (atau lebih) mengembalikan nilai dari mereka. Akhirnya, Anda telah belajar sedikit tentang bagaimana memperlakukan variabel PHP dalam dan luar fungsi.

Belajar PHP dan MySQL Part VI (Olah File)



Kembali ke Sekolah

Ketika Anda pertama kali mulai membaca seri ini, saya berjanji bahwa Anda akan memiliki banyak hal yang menyenangkan. Jika Anda adalah tipe sinis, Anda mungkin merasa bahwa aku tidak menepati janjiku. Setelah semua, berapa banyak yang telah Anda benar-benar menyenangkan sejauh ini? Semua yang telah dilakukan adalah mempelajari banyak aturan teoritis, ditambahkan dan dikurangi nomor dari satu sama lain, belajar sepanjang primitif pengambilan keputusan dan pergi-putar dalam lingkaran pengulangan (loop). Hmmm, jika ini bukan tutorial PHP, maka akan jadi seperti taman kanak-kanak …
Aku mendengar Anda.
Dalam segmen saga kami yang berkelanjutan, aku akan mengajari Anda bagaimana melakukan sesuatu yang jelas bukan untuk anak-anak. Ini melibatkan semakin ke bawah dan kotor dengan file di disk anda: pertemuan mereka (kejutan!), Membaca isinya (menjerit) dan! (Kengerian kengerian) menulis data ke mereka!. Semua kegiatan menarik akan berlangsung di bawah naungan file manipulasi API PHP sangat keren, yang memungkinkan Anda untuk melihat dan mengubah atribut file, membaca dan isi daftar direktori, mengubah hak akses file, mengambil file isinya ke berbagai struktur data asli, dan mencari file berdasarkan pola tertentu.
Mari kita mulai!

Menangani Dengan Perawatan

Saya akan mulai dengan sesuatu sederhana: membuka file dan membaca isinya. Mari kita berasumsi bahwa di suatu tempat pada disk Anda, tersembunyi di /usr/local/stuff/that/should/be/elsewhere/recipes/, Anda memiliki file teks yang berisi resep untuk omelet Spanyol yang sempurna. Sekarang Anda ingin membaca isi file ini ke dalam script PHP.
Untuk melakukan hal ini, ada tiga langkah yang berbeda yang harus diikuti:
* Buka file tersebut dan menetapkan itu menangani file.
* Berinteraksi dengan file tersebut, melalui gagangnya, dan ekstrak isinya ke dalam variabel PHP.
* Tutup file.
Berikut adalah skrip PHP yang akan melakukan hal tersebut:
<?php
 
// set file untuk baca
$file = '/usr/local/stuff/that/should/be/elsewhere/recipes/omelette.txt';
// buka file
$fh = fopen($file, 'r') or die('Tidak bisa buka file!');
// baca isi konten file
$data = fread($fh, filesize($file)) or die('Tidak bisa baca file!');
// tutup file
fclose($fh);
// tampilkan isi konten file
echo $data;
 
?>
Jalankan script ini melalui browser Web Anda, dan PHP harus mengembalikan isi file.
Sekarang mari saya jelaskan masing-masing dari tiga langkah di atas secara rinci:

Buka file tersebut dan menetapkan itu menangani file

PHP menangani kebutuhan file untuk membaca data dari file. Menangani file ini dapat dibuat dengan fopen () fungsi, yang menerima dua argumen: nama dan path ke file tersebut, dan string menunjukkan “modus” di mana file tersebut akan dibuka (‘r’ untuk membaca).
Tiga modus yang berbeda tersedia untuk digunakan dengan fopen () function. Berikut daftar:
‘r’ – membuka file dalam modus baca
‘w’ – membuka file dalam modus menulis, menghancurkan isi file yang ada
‘a’ – membuka file dalam modus menambahkan, melestarikan isi file yang ada

Berinteraksi dengan file melalui gagangnya dan ekstrak isinya ke dalam variabel PHP

Jika fungsi fopen() berhasil, ia mengembalikan file menangani, $fh, yang dapat digunakan untuk interaksi lebih lanjut dengan file tersebut. Menangani file ini digunakan oleh fungsi fread(), yang membaca file dan memasukkan isinya ke dalam variabel.
Argumen kedua fread () adalah jumlah byte untuk dibaca. Anda biasanya dapat memperoleh informasi ini melalui fungsi filesize(), yang – yang pasti akan menebaknya?! – Mengembalikan ukuran file dalam byte.

Tutup file

Langkah terakhir ini tidak sepenuhnya diperlukan, karena PHP secara otomatis menutup file setelah eksekusi script selesai, tapi menggunakan fclose() adalah kebiasaan baik untuk dikembangkan. Secara eksplisit menutup file dengan fclose() memiliki dua manfaat: ia mengikat berakhir longgar di script Anda, dan Anda memenangkan banyak karma yang baik dari komunitas PHP.
Anda mungkin tidak melihat die() fungsi sebelumnya, baik. Fungsi ini banyak digunakan sebagai mekanisme penanganan kesalahan-primitif. Dalam hal kesalahan fatal, seperti path file yang tidak valid atau hak akses file PHP menjadi seperti yang tidak bisa membacanya, die() berakhir dan secara opsional pengolahan script akan menampilkan pesan kesalahan pengguna-ditentukan menunjukkan mengapa bunuh diri.

Berbeda Pukulan

Sebuah metode alternatif untuk membaca data dari sebuah berkas adalah fungsi file() yang sangat keren, yang membaca berkas tersebut ke dalam array (ingat mereka) dengan satu baris kode?. Setiap elemen array kemudian berisi satu baris dari file tersebut. Untuk menampilkan isi file tersebut, cukup iterate selama dalam array foreach() loop dan mencetak setiap elemen.
Contoh berikut menunjukkan:
<?php
 
// set file untuk baca
$file = '/usr/local/stuff/that/should/be/elsewhere/recipes/omelette.txt';
// baca file dan masukkan kedalam variabel array
$data = file($file) or die('Tidak bisa baca file!');
// loop dari array dan tampilkan data tiap baris
foreach ($data as $line) {
     echo $line;
}
 
?>
Dalam contoh ini, perintah file() membuka file tersebut, membacanya ke array dan menutup file – semua dalam satu, tunggal, gerakan elegan. Setiap elemen array saat ini sesuai dengan sebuah baris dari file tersebut. Sangat mudah untuk mencetak isi file sekarang – hanya meraih yang utama pengolahan array, yang foreach() loop.
Tidak ingin data dalam array? Coba fungsi file_get_contents(), baru dalam PHP 4.3.0 dan PHP 5.0, yang berbunyi seluruh file ke dalam string:
<?php
 
// set file untuk baca
$file = '/usr/local/stuff/that/should/be/elsewhere/recipes/omelette.txt' ;
// baca file dan masukkan kedalam variabel utuh string
$data = file_get_contents($file) or die('Tidak bisa baca file!');
// print contents
echo $data;
 
?>
Siapa aku bercanda? Saya selalu menggunakan fungsi satu-baris yang disebutkan di atas bukan urutan tiga baris fopen(), fread() dan fclose(). Kemalasan mengalahkan segalanya.

Ketika Kemalasan adalah sebuah Kebajikan

PHP juga menawarkan dua fungsi yang sangat berguna untuk mengimpor file ke dalam script PHP: fungsi include() dan require(). Fungsi ini dapat digunakan untuk menghisap mengunci file eksternal, saham dan barel menjadi script PHP, yang sangat berguna jika, misalnya, Anda memiliki aplikasi modular yang dipecah kodenya di file di lokasi yang terpisah.
Cara terbaik untuk memahami kegunaan ini include() dan require() fungsi ini dengan sebuah contoh. Asumsikan bahwa di situs Web Anda, Anda memiliki menu bar standar di bagian atas setiap halaman, dan pemberitahuan hak cipta standar di bagian bawah. Daripada menyalin dan menyisipkan header dan footer kode pada masing-masing halaman, “PHP guru” cukup buat file terpisah untuk header dan footer, dan impor mereka di bagian atas dan bawah masing-masing script. Hal ini juga membuat perubahan ke desain situs lebih mudah untuk menerapkan: bukan mengedit file secara manual trilyun, Anda cukup mengedit dua, dan perubahan tercermin di seluruh situs Anda secara instan.
Mari kita lihat contoh hidup nyata dalam tindakan ini. Buat header dalam satu file, yang disebut header.php:
<html>
<head>
<title><?php echo $page['title'];?></title>
</head>
<body>
<!-- top menu bar -->
<table width="90%" border="0" cellspacing="5" cellpadding="5">
<tr>
<td><a href="#">Home</a></td>
<td><a href="#">Site Map</a></td>
<td><a href="#">Search</a></td>
<td><a href="#">Help</a></td>
</tr>
</table>
<!-- header ends -->
Selanjutnya, menciptakan footer dengan pemberitahuan hak cipta dalam file kedua, footer.php:
<!-- footer begins -->
<br />
<center>Your usage of this site is subject to its published <a href="tac.html">terms and conditions</a>. Data is copyright Big Company Inc, 1995-<?php echo date("Y", mktime()); ?></center>
</body>
</html>
Akhirnya, membuat skrip untuk menampilkan konten utama situs Anda, dan include() header dan footer pada tempat yang tepat:
<?php
 
// create an array to set page-level variables
$page = array();
$page['title'] = 'Product Catalog';
/* once the file is imported, the variables set above will become available to it */
 
// include the page header
include('header.php');
 
?>
 
<!-- HTML content here -->
 
<?php
 
// include the page footer
include('footer.php');
 
?>
Sekarang, ketika Anda menjalankan script di atas, PHP secara otomatis akan membaca di header dan footer file, menggabungkan mereka dengan konten HTML, dan menampilkan halaman lengkap untuk Anda. Sederhana, bukan?
Perhatikan bahwa Anda bahkan dapat menulis kode PHP dalam file yang diimpor. Saat file pertama kali dibaca, parser akan mencari , dan secara otomatis mengeksekusi kode di dalamnya. (Jika Anda akrab dengan JavaScript, Anda dapat menggunakan fitur ini untuk meniru fungsionalitas mirip dengan yang dari onLoad() event handler Halaman dalam JavaScript.)
PHP juga menawarkan fungsi require_once() dan include_once(), yang memastikan bahwa file yang telah dibaca tidak dibaca lagi. Hal ini dapat berguna jika Anda memiliki sebuah situasi di mana Anda ingin menghapus baca beberapa include file yang sama, baik untuk alasan kinerja atau untuk menghindari korupsi dari variabel ruang.
Sebuah catatan singkat tentang perbedaan antara fungsi include() dan require(): fungsi require() mengembalikan sebuah kesalahan fatal jika file bernama tidak dapat ditemukan dan pengolahan menghentikan skrip, sedangkan include() fungsi kembali peringatan tapi memungkinkan script pengolahan untuk melanjutkan.

Menulis data ke sebuah file

Setelah semua yang telah Anda baca, Anda mungkin menyadari bahwa membaca file tidak persis operasi otak. Jadi mari kita lanjutkan untuk sesuatu yang sedikit lebih sulit – menulis ke sebuah file.
Langkah-langkah yang terlibat dalam menulis data ke file hampir sama dengan mereka yang terlibat dalam membacanya: membuka file dan mendapatkan file menangani, menggunakan file pegangan untuk menulis data ke situ, dan menutup file. Ada dua perbedaan: pertama, Anda harus fopen() file dalam modus menulis (‘w’ untuk menulis), dan kedua, yang tadinya menggunakan fungsi fread() untuk membaca dari file pegangan, sekarang gunakan fungsi fwrite() untuk menulis itu. Perhatikan:
<?php
 
// set file untuk menulis
$file = '/tmp/dump.txt';
// buka file
$fh = fopen($file, 'w') or die('Tidak bisa buka file!');
// menulis di file
fwrite($fh, "Lihat, Ibu, Saya nulis di file! ") or die('Tidak bisa menulis di file!');
// tutup file
fclose($fh);
 
?>
Ketika Anda menjalankan script ini, harus membuat file bernama dump.txt di /tmp, dan menulis baris teks untuk itu, dengan data kembali di akhir. Perhatikan bahwa tanda kutip ganda diperlukan untuk mengubah menjadi data kembali.
Fungsi fopen(), fwrite() dan fread() semua biner-aman, yang berarti Anda dapat menggunakannya di file biner tanpa perlu khawatir kerusakan pada isi file. Baca lebih lanjut tentang banyak masalah yang berkaitan dengan manipulasi file biner-aman pada platform yang berbeda di http://www.php.net/manual/en/function.fopen.php
Jika saya sudah dimanjakan Anda dengan menunjukkan Anda cara pintas fungsi satu-line untuk membaca file, biarkan aku lanjutkan Anda lebih lanjut dengan memperkenalkan Anda ke fungsi file_put_contents(), baru di PHP 5.0, yang mengambil seutas tali dan menulis ke file dalam satu baris kode.
<?php
 
// set file untuk menulis
$filename = '/tmp/dump.txt';
// menulis file
file_put_contents($filename, "Lihat, Ibu, Saya nulis di file! ") or die('Tidak bisa menulis di file!');
 
?>
Ingatlah bahwa direktori di mana Anda mencoba untuk membuat file harus ada sebelum Anda dapat menulis untuk itu. Lupa langkah penting adalah penyebab umum dari kesalahan skrip.

Informasi adalah Kekuatan

PHP juga dilengkapi dengan sejumlah fungsi yang memungkinkan Anda untuk menguji status file – misalnya untuk mengetahui apakah ada, apakah itu kosong, apakah itu dapat dibaca atau ditulis, dan apakah itu suatu biner atau file teks. Dari jumlah tersebut, operator yang paling sering digunakan adalah file_exists () fungsi, yang digunakan untuk menguji keberadaan file tertentu.
Berikut ini adalah contoh yang meminta pengguna untuk memasukkan path ke file dalam bentuk web, dan kemudian kembali menampilkan pesan atau tidak file ada:
<html>
<head>
</head>
<body>
 
<?php
// apakah form telah di submit
// tampilkan input box
if (!isset($_POST['file'])) {
?>
 
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Enter file path <input type="text" name="file">
    </form>
 
<?php
}
// else process form input
else {
    // periksa apakah file ada
    // tampilkan pesan
    if (file_exists($_POST['file'])) {
        echo 'File ada!';
        }
    else {
        echo 'File tidak ada!';
    }
}
?>
 
</body>
</html>
Ada lebih banyak fungsi seperti. Berikut adalah daftar singkat, diikuti dengan contoh yang dibangun di atas satu sebelumnya untuk memberikan informasi lebih lanjut tentang file yang ditentukan oleh pengguna.
* is_dir() – mengembalikan Boolean yang menunjukkan apakah jalan yang ditetapkan adalah sebuah direktori
* is_file() – mengembalikan Boolean yang menunjukkan apakah berkas yang ditentukan adalah file biasa
* is_link() – mengembalikan Boolean yang menunjukkan apakah berkas yang ditentukan adalah symbolic link
* is_executable() – mengembalikan Boolean yang menunjukkan apakah berkas yang ditentukan adalah executable
* is_readable() – mengembalikan Boolean yang menunjukkan apakah berkas yang ditentukan dapat dibaca
* is_writable() – mengembalikan Boolean yang menunjukkan apakah file yang diberikan tidak ditulis
* filesize() – mendapatkan ukuran file
* filemtime() – mendapatkan waktu modifikasi terakhir dari berkas
* filamtime() – mendapatkan waktu akses terakhir dari file
* fileowner() – mendapat pemilik file
* filegroup() – kelompok mendapat file
* fileperms() – mendapatkan hak akses file
* filetype() – mendapatkan jenis file
Script ini meminta nama file sebagai input dan menggunakan fungsi di atas untuk menampilkan kembali informasi tersebut.
<html>
<head>
</head>
<body>
 
<?php
/* if form has not yet been submitted, display input box */
if (!isset($_POST['file'])) {
?>
 
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Enter file path <input type="text" name="file">
    </form>
 
<?php
}
// else process form input
else {
    echo 'File name: <b>'.$_POST['file']  .'</b><br />';
    /* check if file exists and display appropriate message */
    if (file_exists($_POST['file'])) {
        // print file size
        echo 'File size: '.filesize($_POST['file']).' bytes<br />';
        // print file owner
        echo 'File owner: '.fileowner($_POST['file']).'<br />';
        // print file group
        echo 'File group: '.filegroup($_POST['file']).'<br />';
        // print file permissions
        echo 'File permissions: '.fileperms($_POST['file']).'<br />';
        // print file type
        echo 'File type: '.filetype($_POST['file']).'<br />';
        // print file last access time
        echo 'File last accessed on: '.date('Y-m-d', fileatime($_POST['file'])).'<br />';
        // print file last modification time
        echo 'File last modified on: '.date('Y-m-d', filemtime($_POST['file'])).'<br />';
        // is it a directory?
        if (is_dir($_POST['file'])) {
            echo 'File is a directory <br />';
        }
        // is it a file?
        if (is_file($_POST['file'])) {
            echo 'File is a regular file <br />';
        }
        // is it a link?
        if (is_link($_POST['file'])) {
            echo 'File is a symbolic link <br />';
        }
        // is it executable?
        if (is_executable($_POST['file'])) {
            echo 'File is executable <br />';
        }
        // is it readable?
        if (is_readable($_POST['file'])) {
            echo 'File is readable <br />';
        }
        // is it writable?
        if (is_writable($_POST['file'])) {
            echo 'File is writable <br />';
        }
    }
    else {
        echo 'File does not exist! <br />';
    }
}
?>
 
</body>
</html>
Dan inilah yang outputnya mungkin terlihat seperti:
File name: /usr/local/apache/logs/error_log
File size: 53898 bytes
File owner: 0
File group: 0
File permissions: 33188
File type: file
File last accessed on: 2004-05-26
File last modified on: 2004-06-20
File is a regular file
File is readable

Memecahkan Telur

Jadi sekarang Anda tahu cara membaca file, menulis untuk itu, dan menguji statusnya. Mari kita lihat beberapa contoh yang dapat Anda lakukan dengan kekuatan baru-ditemukan.
Mari kita kembali ke resep omelet Spanyol saya. Mari kita mengira aku merasa murah hati, dan aku memutuskan bahwa aku ingin mendengar apa yang orang benar-benar berpikir tentang keterampilan kuliner saya. Sejak saya memiliki banyak resep yang saya ingin berbagi dengan orang, dan karena mereka semua sesuatu yang terlihat seperti ini:
SPANYOL dadar
Bahan:
- 1 bawang
- 1 tomat cincang
- 1 / 2 paprika hijau cincang
- 4 telur kocok
- Garam dan merica secukupnya
METODE:
1. Goreng bawang dalam panci
2. Tuangkan telur kocok dan goreng bawang lebih lembut
3. Tambahkan tomat, paprika hijau, garam dan merica secukupnya
4. Sajikan dengan roti panggang atau roti
Aku butuh cara cepat untuk mengkonversi mereka semua ke dalam HTML agar mereka terlihat rapi di situs Web saya. Kami sudah menetapkan bahwa aku malas, jadi fuggedaboutme menciptakan kembali resep dalam HTML. Sebaliknya, saya akan memiliki PHP melakukan angkat berat bagi saya:
<html>
<head></head>
<body>
 
<?php
// read recipe file into array
$data = file('/usr/local/stuff/that/should/be/elsewhere/omelette.txt') or die('Could not read file!');
/* first line contains title: read it into variable */
$title = $data[0];
// remove first line from array
array_shift($data);
?>
 
<h2><?php echo $title; ?></h2>
 
<?php
/* iterate over content and print it */
foreach ($data as $line) {
    echo nl2br($line);
}
?>
 
</body>
</html>
Saya telah menggunakan file () fungsi untuk membaca resep ke array, dan menetapkan garis pertama (judul) ke variabel. judul itu kemudian dicetak di bagian atas halaman. Karena sisa data yang cukup layak seperti, saya hanya dapat mencetak baris ke satu layar setelah yang lain. istirahat Line secara otomatis ditangani bagi saya oleh fungsi nl2br yang sangat keren, yang mengubah linebreaks teks biasa ke setara HTML, tag “br”. Hasil akhir: versi HTML-terwujud dari resep saya bahwa dunia dapat mengagumi. Perhatikan:
<html>
<head> </head> <body>
 
<h2> SPANYOL dadar</h2>
Bahan: <br />
- 1 bawang cincang <br />
- 1 tomat cincang <br />
- 1 / 2 cincang <br /> lada hijau
- 4 butir telur dikocok <br />
- Garam dan merica untuk rasa <br />
METODE:  <br />
1. Goreng bawang dalam panci <br />
2. Tuangkan telur kocok dan goreng bawang selama lembut <br />
3. Tambahkan tomat, paprika hijau, garam dan merica untuk rasa <br /> 
4. Sajikan dengan roti panggang atau roti <br />
 
</body>
</html>
Jika keanggunan dan kesederhanaan kreatif resep omelet Spanyol saya telah kiri Anda berkata-kata, aku tidak heran – banyak orang merasa seperti itu. Sampai Anda mendapatkan suara Anda kembali: Ciao … dan pastikan Anda datang kembali melalui Bagian berikutnya, yang membahas tentang membuat fungsi sendiri dapat digunakan kembali.

Belajar PHP dan MySQL Part V (Array)



Penjelasan Array

Sejauh ini, variabel-variabel yang telah kita bahas hanya berisi sebuah nilai tunggal, seperti:
<?php
 
$i = 5;
 
?>
Namun, variabel array berbeda. Array adalah variabel yang kompleks yang memungkinkan Anda untuk menyimpan beberapa nilai dalam satu variabel (yang berguna jika Anda perlu untuk menyimpan dan merepresentasikan informasi terkait). Pikirkan dari array variabel sebagai “wadah” variabel, yang dapat mengandung satu atau lebih nilai. Contoh:
<?php
 
// define an array
$bahan_pizza = array('bawang', 'tomat', 'keju', 'ikan asin', 'daging sapi', 'pepperoni');
print_r($bahan_pizza);
 
?>
Di sini, $bahan_pizza adalah variabel array, yang berisi nilai-nilai ‘bawang’, ‘tomat’, ‘keju’, ‘ikan asin’, ‘daging sapi’ dan ‘pepperoni’. (Array variabel akan sangat berguna untuk mengelompokkan nilai-nilai yang terkait bersama-sama.)
print_r () adalah fungsi khusus yang memungkinkan Anda untuk mengambil menyelinap mengintip ke dalam sebuah array. Ini lebih berguna untuk debugging (mencari tahu mengapa naskah Anda tidak bekerja) daripada untuk tujuan tampilan, tapi aku akan menggunakannya di sini sehingga Anda dapat melihat apa yang sedang terjadi di bawah permukaan. Anda memiliki server Anda berjalan dan browser Anda terbuka, kan?

Berbagai elemen array diakses melalui nomor indeks, dengan elemen pertama dimulai dari nol. Jadi, untuk mengakses elemen ‘bawang’, Anda akan menggunakan notasi $bahan_pizza[0], sedangkan ‘ikan asin’ akan menjadi $bahan_pizza[3] – pada dasarnya, nama variabel array diikuti oleh nomor indeks dalam kurung siku tertutup.
PHP juga memungkinkan Anda untuk mengganti indeks dengan yang ditetapkan pengguna “kunci/key”, dalam rangka menciptakan sedikit berbeda tipe array. Setiap tombol adalah unik, dan sesuai dengan nilai tunggal dalam array.
<?php
 
//Define sebuah array
$buah = array('merah' => 'apel', 'kuning' => 'pisang', 'ungu' => 'plum', 'hijau' => 'anggur');
print_r($buah);
 
?>
Dalam kasus ini, $buah adalah sebuah variabel array yang berisi empat pasangan nilai kunci. (Simbol “=>” yang digunakan untuk menunjukkan hubungan antara kunci dan nilainya.) Dalam rangka untuk mengakses nilai ‘pisang’, Anda akan menggunakan notasi $buah['kuning'], sementara nilai ‘anggur’ akan dapat diakses melalui notasi $buah['hijau'].
Tipe array ini kadang-kadang disebut sebagai “hash” atau “array asosiatif”. Jika Anda pernah menggunakan Perl, Anda akan melihat kemiripan dengan variabel hash Perl.

Makanan Italia

Paling sederhana adalah untuk mendefinisikan variabel array adalah array () function.
Begini caranya:
<?php
 
// define an array
$pasta = array('spaghetti', 'penne', 'macaroni');
 
?>
Aturan untuk memilih nama variabel array sama dengan orang-orang untuk setiap variabel PHP yang lain: ia harus dimulai dengan huruf atau underscore, dan secara opsional dapat diikuti oleh lebih huruf, angka dan garis bawah.
Atau, Anda bisa mendefinisikan sebuah array dengan menetapkan nilai untuk setiap elemen dalam notasi indeks, seperti ini:
<?php
 
// define an array
$pasta[0] = 'spaghetti';
$pasta[1] = 'penne';
$pasta[2] = 'macaroni';
 
?>
Jika Anda seseorang yang lebih suka menggunakan tombol numerik daripada indeks default, Anda mungkin lebih suka contoh berikut:
<?php
 
// Define sebuah array
$menu['sarapan'] = 'daging dan telur';
$menu['makan siang'] = 'daging sapi panggang';
$menu['makan malam'] = 'lasagna';
 
?>
Anda dapat menambahkan elemen ke array dengan cara yang sama. Sebagai contoh, jika Anda ingin menambahkan elemen ‘zaitun hijau’ ke $bahan_pizza array, Anda akan menggunakan sesuatu seperti ini:
<?php
// Menambahkan elemen ke array
$bahan_pizza[3] = 'zaitun hijau';
 
?>
Dalam rangka untuk mengubah suatu elemen dari sebuah array, hanya memberikan nilai baru yang sesuai variabel skalar. Jika Anda ingin mengganti ‘daging sapi’ dengan ‘ayam’, Anda akan menggunakan:
<?php
// Memodifikasi sebuah array
$bahan_pizza[4] = 'ayam';
 
?>
Anda dapat melakukan hal yang sama dengan menggunakan kunci. Pernyataan berikut memodifikasi elemen dengan kunci ‘makan siang’ untuk nilai yang berbeda:
<?php
// Memodifikasi sebuah array
$menu['makan siang'] = 'steak dengan kentang pure';
 
?>

Push and Pull (Dorong Dan Tarik)

Anda juga dapat menambahkan elemen ke akhir array yang sudah ada dengan array_push () function:
<?php
// Define sebuah array
$pasta = array('spaghetti', 'penne', 'makaroni');
 
// Menambahkan suatu elemen akhir
array_push($pasta, 'tagliatelle');
 
print_r($pasta);
 
?>
Dan Anda dapat menghapus sebuah elemen dari akhir array menggunakan nama yang menarik, array_pop () function.
<?php
// Define sebuah array
$pasta = array('spaghetti', 'penne', 'makaroni');
 
// Menghapus 1 elemen dari ujung akhir
array_pop($pasta);
 
print_r($pasta);
 
?>
Jika Anda perlu pop elemen dari atas array, Anda dapat menggunakan array_shift () function:
<?php
// Define sebuah array
$pasta = array('spaghetti', 'penne', 'makaroni');
 
// Mengambil elemen dari atas
array_shift($pasta);
 
print_r($pasta);
 
?>
Dan array_unshift () fungsi mengurus menambahkan elemen ke awal dari array.
<?php
// Define sebuah array
$pasta = array('spaghetti', 'penne', 'makaroni');
 
// Menambahkan suatu unsur ke awal
array_unshift($pasta, 'tagliatelle');
 
print_r($pasta);
 
?>
Fungsi array_push() dan array_unshift() tidak bekerja dengan array asosiatif; untuk menambahkan elemen-elemen array ini, lebih baik untuk menggunakan $arr[$key] = $value notasi untuk menambahkan nilai-nilai baru ke array.

Fungsi Explode dan Implode

Fungsi explode() memecah string ke dalam komponen yang lebih kecil, yang didasarkan pada pengguna ditentukan pemisah, dan mengembalikan potongan sebagai elemen sebagai array.
<?php
// Define CSV string
$str = 'merah, biru, hijau, kuning';
 
// Dipecah menjadi kata-kata
$warna = explode(',', $str);
 
print_r($warna);
 
?>
Untuk melakukan sebaliknya, Anda dapat menggunakan fungsi implode(), yang menciptakan satu string dari semua elemen array dengan bergabung mereka bersama-sama dengan yang ditetapkan pengguna delimiter. Membalik contoh di atas, kita lihat:
<?php
// Define array
$warna = array ( 'merah', 'biru', 'hijau', 'kuning');
 
// Gabung menjadi satu string dengan 'dan'
// Kembali 'merah, biru, dan hijau dan kuning'
$str = implode('dan', $warna);
 
print $str;
 
?>

Sort dan Rsort – Pengurutan pada Array

Kedua contoh di bawah ini menunjukkan bagaimana fungsi sort() dan rsort() dapat digunakan untuk mengurutkan array abjad (atau secara numerik), di urutan menaik dan menurun:
<?php
// Define sebuah array
$pasta = array ('spaghetti', 'penne', 'makaroni');
 
// Mengembalikan array diurutkan sesuai abjad
sort($pasta);
print_r($pasta);
print "<br />";
 
// Mengembalikan array diurutkan sesuai abjad terbalik
rsort($pasta);
print_r($pasta);
 
?>

Looping Loop

Jadi yang menangani data meletakkan di dalam sebuah array. Sekarang, bagaimana mendapatkan itu keluar?
Mengambil data dari sebuah array sangat sederhana: semua yang perlu Anda lakukan adalah mengakses elemen yang sesuai dari array menggunakan nomor indeks. Untuk membaca seluruh array anda hanya loop di atasnya, menggunakan salah satu konstruksi loop yang Anda pelajari di Bagian sebelum nya dari tutorial ini.
Bagaimana contoh cepat?
<html>
<head> </head>
<body>
Band-band favorit saya adalah:
<ul>
 
<?php
 
// Define array
$seniman = array ('Metallica', 'Evanescence', 'Linkin Park', 'Guns n Roses');
// Loop di atasnya dan mencetak elemen array
for ($x = 0; $x < sizeof ($seniman); $x++) {
 echo '<li>' . $seniman[$x] . '</li>';
}
 
?>
 
</ul>
</body>
</html>
Ketika Anda menjalankan skrip ini, inilah yang akan Anda lihat:
Band-band favorit saya adalah:
* Metallica
* Evanescence
* Linkin Park
* Guns n Roses
Dalam hal ini, saya telah menetapkan sebuah array, dan kemudian menggunakan for () loop untuk: berjalan melalui itu, ekstrak unsur-unsur menggunakan notasi indeks, dan menampilkan mereka satu demi satu.
Aku akan menarik perhatian Anda di sini ke fungsi sizeof (). Fungsi ini adalah salah satu yang paling penting dan sering digunakan fungsi array. Ini mengembalikan ukuran (baca: jumlah elemen dalam) array. Hal ini kebanyakan digunakan dalam loop loket untuk memastikan bahwa loop iterates sebanyak yang terdapat elemen-elemen dalam array.
Jika Anda menggunakan array asosiatif, yang array_keys () dan array_values () fungsi berguna, untuk mendapatkan daftar semua kunci dan nilai-nilai dalam array.
<?php
 
//Define sebuah array
$menu = array ('sarapan' => 'daging dan telur', 'makan siang' => 'daging sapi panggang', 'makan malam' => 'lasagna');
 
/* Mengembalikan array ( 'sarapan', 'makan siang', 'makan malam') dengan angka indeks */
$result = array_keys($menu);
print_r($result);
print "<br />";
 
/* Mengembalikan array ( 'daging dan telur', 'daging panggang', 'lasagna') dengan angka indeks */
$result = array_values ($menu);
print_r($result);
 
?>

Alternatif baru untuk pemanggilan Loop! (PENTING)

Namun ada, cara yang lebih sederhana untuk penggalian semua elemen array. PHP 4,0 memperkenalkan sebuah pukulan-jenis loop baru yang dirancang khusus untuk tujuan iterasi array: yang foreach () loop. (Hal ini mirip dengan sintaks Perl membangun nama yang sama.) Inilah yang menjadi seperti ini:
<?php
foreach ($array as $temp) {
    //melakukan ini!
}
?>
foreach () loop dijalankan sekali untuk setiap elemen dari array berlalu untuk itu sebagai argumen, bergerak maju melalui array pada setiap iterasi. Tidak seperti for () loop, tidak memerlukan meja atau panggilan ke sizeof (), karena melacak posisinya dalam array secara otomatis. Pada masing-masing dilaksanakan, pernyataan di dalam kurung kurawal dijalankan, dan yang sedang dipilih elemen array yang tersedia melalui variabel loop sementara.
Untuk lebih memahami bagaimana ini bekerja, mempertimbangkan ini menulis ulang dari contoh sebelumnya, dengan menggunakan foreach () loop:
<html>
<head> </head>
<body>
Band-band favorit saya adalah:
<ul>
 
<?php
 
// Define array
$seniman = array ('Metallica', 'Evanescence', 'Linkin Park', 'Guns n Roses');
// Loop di atasnya
// Mencetak elemen array
foreach ($seniman as $a) {
 echo '<li>' . $a . '</li>';
}
 
?>
 
</ul>
</body>
</html>
Setiap kali loop dijalankan, itu tempat-tempat yang sedang dipilih elemen array di variabel $a. sementara Variabel ini kemudian dapat digunakan oleh pernyataan-pernyataan di dalam blok loop. Karena foreach () loop tidak perlu sebuah counter untuk melacak dari mana ia dalam array, itu lebih efektif dalam pemeliharaan dan juga lebih mudah untuk dibaca daripada standar for () loop. Oh ya … dan juga bekerja dengan array asosiatif, dengan pemrograman tanpa tambahan dibutuhkan.

Musik untuk Misa

Selain jelas mereka menggunakan, array dan loop juga datang dalam bentuk berguna saat memproses di PHP. Sebagai contoh, jika Anda memiliki grup kotak centang yang terkait atau multi-pilih daftar, Anda dapat menggunakan sebuah array untuk mengambil semua bentuk nilai-nilai yang dipilih dalam satu variabel, untuk menyederhanakan proses. Perhatikan contoh berikut, yang menggambarkan ini:
<html>
<head> </head>
<body>
 
<?php
// Memeriksa submit
if (!isset ($_POST['submit'])) {
 // Dan menampilkan form
 ?>
 
 <form action = "<?php echo $_SERVER['PHP_SELF'];?>" method = "POST">
 <input type="checkbox" name="artist[]" value="Bon Jovi"> Bon Jovi
 <input type="checkbox" name="artist[]" value="N'Sync"> N'Sync
 <input type="checkbox" name="artist[]" value="Boyzone"> Boyzone
 <input type="checkbox" name="artist[]" value="Britney Spears"> Britney Spears
 <input type="checkbox" name="artist[]" value="Jethro Tull"> Jethro Tull
 <input type="checkbox" name="artist[]" value="Crosby, Stills & Nash"> Crosby, Stills & Nash
 <input type="submit" name="submit" value="Select">
 </form>
 
<?php
} else {
 // Atau menampilkan artist yang dipilih
 // Menggunakan foreach loop untuk membaca dan menampilkan elemen array
 if (is_array ($_POST['artis'])) {
  echo 'Anda memilih: <br />';
  foreach ($_POST['artist'] as $a) {
     echo "<i>" . $a . "</i> <br />";
  }
 } else {
  echo 'Tidak ada yang dipilih';
 }
}
?>
 
</body>
</html>
Ketika di atas formulir dikirimkan, PHP akan secara otomatis membuat variabel array, dan mengisi dengan item yang dipilih. Array ini kemudian dapat diproses dengan sebuah foreach () loop, dan item yang dipilih diambil dari itu.
Anda dapat melakukan ini dengan multi-pilih daftar juga, hanya dengan menggunakan notasi array dipilih dari “nama” atribut. Mencobanya sendiri dan melihat … dan pastikan Anda menjalankan PHP selama tutorial.