Jumat, 16 Maret 2012

Belajar PHP dan MySQL Part IV (Looping)



Menuju lebih dalam (Going Deeper)

Jika Anda telah menaruh perhatian, Anda ingat bahwa di bagian sebelumnya saya memberi Anda cepat kursus kilat di PHP kontrol dasar struktur dan operator. Saya juga menunjukkan Anda bagaimana PHP dapat digunakan untuk memproses data yang dimasukkan ke formulir Web. Dalam tutorial ini, aku akan menggali lebih dalam PHP struktur operator dan kontrol, menunjukkan kepada Anda dua operator baru, sebuah alternatif if-else () pernyataan bersyarat, dan beberapa dari PHP loop lebih menarik. Jadi, teruslah membaca … ini baru akan semakin menarik!

Beralih pada sekitar (Switching Things Around)

Alternatif if-else () kontrol struktur switch PHP-kasus () pernyataan, yang melakukan hal yang hampir sama. Terlihat seperti ini:
switch (keputusan-variabel) (
    kasus syarat pertama adalah benar:
        melakukan ini!
    kasus kondisi kedua benar:
        melakukan ini!
      ... dan seterusnya ...
)
Tergantung pada nilai variabel keputusan, kasus yang sesuai () blok dijalankan. Blok default juga dapat dibuat, untuk menangani semua kejadian-kejadian ketika nilai dari variabel keputusan tidak sesuai dengan salah satu kasus yang terdaftar () kondisi.
Aku akan membuat ini sedikit lebih jelas dengan menulis ulang salah satu contoh sebelumnya dari segi switch () pernyataan:
<html>
<head></head>
<body>
 
<?php
 
// get form selection
$day = $_GET['day'];
// check value and select appropriate item
switch ($day) {
    case 1:
        $special = 'Chicken in oyster sauce';
        break;
    case 2:
        $special = 'French onion soup';
        break;
    case 3:
        $special = 'Pork chops with mashed potatoes and green salad';
        break;
    default:
        $special = 'Fish and chips';
        break;
}
 
?>
 
<h2>Today's special is:</h2>
<?php echo $special ?>
</body>
</html>
Ada beberapa kata kunci penting di sini:
  • Sisa kata kunci ini digunakan untuk keluar dari switch () pernyataan blok dan segera pindah ke baris berikut ini.
  • Kata kunci default yang digunakan untuk melaksanakan pernyataan default ketika variabel berlalu untuk beralih () tidak memenuhi kondisi apapun yang tercantum di dalam blok.
Kesalahan newbie yang umum di sini adalah untuk melupakan sisa pada akhir setiap kasus () blok. Ingat bahwa jika Anda lupa untuk keluar dari suatu kasus () blok, PHP akan terus mengeksekusi kode di semua kasus berikutnya () blok itu bertemu.
Untuk informasi lebih pada switch () statement, lihat http://www.php.net/manual/en/control-structures.switch.php.

Kreatif conditional

Biasanya, saat membuat dan memproses formulir di PHP, Anda akan menempatkan form HTML dalam satu file, dan menangani pengolahan bentuk melalui naskah PHP yang terpisah. Namun, dengan kekuatan pernyataan bersyarat yang Anda inginkan, Anda dapat menggabungkan kedua halaman menjadi satu.
Bagaimana Anda melakukan ini? Sederhana. Yang perlu Anda lakukan adalah memberikan nama ke bentuk menyerahkan kontrol, dan kemudian periksa apakah wadah khusus variabel $_POST berisi nama ketika pertama script load up. Jika ya, formulir sudah diserahkan, dan Anda dapat memproses data, jika tidak, bahwa pengguna belum menyerahkan formulir dan karena itu Anda perlu menghasilkan awal, bentuk terisi. Jadi, dengan menguji keberadaan atau ketiadaan mengirimkan variabel ini, PHP yang pintar pemrogram dapat menggunakan naskah PHP tunggal untuk menghasilkan baik bentuk awal, dan output setelah sudah diserahkan, yang sesuai.
Berikut adalah contoh sederhana:
<html>
<head></head>
<body>
 
<?php
/* if the "submit" variable does not exist, the form has not been submitted - display initial page */
if (!isset($_POST['submit'])) {
?>
 
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Enter your age: <input name="age" size="2">
    <input type="submit" name="submit" value="Go">
    </form>
 
<?php
    }
else {
/* if the "submit" variable exists, the form has been submitted - look for and process form data */
    // display result
    $age = $_POST['age'];
    if ($age >= 21) {
        echo 'Come on in, we have alcohol and music awaiting you!';
        }
    else {
        echo 'You're too young for this club, come back when you're a little older';
    }
}
?>
 
</body>
</html>
Seperti yang anda lihat, skrip berisi dua halaman: awal, bentuk dan kosong halaman hasil yang dihasilkan setelah mengklik tombol kirim. Dalam rangka untuk menentukan halaman yang akan ditampilkan, naskah tes pertama untuk kehadiran $ _POST [ 'submit'] variabel. Jika tidak menemukannya, diasumsikan bahwa bentuk belum diserahkan, dan menampilkan daftar awal hari. Setelah formulir diserahkan, skenario yang sama akan dipanggil untuk memproses input form. Kali ini, bagaimanapun, $ _POST [ 'submit'] variabel akan ditetapkan, dan agar PHP tidak akan menampilkan halaman awal, melainkan hasil halaman yang berisi pesan.
Perhatikan bahwa untuk bekerja, tombol kirim Anda harus memiliki nilai yang diberikan kepada para “nama” atribut, dan Anda harus memeriksa bahwa nilai dalam pernyataan kondisional utama. Dan jika anda bertanya-tanya, yang $ _SERVER array adalah sebuah variabel PHP khusus yang selalu menyimpan informasi server, termasuk path dan nama yang sedang mengeksekusi skrip.
Selanjutnya, loop.

Satu per Satu (One by one)

Bagi anda yang belum terbiasa dengan istilah, sebuah loop adalah struktur kontrol yang memungkinkan Anda untuk mengulangi set sama php
pernyataan atau perintah berulang-ulang (jumlah aktual pengulangan bisa menjadi nomor yang Anda tentukan, atau tergantung pada pemenuhan satu atau lebih kondisi).
Sekarang, terakhir kali keluar Anda melihat beberapa perbandingan dan operator logika, yang membantu dalam membangun pernyataan kondisional. Karena segmen ini tutorial akan berfokus pada loop, ini adalah waktu yang tepat untuk memperkenalkan Anda dengan PHP auto-auto-increment dan pengurangan operator, yang melihat banyak digunakan dalam konteks ini.
Auto-increment operator adalah operator PHP dirancang untuk secara otomatis kenaikan nilai variabel terpasang oleh 1. Hal ini diwakili oleh dua “plus” tanda-tanda (++). Potongan kode ini harus menjelaskan hal itu:
<?php
 
// define $total as 10
$total = 10;
// increment it
$total++;
// $total is now 11
echo $total;
 
?>
Demikian, $total ++ secara fungsional setara dengan $total = $total + 1.
Ada auto-pengurangan sesuai (–), operator yang tidak tepat sebaliknya:
<?php
 
// define $total as 10
$total = 10;
// decrement it
$total--;
// $total is now 9
echo $total;
 
?>
Operator akan sering digunakan dalam loop, untuk memperbarui nilai loop counter, berbicara tentang yang …

Menjadi Kotak (Being Square)

Pertama – dan sederhana – loop untuk belajar di PHP adalah yang disebut while () loop, yang terlihat seperti ini:
while (kondisi benar) (
melakukan ini!
)
Dalam kasus ini, asalkan kondisi mengevaluasi ditetapkan sebagai benar – ingat apa yang Anda pelajari di Bagian sebelumnya? – Pernyataan PHP dalam kurung kurawal akan terus mengeksekusi. Segera setelah kondisi menjadi salah, loop akan pecah dan pernyataan-pernyataan berikut ini akan dieksekusi.
Berikut adalah contoh singkat yang menunjukkan while () loop:
<html>
<head></head>
<body>
<form action="squares.php" method="POST">
Print all the squares between 1 and <input type="text" name="limit" size="4" maxlength="4">
<input type="submit" name="submit" value="Go">
</form>
</body>
</html>
Ini adalah bentuk sederhana yang meminta user untuk memasukkan angka. Bila formulir dikirimkan, PHP script yang dipanggil harus mengambil nomor ini dan mencetak kuadrat dari semua bilangan antara 1 dan nilai yang dimasukkan. Dengan while () loop, ini adalah kesederhanaan itu sendiri:
<html>
<head></head>
<body>
 
<?php
 
// set variables from form input
$upperLimit = $_POST['limit'];
$lowerLimit = 1;
// keep printing squares until lower limit = upper limit
while ($lowerLimit <= $upperLimit) {
    echo ($lowerLimit * $lowerLimit).'&nbsp;';
    $lowerLimit++;
}
// print end marker
echo 'END';
 
?>
 
</body>
</html>
Script ini menggunakan while () loop ke depan untuk menghitung dari 1 sampai nilai $lowerLimit dan $upperLimit adalah sama.

Loop dulu, pertanyaan berikutnya nanti (Loop First, Ask Questions Later)

Sementara () loop menjalankan satu set pernyataan sementara kondisi tertentu adalah benar. Tapi apa yang terjadi jika kondisi benar pada iterasi pertama dari loop itu sendiri? Dalam contoh sebelumnya, jika anda masukkan nilai 0 pada form, while () loop tidak akan mengeksekusi sekali pun. Coba sendiri dan Anda akan melihat apa yang saya maksud.
Jika Anda berada dalam situasi di mana anda harus menjalankan serangkaian pernyataan, paling tidak, sekali, PHP menawarkan do-while () loop. Inilah yang menjadi seperti ini:
do (
melakukan ini!
) while (kondisi yang benar)
Mari kita contoh untuk lebih cepat memahami perbedaan antara while () dan do-while ():
<?php
 
$x = 100;
// while loop
while ($x == 700) {
    echo "Running...";
    break;
}
 
?>
Dalam kasus ini, tidak peduli berapa kali Anda menjalankan naskah PHP ini, Anda tidak akan memperoleh output sama sekali, karena nilai $x tidak sama dengan 700. Tapi, jika Anda menjalankan versi ini script:
<?php
 
$x = 100;
// do-while loop
do {
    echo "Running...";
    break;
} while ($x == 700);
 
?>
Anda akan melihat satu baris output, sebagai kode dalam melakukan () blok akan berjalan sekali.
Sekarang mari kita merevisi naskah PHP sebelumnya sehingga berjalan setidaknya satu kali, terlepas dari nilai yang dimasukkan ke dalam bentuk:
<html>
<head></head>
<body>
 
<?php
 
// set variables from form input
$upperLimit = $_POST['limit'];
$lowerLimit = 1;
// keep printing squares until lower limit = upper limit
do {
    echo ($lowerLimit * $lowerLimit).'&nbsp;';
    $lowerLimit++;
} while ($lowerLimit <= $upperLimit);
// print end marker
echo ' END';
 
?>
 
</body>
</html>
Dengan demikian, konstruksi do-while () loop adalah bahwa pernyataan-pernyataan seperti di dalam loop pertama dijalankan, dan kondisi yang akan diuji adalah setelah diperiksa. Ini berarti bahwa pernyataan-pernyataan di dalam kurung kurawal akan dieksekusi minimal sekali.
Baca lebih lanjut tentang while () dan do-while () loop di http://www.php.net/manual/en/control-structures.while.php dan http://www.php.net/manual/en / control-structures.do.while.php.

Melakukannya Bilangan (Doing it by Numbers)

Baik while () dan do-while () loop terus iterate selama ekspresi kondisional yang ditetapkan tetap berlaku. Tetapi bagaimana jika Anda perlu menjalankan set tertentu pernyataan sejumlah tertentu kali – misalnya, pencetakan serangkaian nomor urut tiga belas, atau mengulang set tertentu sel-sel lima kali? Dalam kasus tersebut, programmer pintar untuk meraih () loop …
The for () loop biasanya terlihat seperti ini:
for (nilai awal counter; kondisi nilai baru counter) (
melakukan ini!
)
Tampak seperti omong kosong? Yah, bertahan di sana selama satu menit … yang “counter” di sini adalah sebuah variabel PHP yang diinisialisasi dengan sebuah nilai numerik, dan melacak berapa kali loop dijalankan. Sebelum setiap pelaksanaan loop, maka “kondisi” diuji. Jika mengevaluasi ke true, loop akan mengeksekusi sekali lagi dan tepat counter akan bertambah, jika mengevaluasi false, loop akan pecah dan garis-garis berikut akan dijalankan sebagai gantinya.
Berikut adalah contoh sederhana yang menunjukkan bagaimana lingkaran ini dapat digunakan:
<html>
<head>
<basefont face="Arial">
</head>
<body>
 
<?php
 
// define the number
$number = 13;
// use a for loop to calculate tables for that number
for ($x = 1; $x <= 10; $x++) {
    echo "$number x $x = ".($number * $x)."<br />";
}
 
?>
 
</body>
</html>
Hal pertama yang saya lakukan di sini adalah menentukan nomor yang akan digunakan untuk tabel perkalian. Saya telah menggunakan 13 di sini – tanpa alasan lain dari itu rhymes with “hijau”.
Selanjutnya, aku telah membangun sebuah untuk () loop dengan $ x sebagai variabel counter, diinisialisasi ke 1. dan ditetapkan bahwa loop harus menjalankan tidak lebih dari 10 kali. Auto-increment operator (dibahas sebelumnya) secara otomatis akan menambahkan counter oleh 1 setiap kali loop dijalankan. Dalam loop, counter dikalikan dengan jumlah, untuk menciptakan tabel perkalian, dan echo () digunakan untuk menampilkan hasil pada halaman.

Membalikkan Tabel (Turning Tables)

Ketika Anda hanya melihat, sebuah untuk () loop yang sangat menarik – dan berguna – pemrograman membangun. Contoh berikut menggambarkan kegunaannya dalam cara yang seharusnya menimbulkan perasaan cinta kepada pemrogram HTML.
<html>
<head></head>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Enter number of rows <input name="rows" type="text" size="4"> and columns <input name="columns" type="text" size="4"> <input type="submit" name="submit" value="Draw Table">
</form>
 
<?php
 
if (isset($_POST['submit'])) {
    echo "<table width = 90% border = '1' cellspacing = '5' cellpadding = '0'>";
    // set variables from form input
    $rows = $_POST['rows'];
    $columns = $_POST['columns'];
    // loop to create rows
    for ($r = 1; $r <= $rows; $r++) {
        echo "<tr>";
        // loop to create columns
        for ($c = 1; $c <= $columns;$c++) {
            echo "<td>&nbsp;</td> ";
        }     echo "</tr> ";
    }
    echo "</table> ";
}
 
?>
 
</body>
</html>
Ketika Anda akan melihat pengkodean jika Anda mencoba hal yang sama dengan tangan, PHP for () loop saja menyelamatkan Anda secara keseluruhan banyak bekerja! Dan itu juga terlihat baik – lihat pada kode sumber yang dihasilkan secara dinamis tabel, dan Anda akan melihat bahwa itu baik diformat, dengan jeda baris pada akhir setiap sel tabel dan baris. Ajaib ini dilakukan dengan memaksa carriage return dengan dalam setiap panggilan untuk echo ().
Untuk informasi lebih contoh untuk () loop dalam tindakan, kunjungi http://www.php.net/manual/en/control-structures.for.php.
Loop yang sering digunakan dalam kombinasi dengan salah satu PHP tipe data yang lebih kompleks, hewan yang dikenal sebagai array. Itu keseluruhan topik dalam dirinya sendiri, dan sesungguhnya aku akan membicarakannya secara rinci dalam segmen berikutnya tutorial ini. Lalu aku akan menunjukkan kepada Anda bagaimana array, loop dan bentuk semua bekerja sama untuk membuat kompleks penciptaan bentuk-bentuk Web semudah makan kue. Semua itu dan lebih dalam pada bagian berikutnya

Tidak ada komentar:

Posting Komentar