[Powered by Google Translate] [Bagian 8] [Kurang Nyaman] [Nate Hardison] [Harvard University] [Ini adalah CS50.] [CS50.TV] Selamat datang kedua kami untuk bagian terakhir. Dalam minggu ini kita akan berbicara tentang PHP, dan kemudian minggu depan kita akan melakukan sedikit ulasan untuk Kuis 1. Kita akan mulai pada halaman 3 dari masalah set pak, dan kami akan bekerja melalui bagian dari pertanyaan yang cukup cepat. Pada halaman 3, kita mulai berbicara tentang perbedaan antara C dan PHP dalam arti bahwa PHP adalah bahasa dinamis diketik, sedangkan C adalah statis diketik, dan telah ada yang benar-benar cepat dilakukan coding dalam sesuatu seperti PHP atau Python atau Ruby sebelumnya, JavaScript? Benar-benar baru? Oke. Semua bahasa yang saya sebutkan sangat berbeda dengan bahasa seperti C dan C + + dan Java dalam arti bahwa ketika Anda mendeklarasikan variabel Anda tidak perlu mendeklarasikan apa variabel itu, sehingga di C kita terjebak harus selalu mengatakan ini akan menjadi variabel int, atau ini akan menjadi variabel char *, sedangkan dengan PHP, dengan Python, dengan Ruby, dengan banyak bahasa-bahasa yang lebih modern Anda tidak perlu melakukan itu sama sekali. Anda hanya mendeklarasikan variabel Anda, dan dalam kasus PHP Anda menyatakan bahwa itu sebuah variabel dengan awalan dengan tanda $, dan kemudian jenis variabel ditentukan oleh nilai apa pun itu memegang, yang agak dingin. Untuk bermain-main dengan hal ini agak sedikit, kita memiliki contoh kode PHP di sini di antara tag awal dan akhir. Kami menggunakan semacam ini seperti HTML dalam arti bahwa kita punya ini sudut kurung di sini untuk membuka dan menutup. Anda akan melihat ini dengan HTML. Anda akan melihat jenis yang sama dari sintaks dengan XML juga. Hal ini menunjukkan awal dari blok PHP. Ini? Php khusus untuk PHP. Kami menutup segala sesuatu dengan> juga?. Mari kita membuka file dalam alat kami menggunakan apa pun yang Anda inginkan. Dalam paket ini dikatakan untuk memanggil dynamic.php. Sebenarnya, Anda bisa menyebutnya apa pun yang Anda ingin, tetapi nama file akan muncul dan kemudian menjadi penting, jadi hanya ingat apa pun yang Anda menyebutnya. Aku akan beralih ke alat, dan aku akan membuat sebuah direktori untuk Bagian 9 Saya percaya kita berada di sekarang. Dan kita akan masuk ke bagian 9, dan aku akan menggunakan gedit. Mari kita lihat, gedit, dan aku akan menelepon dynamic.php tambang. Boom. Dalam dynamic.php, karena ini adalah file PHP dan saya ingin menjalankan ini melalui juru PHP Saya harus memulai semuanya off dengan tag tersebut terbuka, jadi aku akan mulai tepat mereka pergi, memberi diriku sedikit ruang di antara tag, dan kemudian titik dari latihan ini adalah untuk bermain-main dengan fungsi ini disebut GetType, sehingga GetType, fungsi ini di sini. Perhatikan bahwa ada yang tidak ada garis bawah atau ruang atau tanda hubung atau sesuatu seperti itu memisahkan 2 kata, mendapatkan dan ketik, hanya satu kata sama sekali. Tapi apa ini akan lakukan adalah jika saya lulus dalam variabel ke GetType, mengatakan $ var atau $ x, ini akan memberitahu saya jenis dalam format debugging apa nama jenis yang. Kita akan bereksperimen di sini. Secara khusus, jika Anda melihat kembali spec pset kita punya baris yang berbeda beberapa kode di sini. Pada baris pertama dari kode kita menginisialisasi variabel ini, $ var, untuk menjadi sama dengan 7, dan kemudian kita memiliki garis printf yang mengatakan hey, var printf kosong. Printf adalah salah satu dari banyak cara kita dapat mencetak hal-hal di PHP. Sering kali Anda akan melihat fungsi gema digunakan sebagai pengganti printf, tapi printf kita semua akrab dengan yang telah coding di C untuk sementara waktu. Apa yang benar-benar dapat lakukan adalah mari kita lihat apakah karya copy dan paste. Aku akan memberikan ini mencoba. Kami akan kembali ke alat. Oke, dan di sana kita pergi. Dan jarak agak funky, tapi di sini kita pergi. Kami punya kode ini di sini. [Mahasiswa] Apakah gaya yang tidak baik untuk tab itu? Maaf? [Mahasiswa] Apakah konvensional untuk tab itu? Benar, jadi Sam bertanya apakah itu konvensi untuk tab atau tidak. Biasanya ya. Dalam hal ini saya telah memilih untuk tidak. Jujur, Anda akan melihat hal yang berbeda antara programer yang berbeda. PHP biasanya sering digunakan dalam kombinasi dengan HTML dan bahasa lainnya, sehingga kadang-kadang pencetakan akan terlihat sedikit funky jika Anda indent dalam start PHP dan tag akhir. Ini benar-benar tergantung. Dalam hal ini copy dan paste tidak paste tab dalam bagi saya, tapi itu pasti tidak, seperti yang Anda katakan, membuatnya lebih jelas. Baiklah, jika Anda menyimpan kode ini di dynamic.php maka apa yang dapat Anda lakukan adalah turun ke jendela terminal Anda di mana saya benar di sini di gedit, dan untuk melakukan setara dengan kompilasi menggunakan membuat dan kemudian menjalankan kode Anda di C semua yang harus Anda lakukan dengan file PHP adalah start up interpreter PHP, yang merupakan program kecil yang disebut PHP, dan argumen Anda berikan kepada penafsir adalah file yang ingin Anda menafsirkan. Dalam kasus ini, dynamic.php. Whoops, di mana aku menaruhnya? Oh, aku taruh di bagian 9, dan di sinilah aku. Itulah sebabnya. Sekarang jika saya menjalankan lagi kita melihat bahwa dalam panggilan fungsi pertama saya GetType var adalah integer. Dalam var yang berikutnya adalah string, dan kemudian di var yang ketiga adalah boolean. Yang menarik dari hal ini adalah jika kita gulir kembali kita melihat bahwa ini adalah jenis yang sama dengan yang yang kita miliki di C. Kami memiliki ints di C. Kami memiliki semacam string di C, sehingga string yang bukan tipe benar-benar legit dalam arti bahwa String CS50 kami adalah benar-benar apa? Maaf? Missy? [Missy] Char *. Ya, inilah char * kita gunakan. Pada awal semester kami menggunakan tipe string, tapi itu benar-benar char * di bawah tenda. Kami hanya mengetik didefinisikan, sedangkan di PHP string ini adalah jenis yang sebenarnya. Tidak ada lagi ini jenis barang * char. Anda akan melihat bahwa kita bisa melakukan banyak hal lebih dengan string jauh lebih mudah di PHP daripada yang kita bisa di C, dan akhirnya, kita memiliki jenis boolean, dan perbedaan besar di sini adalah bahwa jika kita gulir kembali turun kita melihat bahwa nama jenis sekarang integer, string, dan boolean bukan int dan bool, dan saat Anda mengambil bahasa pemrograman yang berbeda, dengan asumsi bahwa pada beberapa titik dalam hidup Anda, Anda akan bersentuhan dengan yang berbeda Anda akan melihat kebiasaan kecil seperti ini di mana C panggilan ints bilangan bulat. Beberapa menyebutnya bilangan bulat. Ada istilah lain yang Anda akan mengalami. Int besar yang kita lihat hari ini di SQL. Ada juga nomor dan kemudian bool, boolean, segala macam perbedaan di sana. Hal ini tidak terlalu menarik tapi sekarang aku akan memberi Anda sedikit waktu- jika kita tampilannya kembali-untuk bekerja melalui latihan ini di bagian bawah halaman 3 di mana ia bertanya apa jenis sesuai dengan nilai-nilai di sini di bagian bawah. Kami memiliki 3,50. Kami memiliki hal ini di sini, yang menarik. Kami belum melihat itu sebelumnya, meskipun jika Anda sudah mengikuti dari awal dalam kuliah Anda mungkin sudah tahu apa itu. Lalu kami memiliki ini, yang ini agak funky. Anda menyadari hal ini. Apa ini di C? Sam? Apa yang akan memberi Anda di C? Ini akan membuka file bernama dynamic.php dan membuatnya mudah dibaca. Ya, dan apa yang akan menjadi jenis variabel yang kita akan menugaskan ini kepada bintang file? >>. Tepat, kami akan menugaskan ini kepada bintang file. Ini adalah PHP yang sah juga. Jalankan itu. Lihat apa yang terjadi ketika Anda melewati itu ke GetType. Dan kemudian juga memeriksa apa nol, apa yang mungkin di PHP. Saya akan memberi Anda beberapa menit. Anda benar-benar dapat menyalin dan menyisipkan nilai-nilai di, dan kemudian kita akan melakukan panggilan acak kecil pada Anda dan melihat apa yang Anda punya. [Mahasiswa] Saya punya pertanyaan. << Ya. Dalam salah satu ceramah David mengatakan ada sesuatu yang Anda dapat menempatkan di bagian atas file Anda sehingga Anda tidak perlu mengetik di PHP setiap waktu. Apa itu? Dia mungkin berbicara tentang bang pon, bang hash. Ini direktif bahwa jika Anda menandai file sebagai executable maka apa yang dilakukannya adalah ketika Anda menjalankan file akan memberitahu program shell menggunakan interpreter PHP untuk menafsirkan isi dari file tersebut. Pertanyaan yang apa ini jalur khusus bahwa kita bisa menyertakan di bagian atas file PHP kita tidak harus menyertakan ini PHP line atau perintah PHP setiap kali kita ingin mengeksekusi file? Dan Anda benar-benar dapat melakukan hal ini dengan sekelompok file yang berbeda. Saya percaya itu tergantung pada di mana biner PHP disimpan, tetapi sering usr / bin / php adalah tempat yang baik untuk memulai. Anda dapat memikirkan hal ini persis dengan kembali ke alat Anda dan mengetik mana php. Perintah yang angka keluar ketika Anda menjalankan biner atau perintah mana file yang sesuai adalah. Ini memberitahu saya bahwa PHP benar-benar aliasing ini file biner yang disimpan di usr / bin, yang mana banyak binari sistem dipasang. Sebagai contoh, jika saya gulir ke atas, sekarang aku sudah menempatkan ini #! baris di sini Aku dapat menggulir ke bawah, dan aku bisa mencoba untuk menjalankan dynamic.php, tapi saya mendapatkan error ini tentang ijin ditolak, dan apa artinya adalah bahwa file ini saat ini tidak memberikan izin dieksekusi. Ini tidak ditandai sebagai file bahwa seseorang dapat berjalan. Ketika Anda membuat atau berlari dentang dan Anda mendapat dieksekusi dari itu compiler cukup cerdas untuk mengetahui bahwa hei, aku sedang membangun dieksekusi. Anda mungkin ingin untuk melaksanakannya, sehingga secara otomatis akan mengkonfigurasi izin untuk Anda. Hal ini tidak terjadi, meskipun, ketika Anda membuat file normal dari awal, alasan yang biasanya Anda tidak ingin memiliki file apapun pada sistem Anda akan dieksekusi, sehingga Anda benar-benar harus pergi dan melakukannya secara manual. Cara termudah untuk melakukannya adalah dengan perintah chmod, dan chmod + x bilang menambahkan bit executable karena ada sedikit membaca, sedikit menulis dan bit executable, r, w dan x, dan mengatakan chmod + x akan mengaktifkan bit executable untuk kemudian file yang kita tentukan, yang dalam hal ini akan dynamic.php. [Mahasiswa] Apakah itu dihidupkan untuk semua orang? Mari kita periksa ini, jadi bagaimana aku memeriksa untuk melihat perizinan? Apakah Anda tahu bagaimana saya akan memeriksa untuk melihat hak akses file? [Respon siswa tidak terdengar] Maaf >> [Siswa]? XSD. XSD memberi kita file dalam hacks. Daftar semua file,-l, akan menunjukkan semua file dalam direktori saya jenis dalam daftar panjang mereka, verbose, dan jadi di sini kita melihat bahwa file ini dynamic.php terakhir diubah 5 November pada jam 4:21. Pemilik file ini jharvard. Itulah pengguna yang login Itulah pengguna saya bekerja sebagai, dan jika Anda juga dalam alat Anda juga bekerja sebagai jharvard pengguna. Anda berada di kelompok mahasiswa, dan ini adalah hal-hal yang Anda akan melihat cukup sering. Kita bisa pergi ke banyak detail di sini, tetapi untuk sebagian besar apa yang ingin Anda lihat ketika Anda mencari untuk melihat apakah atau tidak file executable adalah terutama pengguna yang memiliki file tersebut, pemilik, jadi ini jharvard, dan kemudian kita harus izin bit di sini di sebelah kiri, dan cara membaca ini adalah bahwa bit terakhir biasanya digunakan untuk menandai apakah atau tidak-setidaknya dalam kasus ini ini bit terakhir sering akan diatur untuk iklan untuk menunjukkan bahwa file tersebut adalah direktori dan bukan hanya file normal. Kemudian berikut 3 bit di sini menentukan hak akses bahwa pemilik file tersebut memiliki, sehingga dalam hal ini jharvard kasus ini, sebagai pemilik dari file tersebut, dapat membaca dan menulis file ini, tapi ada dash mengatakan bahwa jharvard tidak dapat mengeksekusi file ini. The 3 bit berikutnya adalah untuk kelompok, jadi ini adalah kelompok mahasiswa, jadi jika ada beberapa pengguna pada alat saya, dan kami memiliki beberapa pengguna sebagai bagian dari kelompok mahasiswa, maka mereka semua bisa membaca file ini, tetapi mereka tidak bisa menulis, dan juga orang lain, dunia hanya dapat membaca file ini juga. Ada Langgan, baik panjang tentang hal ini, sehingga Anda dapat membaca secara online. Dalam spec set masalah yang kita masuk ke ini secara lebih rinci. [Mahasiswa] Apakah 218 mengacu kepada dunia? The 218 adalah-off dari atas kepala saya, saya lupa, tapi tidak ada. Mari kita lihat. Saya blanking pada itu sekarang. Kembali ke apa yang kami akan lakukan dengan chmod + x di mana kami ingin memberikan hak akses executable dynamic.php, dan pertanyaannya adalah apakah atau tidak ini akan memberikan izin eksekusi untuk semua orang atau hanya jharvard, dan kita dapat melihat hal ini dengan menjalankan perintah dan mengetik ls-l, dan sekarang kita melihat bahwa itu ditandai sebagai executable. Anda lihat bahwa ada perubahan warna. Sekarang dynamic.php tercantum dalam hijau, dan sepertinya jawaban atas pertanyaan adalah apa, Charlotte? [Charlotte] Hanya jharvard. >> Hanya jharvard, yeah. Jika kita ingin mengubah bit executable pada untuk semua orang bagaimana mungkin kita melakukan itu? Setiap pikiran >> A? + X? Ya, tepatnya. Charlotte mengatakan kita bisa melakukan chmod dari x + dari dynamic.php, dan sekarang jika kita menjalankan ls-l kita lihat bahwa bit executable memang dihidupkan untuk semua orang. Dan Anda benar-benar dapat melakukan kebalikan dari ini, sehingga Anda dapat mematikannya untuk semua orang menggunakan minus. Sekarang itu dimatikan, dan sekarang kita bisa mengubahnya kembali untuk jharvard sehingga kita benar-benar dapat menjalankan sekarang, dan sekarang Anda lihat ketika kita menjalankan kode ini khusus #! line di atas, #! line, mengatakan shell, mengatakan terminal kami hey, ketika file ini dijalankan, menggunakan / usr / bin / php untuk menafsirkan file ini dan kemudian mencetak output. [Pertanyaan siswa tidak terdengar] Tentu, biarkan aku gulir kembali. Sama seperti ini. Anda akan melihat semua arahan mulai dengan pound ini dan kemudian tanda seru, kadang-kadang disebut bang, shebang hash. [Mahasiswa] Bagaimana kita bisa menjalankannya dengan dynamic.php php sebelum kita membuat executable? Pertanyaannya adalah bagaimana kita bisa menjalankan ini menggunakan biner PHP sementara dynamic.php tidak dieksekusi? Ini adalah super penting karena ini adalah persis bagaimana itu akan bekerja ketika Anda menulis sejumlah masalah 7. Sebagian besar file waktu PHP tidak langsung dieksekusi. Cara yang berhasil adalah karena itu adalah biner PHP yang dieksekusi. Penafsir adalah hal yang sedang dijalankan, dan jadi apa yang dilakukannya secara harfiah menyedot di seluruh isi file dynamic.php kami dan garis pergi demi baris dan melaksanakan perintah-perintah tersebut, sehingga ia menggunakan file PHP kita sebagai daftar instruksi. Ini tidak secara langsung dijalankan. Itulah di mana kita mengatakan bahwa file-file ini ditafsirkan pada waktu berjalan. Ini adalah bahasa run time bukan sesuatu yang ditentukan pada waktu kompilasi, bukan bahasa dikompilasi seperti C. Apakah ada cara untuk mendapatkan bahasa run time untuk bertindak seolah-olah itu adalah bahasa waktu kompilasi, seperti jika Anda memiliki semua berjalan dilakukan pada server bukan-Anda tahu apa yang saya maksud? Ya, jadi pertanyaannya adalah apakah ada cara untuk mendapatkan bahasa run time untuk bertindak lebih seperti jenis waktu kompilasi dari bahasa? Dan ada, maksudku, yang merupakan bidang penelitian aktif untuk banyak perusahaan-perusahaan. Saya percaya Facebook telah melakukan banyak pekerjaan dengan PHP dan menyusun ke bawah, sehingga lebih cepat, mengoptimalkan itu karena situs mereka dibangun di atas PHP. Jika anda sudah mengikuti node.js sama sekali, yang merupakan jenis juru JavaScript untuk dapat menjalankan JavaScript di luar browser, di luar browser web Anda, karena secara tradisional JavaScript hanya akan berjalan dalam Firefox atau Chrome, dan itu akan digunakan untuk membuat animasi dingin terjadi pada halaman web dan membuat halaman web Anda yang dinamis. Yang telah dibangun pada banyak pekerjaan yang telah dilakukan Google untuk membuat JavaScript dan C + + mengikat bersama-sama, sehingga ada banyak penelitian aktif untuk mendapatkan bahasa untuk berinteraksi dan mengoptimalkan mereka, terutama karena begitu banyak orang dapat kode dalam PHP dan JavaScript karena itu jauh lebih mudah. Ini jauh lebih baik. Anda tidak memiliki pointer. Anda tidak memiliki jenis mengambang sekitar. Mereka ingin mendapatkan manfaat dari bahasa waktu kompilasi dengan semua jenis pemeriksaan dan kecepatan dan penggunaan memori yang lebih rendah dan semua itu sementara tetap mempertahankan fleksibilitas dan kemudahan penggunaan yang baru. Kembali ke rencana awal kami serangan. Kami punya beberapa pertanyaan-pertanyaan di sini di spec set kami masalah. Mari kita pergi melalui mereka benar-benar cepat, dan kita akan pergi di sekitar ruangan. Charlotte, apa jenis adalah 3,50? [Charlotte] Itu ganda. >> Ini ganda. Jimmy, apa ini yang berikutnya? >> Array. Sebuah array, mengagumkan, dan Jared, apa yang fopen? [Jared] Ini sumber daya >> Ini sumber daya.. Itu jenis yang baru, bukan bintang file, bukan file. Ini sumber daya adalah jenis di PHP, dan aku minta maaf, Ella, null terakhir adalah apa? Null. Null, bagaimana itu dieja di PHP? >> Cara yang sama. Dengan cara yang sama, modal >> Ya?. Ya, baik-baik saja. Di sini kita pergi, kita punya ganda, kami punya sebuah array, kita punya sumber daya, dan kemudian kita punya nol. Mari kita lihat sekarang memiliki Anda melihat- mari kita lihat, jadi sekarang saya kira apa yang saya juga ingin lakukan adalah menarik ini halaman web di sini, ini php.net / manual, jadi jika kalian copy itu dan membuka browser web. Aku akan menarik Chrome, menempatkan bahwa masuk Saya ingin menunjukkan hal ini bukan hanya karena kita bisa bicara sepanjang hari tentang jenis dan semua hal menyenangkan melainkan karena ini adalah manual PHP, dan ada banyak programmer PHP di luar sana. Ada banyak situs PHP di luar sana, dan sebagai hasilnya, ada banyak dokumentasi di PHP, dan manual, php.net ini, adalah tempat yang benar-benar baik untuk pergi setiap kali Anda mengalami pertanyaan tentang apa cara terbaik untuk melakukan X di PHP atau apa fungsi terlihat seperti? Hanya jenis semakin akrab dengan apa ini tampak seperti karena Anda akan datang ke sini sering, sedikit untuk masalah set 7. Jika Anda akhirnya melakukan sebuah proyek akhir yang menggunakan PHP ini akan menjadi tempat Anda akan menjadi sangat akrab dengan. Seringkali cara orang melakukan ini adalah mereka menggunakan Google untuk mencari situs, dan mereka tidak menggunakan kotak pencarian yang di sini di kanan atas, yang merupakan jenis kecil. Jika Anda Googling sekitar untuk ada hubungannya dengan PHP dan Anda melihat salah satu link panduan pop up Anda biasanya dapat mengandalkan bahwa sebagai sumber daya yang cukup baik. Mengagumkan, begitu keluar dari jenis, hanya ingin tahu, mana yang belum kita lihat? Apa pun yang kita belum melihat di sini? [Mahasiswa] Sumber. >> Kami melihat sumber daya dengan panggilan fopen. [Mahasiswa] Objects Objects >> kami belum melihat pasti.. Callback kita belum melihat. Ada beberapa pseudo-jenis. Kami pasti hanya melihat integer dan ganda. Kami tidak melihat beberapa yang lain, jadi jika kita klik pada bilangan bulat kita bisa melihat apakah ada bilangan bulat lain yang mereka miliki di sini? Apakah mereka semua-begitu integer, integer, integer. Beberapa bahasa memiliki tipe integer yang lebih besar, seperti kita lihat di MySQL saat ini ada int dan kemudian int besar. Cool. Jadi, PHP manual. Mari kita kembali ke spesifikasi set kami masalah, dan sekarang kita akan gulir ke bawah ke halaman 4. Salah satu hal yang terjadi ketika Anda mendapatkan bahasa yang tidak memiliki mengetik statis, sehingga bahasa-bahasa di mana Anda harus menyatakan jenis depan sampai variabel adalah Anda mendapatkan kasus di mana Anda mungkin mulai memiliki variabel dari berbagai jenis berinteraksi satu sama lain, dan PHP melakukan hal ini di mana ia mencoba untuk melakukan apa yang dianggapnya hal yang paling masuk akal untuk dilakukan ketika Anda memiliki 2 jenis yang berbeda berinteraksi satu sama lain. Sebagai contoh, jika kita melihat ini baris kode di sini Anda melihat bahwa kami punya apa yang terjadi ketika kami mencoba dan menambahkan string 1 ke 2 integer. Apa yang terjadi jika kita mencoba dan menambahkan string yang bukan nilai numerik tapi karakter lebih aktual, CS ke nomor 50? Kemudian kita akan melihat apakah ada sesuatu yang berbeda yang terjadi di mana bukannya menambahkan string ke nomor kita menambahkan nomor ke string, dan seterusnya dan sebagainya ke titik di mana kita mendapatkan semacam hal aneh di sini di mana kita punya 7 + sejati. Apa sih artinya? Jika kalian pergi ke depan dan paste beberapa kode ini ke alat Anda. Anda dapat menyimpannya di dynamic.php. Kita akan lihat apa yang terjadi. [Mahasiswa] Hanya menggunakan cetak, tidak printf? Ya, sehingga Anda akan menemukan bahwa cetak juga merupakan fungsi yang valid untuk mencetak di PHP. Ada banyak cara yang berbeda untuk melakukannya. Kita akan melihat dengan beberapa contoh di kemudian hari setelah kami mulai berbicara tentang masalah unik yang kita akan menulis dan kemudian masalah konsentrasi bahwa kita akan menulis bahwa meskipun kita memiliki fopen dan fclose itu sering tidak cara paling sederhana untuk membaca di isi file. PHP memiliki banyak dari C-seperti peninggalan. [Mahasiswa] Ketika saya dimasukkan ke dalam semua 6 hal-hal saya hanya mendapatkan satu nomor sebagai output. [Nate H.] Bila Anda memasukkan semua 6 hal ini. Mari kita lihat itu karena itu mungkin- satu hal adalah bahwa panggilan cetak tidak dihentikan pada akhir dengan baris baru. Ada yang tidak ada baris baru memisahkan masing-masing panggilan cetak, jadi mungkin Anda mendapatkan satu nomor besar, dan itu benar-benar hanya campuran dari karakter baris baru. [Mahasiswa] Oke, bagaimana saya pastikan- Nah, ada beberapa cara yang berbeda. Anda secara manual bisa dimasukkan ke dalam sebuah cetak dari sebuah karakter baris baru, gema dari karakter baris baru, mencetak baris baru. [Mahasiswa] Jadi gema adalah hal yang sama seperti printf? Printf seperti C printf di mana Anda mencetak string diformat. Kau memasok format string dan kemudian semua variabel placeholder. Ini sering sesuatu yang tidak digunakan- mari kita lihat, sebagai disclaimer, Saya kurang akrab dengan PHP dari saya dengan bahasa web lainnya, dan ketika saya telah diprogram dalam PHP Saya biasanya tidak menggunakan printf karena saya merasa lebih cepat untuk menggunakan kemampuan tali interpolasi yang memiliki, yang kita akan pergi ke dan saya akan menunjukkan kepada Anda hanya dalam satu detik, sedangkan di C kita semacam harus melakukan hal Hacky untuk mendapatkannya untuk mencetak dengan benar. Anda benar-benar dapat menempatkan variabel langsung ke string di PHP. Printf adalah jenis terlalu lama untuk apa yang biasanya saya lakukan. Ya, Ella. [Ella] Umumnya jika Anda mendapatkan error artinya- seperti di C itu tidak memberitahu Anda tepat di mana kesalahan dan apa itu, sehingga artinya melihat melalui seluruh kode Anda dan mencari tahu? Ini biasanya lebih ditargetkan dari itu. Saya pikir dalam kasus itu sedikit off, jadi saya pikir dalam kasus yang kita hilang titik koma. Itu berusaha untuk memahami segalanya, sehingga seperti ini bahasa ditafsirkan, penafsir akan mencoba dan melakukan yang terbaik untuk membuat semuanya bekerja dengan tepat. Anda akan melihat, misalnya, dalam JavaScript Anda akan sering-line pernyataan diakhiri dengan titik koma seperti yang mereka lakukan di PHP, seperti yang mereka lakukan di C. Dalam JavaScript beberapa interpreter JavaScript dalam banyak browser akan dimasukkan ke dalam titik koma untuk Anda jika Anda kebetulan akan kehilangan mereka. Mereka akan mencoba dan mengakomodasi untuk beberapa kecerobohan di pihak Anda. Di situlah mungkin akan mencoba dan mencoba dan mencoba untuk membuat hal-hal pekerjaan, dan kemudian akhirnya akan sampai ke titik di mana ia mengatakan apa-apa, Saya tidak bisa membuat hal-hal bekerja pada bailing, dan di sanalah Anda akan mendapatkan nomor baris yang mungkin tampak sedikit off dari tempat yang tepat. Oke, jadi mari kita pergi melalui ini benar-benar cepat. Kami meninggalkan off dengan Ella, jadi mari kita pergi ke Missy, dan Missy, apa cetak string 1 ditambah nomor 2 memberi Anda? [Missy] 3 >> 3.. Apakah itu masuk akal? Semacam? Apakah itu memberikan nomor? Apakah itu memberi Anda sebuah string? [Missy] Sejumlah >> Ini nomor.. Tapi itu mencetaknya, sehingga akan memberikan semacam string. Satu hal yang bisa kita lakukan untuk memeriksa ini adalah jika kita lakukan $ var = 1 + 2 dan kemudian kita katakan gema GetType, jadi kita menggunakan jenis ketiga mencetak sini. Sekarang kita dapat melihat apa yang terjadi di sini. Berikut apa yang kita punya adalah kami mendapat integer keluar dari ini. Meskipun kami menambahkan string ini ke suatu nomor, kami tidak mendapatkan string dari itu, seperti kata Missy. Kami mendapatkan integer. Oke, jadi mari kita lihat, berikutnya, Kevin. CS + 50 >> [Kevin] 50?. [Nate H.] 50. Apakah itu masuk akal? [Kevin] Ya. [Nate H.] Kenapa? Mengapa masuk akal untuk Anda? [Kevin] Karena itu hanya memiliki string, memiliki angka nol nilai. Ya, bagus. Jenis situasi ambigu, tapi itu baik untuk mengetahui apa yang terjadi. Stella, apa yang terjadi selanjutnya dengan nomor 1 + string 2? [Stella] 3 >> 3 lagi.. Dan dalam hal ini, kita mendapatkan string atau angka? Mari kita memberikan ini mencoba. Siapa lebih cepat daripada saya mendapatkan jawabannya? Charlotte? Oh, Aku tidak-apa-apa, mari kita lihat, kita akan melakukan hal yang sama di mana kita punya nomor ditambah string, dan kami akan echo jenis, melihat apa yang kita dapatkan. Kami juga mendapatkan integer. Tidak peduli yang mana adalah string, yang satu adalah nomor. Kami masih akan mendapatkan integer. Ini masih akan melakukan apa yang kita harapkan. Baiklah, jadi Sam, bagaimana dengan 90 + 9 botol bir di dinding? [Sam] 99 >> 99.. Tidak ada botol bir di dinding, meskipun. Ini memberi kita informasi lebih banyak tentang apa yang terjadi. [Sam] Jika Anda telah menulis 9 dalam huruf maka Anda akan memiliki 90, kan? [Nate H.] Ya. Pertanyaannya adalah jika kita telah menulis 9 sebagai N-I-N-E akan kita mendapatkan 99 atau 90? Kita akan mendapatkan 90. Ini benar-benar hanya mencari karakter digit. Ini tidak cukup cerdas untuk mengenali kata-kata jumlah dan hal-hal itu. Ya. [Mahasiswa] Apakah ada hal seperti itu sebagai typecasting di PHP? Ada, dan itu persis seperti yang Anda akan melakukannya di C. Bagaimana dengan 10/7, Charlotte? [Charlotte] 1,4285. [Nate H.] Ya, jadi apa mungkin mengejutkan tentang hal ini? Apa yang akan terjadi jika Anda melakukan ini hal yang sama di C, jika Anda melakukan 10/7 di C? [Charlotte] Ini hanya akan memberi Anda-tergantung pada bagaimana Anda typecast kurasa itu akan memberi Anda hanya sejumlah digit setelah desimal. Ya, sehingga sejumlah digit setelah desimal. Apa lagi yang mungkin-akan hal itu memberi Anda setiap digit setelah desimal? Sering tidak, jadi sekali lagi, tergantung pada bagaimana Anda typecasting itu mungkin atau tidak mungkin mengubahnya menjadi angka floating point. Di sini itu agak bagus yang itu. Seandainya kami menunjukkan Anda kembali ini ketika kita mulai melakukan hal semacam ini di C itu mungkin akan masuk akal sedikit lebih bahwa hal itu tidak hanya pergi ke 1. Dan akhirnya, Jamie, bagaimana dengan 7 + benar? [Jamie] 8. >> 8. Apa artinya? Saya kira itu hanya memberi benar nilai 1. Ya. Apa yang terjadi jika kita mengubahnya ke false? [Mahasiswa] 7. Ya, jadi ingat di mana kita berbicara tentang nilai-nilai biner, 1 berada di, 0 yang batal? Sekarang kita memiliki yang benar adalah 1, 0 adalah palsu, dan Anda mungkin tidak melihat ini dalam contoh C yang kami lakukan ini semester terakhir, tetapi secara historis tipe bool di C belum menjadi jenis nyata, sehingga orang telah menggunakan 0 dan 1 di tempat yang benar dan palsu. Ini adalah manifestasi dari itu. Oke, jadi satu bagian penting tentang semua ini adalah bahwa kita memiliki jenis yang berbeda. Mereka dapat berinteraksi satu sama lain. Mereka sering dapat berinteraksi satu sama lain dengan cara yang bagus, seperti yang kita lihat di sini. Sangat menyenangkan untuk dapat memiliki string 1 dan nomor 2, menambahkan mereka bersama-sama dan mendapatkan 3. Itu masuk akal. Namun, ketika Anda sedang menulis situs web, dan terutama ketika Anda sedang memproses input pengguna, sehingga mengatakan Anda telah menulis sebuah formulir web yang mengumpulkan informasi dari pengguna dan kemudian pergi untuk memprosesnya di ujung belakang, pada sisi server dalam kode PHP Anda jika Anda mengharapkan bahwa nilai bahwa pengguna mengetik dan diserahkan untuk membentuk Anda menjadi integer atau menjadi nomor floating point atau sesuatu seperti itu Anda perlu secara eksplisit dilemparkan dan kemudian melakukan beberapa jenis pemeriksaan. Anda tidak ingin hanya mengandalkan pada sistem juggling jenis untuk membuat sesuatu bekerja keluar, terutama untuk alasan keamanan dan hanya untuk kekokohan website Anda. Hanya sesuatu yang perlu diingat bahwa setiap kali Anda menangani data formulir, apa pun yang datang dalam pos atau superglobals get pastikan bahwa Anda selalu memvalidasi itu dan mengubahnya dan typecast itu. Dan seperti yang kita bicarakan saat yang lalu typecasting yang dalam PHP adalah persis sama seperti di C di mana Anda memiliki kurung dan kemudian jenis. Perlu diingat bahwa. Salah satu fungsi yang akan berguna ketika Anda melakukan ini adalah kita telah menggunakan-dan ini adalah jenis sebagai samping- kami telah menggunakan fungsi ini GetType di sini untuk mengetahui jenis variabel, dan sementara ini berguna untuk debugging dan untuk melihat apa jenis variabel adalah Anda tidak ingin menggunakan ini, misalnya, dalam kondisi dimana Anda sedang memeriksa untuk melihat apakah GetType dari $ var = bulat melakukan sesuatu. Ini adalah buruk, buruk, buruk. Sebaliknya ada fungsi-fungsi yang disebut adalah integer, adalah string, adalah array yang ingin Anda gunakan sebagai gantinya, sehingga dalam kasus ini apa yang saya ingin lakukan bukannya orang ini di sini adalah menggunakan adalah var integer. Dan mereka sering disebut adalah * is_ dalam arti bahwa Anda bisa mengganti * dengan bilangan bulat, string, dan sebagainya, dan hanya untuk memastikan benar-benar cepat ini adalah int php. Sepertinya Anda dapat melakukan keduanya adalah int atau ada adalah integer juga? Ya, alias, alias bulat sehingga int. Cool. Bagaimana kita lakukan? Mari kita mengambil langkah sedikit. Sekarang kita akan berbicara tentang array, sehingga Anda dapat melihat di bagian selanjutnya dari spec kita berbicara tentang bagaimana array di PHP sedikit berbeda daripada di C. Sebenarnya, mereka agak campuran dari array yang Anda telah datang ke kenal dan cinta di C di mana segala sesuatu adalah dari jenis yang sama disimpan secara berurutan dan contiguously dalam memori, dan Anda memiliki indeks numerik. Anda memiliki indeks 0, indeks 1, indeks 2, dan Anda menyimpan nilai-nilai tersebut di indeks. Anda juga di C, ketika Anda menulis Speller, banyak dari Anda melakukan pendekatan tabel hash, dan Anda melihat bahwa di sana kami memiliki berbagai jenis penyimpanan di mana kami pemetaan kunci untuk nilai, sehingga ketika Anda mencoba untuk menyimpan sesuatu dalam tabel hash Anda harus menentukan bahwa Anda ingin menyimpannya dengan kunci tertentu, dan kunci yang menentukan lokasi nilai dan di mana itu akan disimpan. Kau seperti punya kedua konsep tersebut terjadi pada saat yang sama dalam array PHP, dan sebagai hasilnya, kita sering menyebut array asosiatif di mana kita bergaul kunci dalam nilai. Pada bagian berikutnya kita berbicara tentang array PHP sederhana di mana kita memiliki kunci yang b, dan c, semua string, pemetaan ke, bilangan bulat 1 2, dan 3. Dan Anda dapat memiliki kunci dari berbagai jenis. Anda dapat memiliki beberapa kunci yang string, beberapa kunci yang bilangan bulat. Anda dapat memiliki nilai dari berbagai jenis. Anda dapat memiliki nilai yang string, nilai yang integer, nilai yang merupakan objek atau array lain, misalnya, semua dalam objek array yang sama, yang agak aneh. Anda tidak harus memiliki sebuah array yang hanya punya satu jenis elemen di dalamnya. Anda dapat memiliki banyak hal yang berbeda terjadi di sana. Hal lain yang perlu diperhatikan adalah bahwa ketika Anda melihat sesuatu seperti ini dalam kode Anda, yang merupakan PHP berlaku untuk mendeklarasikan array seperti ini, 0, 1, 2, 3, 4, 5, yang akan mendeklarasikan $ arr diinisialisasi menjadi array ini. Tapi apa yang Anda benar-benar mendapatkan di bawah tenda adalah semacam ini implisit generasi kunci di mana kita punya 0 to 0, 1 ke 1, 2 dengan 2, 3 sampai 3. Dan ternyata bahwa bahkan jika Anda memiliki sebuah array seperti orang ini di sini di mana Anda memiliki, b dan c sebagai kunci dan kemudian Anda mulai menggunakan metode push array untuk mulai menggunakan array ini seperti stack, sehingga Anda dapat melihat bahwa ini objek array, array ini benar-benar menjadi kelebihan beban. Kita dapat menggunakannya sebagai array. Kita dapat menggunakannya sebagai tabel hash. Kita dapat menggunakannya sebagai stack. Ketika Anda mulai mendorong hal-hal ke array ini hal pertama yang Anda mendorong ke ini akan menjadi indeks 0 dan kemudian indeks 1 dan indeks 2. Anda bisa mendapatkan jenis generasi implisit kunci kecuali jika Anda menentukan secara eksplisit. Cara Anda menentukan kunci-kunci eksplisit, tentu saja, adalah dengan menggunakan notasi bracket, yang mirip dengan array kecuali bukan hanya mengizinkan indeks bilangan bulat di sini, sekarang kita membiarkan apa pun. Jika Anda ingin kunci Anda menjadi string, Anda akan menentukan seperti ini. Jika Anda ingin menjadi int, Anda tentukan dengan int yang ingin Anda gunakan. Pertanyaan pada yang sejauh ini? Salah satu hal yang menyenangkan tentang ide ini adalah bahwa Anda dapat hanya pernah memiliki satu nilai yang disimpan dengan kunci tertentu. Jika kita kembali ke kami alat-biarkan aku menghapus beberapa hal ini. Dan katakanlah saya menginisialisasi sebuah array menjadi 0, 1, 2, dilakukan. Jika saya sekarang tahu bahwa, misalnya, jika saya echo $ arr [0] Aku akan mendapatkan nilai 0 dicetak, dan karena hanya ada yang pernah menjadi salah satu nilai yang disimpan untuk kunci tertentu jika saya menyimpan sesuatu di $ arr [0], mengatakan, maka saya tahu ketika saya echo $ arr [0] lagi Aku tidak akan mendapatkan 0 dicetak seperti sebelumnya. Aku hanya akan mendapatkan. Jadi ini pada dasarnya mengatakan bahwa saya tidak dapat memiliki $ arr [0] menyimpan 2 nilai yang berbeda. Hal ini tidak bisa menyimpan baik 0 dan string, seperti ini benar-benar menggantikan apa yang berada di $ arr [0] sebelumnya. Alasan saya membawa ini menjalankannya, melihat apa yang terjadi. Lihat di sini bahwa saya mendapat 0 dicetak dan kemudian di sini. Tidak ada baris baru di sana karena saya malas dan tidak menempatkan yang masuk Apa yang keren tentang ini adalah kita dapat menggunakan ini sebagai cara untuk menangkap ide ini set di mana kita tidak bisa memiliki beberapa tombol dalam array. Kita tidak bisa memiliki kunci identik dalam sebuah array. Saya tidak dapat memiliki tombol 0 dan nilai 1 dan 0 kunci dan nilai atau tombol 0 dan nilai sebenarnya. Kunci semua-hanya ada 1 kunci dalam array. Meskipun Anda dapat memiliki nilai yang sama disimpan beberapa kali dalam array di bawah kunci yang berbeda itu tidak mungkin untuk memiliki kunci identik beberapa kali dalam array PHP Anda. Jika kita melihat ini masalah berikutnya, unique.php, di mana kita ingin membuka file PHP berisi daftar string, satu string per baris, dan kami ingin menemukan semua string yang unik dalam file tersebut yang harus kita lakukan adalah menggunakan salah satu array PHP dan menggunakan string dalam file sebagai kunci array ini dan terus mengupdate array kita seperti kita menyimpan kunci-kunci baru. Seperti yang kita baca setiap baris dari file yang kita dapat menyimpannya dalam array, dan pada akhirnya kita akan memiliki sebagai kunci kami dalam array kami semua string yang unik dalam file. Apakah itu masuk akal? Mari kita lihat bagaimana ini bekerja. Kita akan membuka, sesuai dengan spec, sebuah file baru yang disebut unique.php. Buka. Ups, maaf, file baru. Kita akan memulai itu dengan tag awal dan akhir yang sama. Kita akan menyimpannya di bagian 9, dan kita akan menyebutnya unique.php. Oke, sekarang tampilannya masuk Idenya di sini adalah membuka file, membaca file baris demi baris. Untuk setiap baris dalam file kita akan memiliki sebuah array di mana kita memiliki  garis sebagai kunci kami. Dan kemudian ketika kita sampai ke akhir di sini Kunci $ arr ini adalah garis yang unik dari file karena kita tahu bahwa jika saya menempatkan baris dalam array ini beberapa kali itu hanya akan terus menimpa nilai lama, dan kita benar-benar dapat menempatkan line array sebagai dirinya sendiri begitu saja. Ini agak aneh. Kami menyimpan nilai pasangan kunci yang sama berulang-ulang, tapi karena kita dijamin bahwa akan ada hanya 1 kunci yang disebut garis jadi jika kita memiliki sebuah file yang mengatakan-file dari suara-suara binatang dan memiliki guk, guk, meong, meong, moo, moo, dan setiap kali kita membaca sebuah suara hewan keluar seperti pakan dan kami menyimpannya dalam array kita kita mendapatkan pakan, dan kemudian kedua kalinya kita menyimpan guk akan menimpa pertama kalinya bahwa kita menyimpannya. Pada akhirnya kita hanya akan memiliki satu entri dalam array untuk setiap suara-suara binatang dalam file suara satwa kita. Apakah kalian merasa yakin bahwa Anda dapat menangani pembukaan sebuah file di PHP? Salah satu cara untuk melakukannya-mari kita membahas cara ini cepat-satu untuk melakukannya adalah dengan fopen, seperti kita lihat sebelumnya. Anda dapat fopen some_file.txt. Anda dapat membukanya dalam modus baca, seperti di C. Itu salah satu cara yang sangat baik untuk melakukannya. Anda juga maka untuk membaca file baris demi baris memiliki fungsi yang sama, banyak dari mereka, yang Anda lakukan di C. Anda memiliki fgets. Anda memiliki feof, meskipun kita tidak suka menggunakan yang karena, ingat, itu tidak besar di C. Anda dapat melakukannya dengan cara yang sama, tapi di sini adalah hal yang benar-benar keren. Maaf, saya tidak ingin melakukan $ file, tapi ada fungsi yang disebut file di PHP, dan fungsi ini di sini adalah sejuk karena membaca seluruh isi dari file yang Anda tentukan, sehingga some_file.txt, membaca seluruh isi file ini ke dalam array dan kemudian memungkinkan Anda iterate lebih dari itu, yang cukup bagus. Jika kita pergi, misalnya, ke browser web kami dan kita melihat Google untuk file PHP Anda dapat melihat di sini bahwa pengguna kami mengatakan file yang membaca berkas tersebut ke dalam array, dan kita bisa file_get_contents untuk mengembalikan isi file sebagai string, tetapi biasanya hanya mendapatkan itu sebagai array benar-benar baik karena apa yang dilakukannya yang rusak itu sehingga setiap elemen dalam array adalah satu baris dari file tersebut, jadi jika kita melihat file 0, itu baris pertama dari file. File 1 line, kedua, file 2, baris ketiga, dan seterusnya dan seterusnya. Bukankah akan lebih baik jika itu semua Anda harus dilakukan di C? Cukup bagus. David menunjukkan hal ini di kuliah, dan idiom ia menunjukkan itu bahwa selain standar kami untuk loop-in PHP kita punya for ($ i = 0; i <10; i + +), dan Anda dapat melakukan ini di PHP juga, sama hal- kami juga memiliki konstruksi keren disebut foreach. Foreach benar-benar berguna ketika iterasi array atau struktur data karena memungkinkan Anda untuk menarik keluar setiap elemen dari array tanpa harus secara manual melakukan pengindeksan sendiri, tanpa harus secara manual membuat variabel indeks, kenaikan itu, tarik keluar nilai dalam array pada saat itu, karena itu adalah hal yang sangat umum yang dapat dilakukan. Anda mungkin telah melakukan hal itu ton saat-saat ketika Anda melakukan hal-hal C selama semester, sehingga dengan foreach kita bisa loop atas array file, dan sintaks adalah bahwa kita ingin sekarang loop selama array ini dan menentukan bahwa variabel kita akan gunakan untuk menyimpan unsur ini array lokal, lokal untuk lingkup ini loop foreach, adalah kita akan menyebutnya garis. Jika itu adalah file hanya kata-kata dan ada satu kata dalam satu baris kita bisa menyebutnya kata juga, benar-benar hanya Anda memberikan nama, apa pun yang Anda ingin menyebutnya, dan kemudian dalam loop Anda dapat melakukan apapun yang Anda inginkan dengan baris ini variabel. Jika itu tidak cukup untuk mendapatkan nilai array dan Anda juga ingin mendapatkan indeks bersama dengan itu Anda dapat menentukan nama untuk indeks serta nilai, dan sekarang Anda memiliki akses ke 2 variabel. Anda memiliki $ i dan baris di mana $ i adalah indeks dalam array, dan garis adalah garis yang diambil dari file tersebut. Sebagai contoh, jika kita ingin mencetak gema 0 baris dari file seperti ini, kita bisa melakukannya seperti ini, "Line $ i file adalah $ line," dan di sini adalah sesuatu yang kami juga belum melihat belum baik mana aku hanya benar-benar melompati ini% s% d seluruh bisnis bahwa kita harus berurusan dengan di C, dan sebagai gantinya aku pergi langsung ke menulis variabel dalam baris dalam string saya. Ini disebut interpolasi variabel, string interpolasi di mana Anda memasukkan variabel tepat di, dan interpreter PHP cukup pintar ketika itu membaca sebuah string yang dimulai dengan tanda kutip ganda- bukan tanda kutip tunggal, dengan string dikutip tunggal Anda tidak bisa melakukan ini- tetapi dengan string dikutip ganda seperti membaca melalui itu sedang mencari variabel. Ini memburu mereka, dan jika melihat variabel itu akan mengambil nilai dari variabel dan memasukkannya ke string jika dapat mengubahnya menjadi representasi string, yang cukup bagus. Untuk saat ini, mari kita komentar keluar sisa dari segala sesuatu, menyimpan, dan apa yang bisa kita lakukan sekarang adalah kita dapat membuka file bahwa kita dapat memanggil some_file.txt-mari kita membuat file baru- dan kita bisa dimasukkan ke dalam banyak hal omong kosong di sini hanya untuk menguji semuanya, menyimpannya, sebut saja some_file.txt, seperti yang saya lakukan di sini di atas, dan sekarang jika saya zoom out hanya untuk memastikan semuanya dalam direktori yang sama- sepertinya saya memiliki unique.php dan some_file.txt dalam direktori yang sama. Jika saya menjalankan unique.php php melihat bagaimana ia akan mencetak setiap baris dalam file saya dan apa garis adalah? Itu cukup kuat, kan? Dengar, butuh 3 baris kode untuk membuka file. Nah, 4 baris kode. Saya tidak bisa menghitung hari, jelas. Tapi benar-benar hanya 2 baris kode yang menarik, karena 2 lainnya adalah kurung kurawal, tetapi dalam kode ini banyak kita mampu untuk membuka file, iterate melalui itu, menarik keluar nomor baris dan garis itu sendiri dan mencetaknya. Cool stuff. Charlotte. [Charlotte] Saya punya pertanyaan tentang sintaks. Jadi foreach penawaran dengan setiap baris dari file yang Anda buka, dan kemudian ketika Anda ingin melakukan hal-hal dengan setiap baris Anda hanya melakukannya sebagai dan kemudian mengasosiasikan nilai. [Nate H.] Apa yang dapat Anda lakukan di sini-pertanyaan itu foreach ada hubungannya dengan array, sehingga sintaks foreach benar-benar foreach, dan perhatikan bahwa ada tidak ada ruang atau apa pun antara untuk dan masing-masing. Mereka harus pergi tepat di samping satu sama lain, dan kemudian dibutuhkan dalam array, dan kemudian Anda memiliki kata kunci lain yang disebut sebagai yang harus ada di sana, dan kemudian setelah karena Anda dapat menempatkan satu nama variabel, dalam hal ini Anda akan menarik keluar nilai-nilai dari array, bukan indeks, atau jika Anda melakukannya seperti yang kita telah tertulis di bawah Anda mendapatkan kunci dan nilai-nilai. Anda memiliki elemen dari array foreach atau sepasang array sebagai bersemangat untuk nilai atau hanya sebagai nilai. Tergantung pada apa yang Anda butuhkan, jika Anda tidak memerlukan kunci, maka Anda dapat pergi dengan nilai. Jika Anda ingin tombol Anda dapat pergi dengan mereka juga. [Charlotte] Saya juga menyadari bahwa kami tidak pernah menyatakan i atau baris. Bagaimana bahkan tahu apa yang mereka? [Nate H.] Apa yang Anda maksud dengan menyatakan? [Charlotte] Kami tidak pernah mengatakan kepada mereka apa yang saya atau garis berarti. [Nate H.] Kami tidak pernah mengatakan kepada komputer apa yang saya atau garis berarti dalam hal- [Charlotte] Bahwa mereka diindeks atau bahwa mereka- [Nate H.] Kami tidak pernah mengatakan bahwa ini seharusnya menjadi indeks atau kunci dan nilai, dan itu karena itulah interpreter PHP. Ini berfungsi sebagai deklarasi dan mengatakan apa-apa, kuncinya akan menjadi variabel yang disebut i disimpan dalam sebuah variabel yang disebut i. Nilai ini akan disimpan dalam sebuah garis yang disebut variabel, jadi ini berfungsi sebagai deklarasi dari variabel-variabel dan mengatakan $ i adalah kunci, dan $ garis adalah nilai. Ya, Ella. [Ella] Jika tombol tidak dilakukan secara numerik bagaimana cara memutuskan apa urutan itu akan mencetak segala sesuatu? Apakah seperti urutan itu dimasukkan dalam? [Nate H.] Mari kita mencobanya. Mari kita membuat sebuah variabel yang disebut arr, dan kita bisa melakukan pergi ke 7. Katakanlah 0 pergi ke array lain dengan 1, 2, atau apel. Katakanlah 7 pergi ke 1, b pergi ke 2, dan 3 pergi ke 4. Ini adalah jenis contoh mencari gila karena kita mencampur string dan integer seluruh tempat. Tidak ada perintah nyata untuk array ini. Maksudku, kita bisa memesan segala sesuatu dalam urutan abjad oleh kunci. Kita bisa memesan semuanya abjad oleh nilai. Kita bisa mencoba dan mempertimbangkan bahwa beberapa string, beberapa ints, dan kami bisa mencoba dan mengubah mereka semua dengan jenis yang sama dan melihat apa yang terjadi, atau kita bisa menganggap mereka dalam nilai di mana kita sudah memasuki mereka di mana kami menempatkan orang ini di pertama, orang ini di urutan kedua, ketiga orang ini di, orang ini di keempat sebagainya, et. Mari kita lihat apa yang terjadi ketika kita menjalankan kode ini. Jika kita scroll ke bawah dan melakukan hal yang sama, dan di sini itu tidak mencetak baris baru. Ketika membaca hal-hal keluar dari file itu termasuk baris baru dalam nilai-nilai, yang mengapa dicetak dengan baik, sedangkan di sini tidak, jadi itu sebabnya semuanya smushed bersama-sama. Mari kita tambahkan dalam baris baru hanya untuk membuat hal-hal yang baik. Mari kita jalankan kembali, dan jadi di sini melihat apa yang terjadi. Ini dicetak semuanya dalam urutan yang kita memasukkannya ke dalam array. Ini mempertahankan ketertiban dalam pengertian itu. Kembali ke masalah ini unik di mana kita ingin dapat iterate atas file, dan kami akan memberikan some_file.txt, dan kita akan iterate di atasnya seperti ini. Kami mengatakan bahwa kami ingin menggunakan array untuk memastikan bahwa kita akan mendapat semua garis yang unik keluar dari sana, dan kita bisa melakukan itu benar-benar mudah dengan hanya menyimpan dalam array yang kita tentu mendeklarasikan di luar lingkup lingkaran, dan kami mengatakan bahwa jika kita menggunakan baris dalam file sebagai kunci dalam array kami jika kita memasuki garis duplikat kami akan menimpa nilai sebelumnya. Ini tidak pernah mungkin untuk memiliki 2 kunci yang identik dalam array yang sama. Kita bisa melakukan hal itu. Kita akan menyingkirkan pernyataan gema di sini. Di sini kita menyimpan baris dalam file dalam array kita menggunakan dirinya sebagai kunci. Tidak ada yang ke sana, dan ternyata bahwa kita bahkan tidak perlu kunci ini. Kita tidak perlu bahwa saya variabel. Pada titik ini jika kita melakukan lain loop foreach dan kami adalah untuk loop atas setiap arr dan garis sekarang jika kita echo-oops, maaf. Kita tidak bisa menggunakan koma. Kami harus menggunakan ini sebagai kata kunci. Sekarang jika kita menggemakan baris kita harus mendapatkan semua kata-kata unik dalam file. Jika kita pergi ke some_file.txt, dan katakanlah kita lakukan apel, pisang, apel, apel, pisang, jika kita mencetak semua kata-kata unik dalam file ini kita hanya harus mendapatkan apel dan pisang untuk mencetak. Jika kita menyimpan, sekarang di sini kita akan tampilannya kembali, php unique.php, dan ta-da. Kami telah berhasil uniqued file. Bagian akhir dari masalah ini adalah meminta Anda untuk mengurutkan array ini sebelum Anda mencetaknya karena dalam contoh sederhana yang baru saja kita lakukan kami beruntung dalam arti bahwa file- kami melakukan ini contoh buat dengan apel dan pisang. Itu sudah diurutkan. Tetapi menggunakan fungsi semacam sederhana Anda dapat mengurutkan sebuah array, yang cukup bagus. Hal terakhir yang saya ingin berbicara dengan kalian tentang benar-benar cepat adalah bahwa ini semacam PHP adalah semua baik dan bagus, dan itu super berguna untuk mengetahui bagaimana yang harus dilakukan jika Anda merasa perlu untuk melakukan sedikit, hal yang cepat pemrograman. Sebagai contoh, jika saya harus menulis sebuah program yang, katakanlah, menempatkan orang ke dalam bagian aku tidak akan pergi dan menuliskannya dalam C. Ini akan menjadi panjang. Ini akan menjadi semacam sakit, terutama jika ada file yang terlibat, sama seperti kalian telah melihat. Hal ini sangat baik bahwa hanya dengan kode ini banyak di sini kami mampu merobek melalui file, mengeluarkan semua nilai-nilai unik dan mencetaknya kembali. Namun, untuk tugas Anda, untuk proyek-proyek Anda, jika Anda sedang membangun website dengan PHP listrik adalah bahwa kita menjalankan file PHP kita melalui penerjemah ini, dan penafsir sedang memproses segala sesuatu dalam tag PHP, meninggalkan segala sesuatu yang lain tidak tersentuh dan meludah keluar hasilnya. Kita dapat melakukan ini untuk membangun HTML pemrograman. Sekarang, jika kita kembali ke spec, masalah terakhir di spec berbicara tentang ide konsentrasi dan menciptakan menu drop-down, yang Anda mungkin atau mungkin tidak ingin melakukan, tergantung pada apa tugas akhir Anda lakukan, yang memungkinkan pengguna untuk memilih dari daftar semua konsentrasi yang mungkin mereka satu konsentrasi. Sekarang, ini adalah jenis rasa sakit mengetikkan ini dan harus melakukan semua ini secara manual, terutama ketika Anda harus memastikan bahwa Anda memiliki semua sudut kurung di tempat yang tepat dan semua tanda kutip di tempat yang tepat, sehingga dengan PHP Anda dapat melakukan hal ini pemrograman, dan Anda dapat melakukan ini benar-benar cepat. Mari kita lihat bagaimana melakukan hal ini. Kita akan membuka file baru. Kita akan dimasukkan ke dalam tag PHP kita. Kita akan menyebutnya concentrations.php, dan sekarang ketika Anda melakukan hal ini, seperti hal yang baik untuk berpikir tentang ketika Anda mencoba untuk mencampur dan mencocokkan PHP dan HTML adalah mencari tahu, oke, apa bagian yang saya ingin menghasilkan pemrograman? Apa bagian yang saya pemrograman bisa menghasilkan? Memang benar bahwa Anda dapat melakukan semua HTML Anda dalam blok PHP. Anda dapat echo semua HTML sebagai string. Sebagai contoh, jika saya ingin memulai melakukan tag pilih dalam PHP Saya dapat mengatakan gema, katakanlah pilih nama = konsentrasi, dan kemudian di bawah saya bisa memiliki tag lain gema atau echo lain yang disebut tutup pilih. Ini adalah salah satu cara untuk melakukannya karena apa ini benar-benar akan melakukan adalah mencetak string ini ketika itu dijalankan melalui interpreter PHP, sehingga hasilnya akan HTML. Jika saya menyimpan file ini karena sekarang dan saya menjalankan concentrations.php php melihat apa yang saya dapatkan. Aku punya tag pilih buka tutup. Jika saya melakukan ini dan saya adalah untuk menyimpan hasil ini ke file, mengatakan, concentrations.html-tunggu, sepertinya l telah pergi ke sisi lain- sekarang jika saya membuka sini concentrations.html Anda melihat saya memiliki file HTML yang valid. Apakah itu agak aneh? Kami menggunakan PHP untuk membuat HTML, membuat HTML yang valid. Cara kita lakukan adalah kita hanya memiliki cetak PHP HTML yang kita inginkan untuk mencetak. Ini adalah benar-benar bagaimana website PHP bekerja. Ketika Anda mengunjungi situs web yang mengirim Anda untuk sesuatu seperti sesuatu, sesuatu, sesuatu yang dot com slash index.php komputer secara harfiah memanggil index.php, menjalankannya melalui juru bahasa PHP, dan apa pun sampah keluar itu mengirim kembali ke browser dan berkata hey, browser, menafsirkan ini sebagai HTML. Yang menyenangkan adalah bahwa hal itu dapat menjadi sakit untuk terus menulis echo, echo, echo, gema dan melampirkan segala sesuatu dalam tanda kutip seperti ini, jadi jika Anda ingin menulis HTML yang akan menjadi statis diri sendiri Anda dapat melakukannya seperti ini, meletakkannya di luar, menutupnya, dan kemudian di sini Anda hanya memasukkan dalam tag PHP apa yang Anda tahu Anda ingin menghasilkan pemrograman, dan dalam kasus ini, tag tersebut option yang sakit untuk menghasilkan. Sebagai contoh, kita bisa menghasilkan tag pilihan seribu dengan melakukan sesuatu seperti ini, $ i <1000, i + + dan mengatakan nilai gema option = $-ups, saya tidak bisa melakukan itu. Nah, mari kita mencobanya dan melihat apa yang terjadi. $ I dan kemudian mengatakan $ i