1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Bagian 8] [Kurang Nyaman] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [Ini adalah CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Selamat datang kedua kami untuk bagian terakhir. 5 00:00:11,000 --> 00:00:13,000 Dalam minggu ini kita akan berbicara tentang PHP, dan kemudian minggu depan 6 00:00:13,000 --> 00:00:17,000 kita akan melakukan sedikit ulasan untuk Kuis 1. 7 00:00:17,000 --> 00:00:20,000 Kita akan mulai pada halaman 3 dari masalah set pak, 8 00:00:20,000 --> 00:00:28,000 dan kami akan bekerja melalui bagian dari pertanyaan yang cukup cepat. 9 00:00:28,000 --> 00:00:34,000 Pada halaman 3, kita mulai berbicara tentang perbedaan antara C dan PHP 10 00:00:34,000 --> 00:00:38,000 dalam arti bahwa PHP adalah bahasa dinamis diketik, 11 00:00:38,000 --> 00:00:42,000 sedangkan C adalah statis diketik, 12 00:00:42,000 --> 00:00:46,000 dan telah ada yang benar-benar cepat dilakukan coding dalam sesuatu seperti PHP 13 00:00:46,000 --> 00:00:51,000 atau Python atau Ruby sebelumnya, JavaScript? 14 00:00:51,000 --> 00:00:53,000 Benar-benar baru? Oke. 15 00:00:53,000 --> 00:00:56,000 >> Semua bahasa yang saya sebutkan 16 00:00:56,000 --> 00:01:01,000 sangat berbeda dengan bahasa seperti C dan C + + dan Java 17 00:01:01,000 --> 00:01:04,000 dalam arti bahwa ketika Anda mendeklarasikan variabel Anda tidak perlu mendeklarasikan 18 00:01:04,000 --> 00:01:09,000 apa variabel itu, sehingga di C kita terjebak harus selalu mengatakan 19 00:01:09,000 --> 00:01:13,000 ini akan menjadi variabel int, atau ini akan menjadi variabel char *, 20 00:01:13,000 --> 00:01:16,000 sedangkan dengan PHP, dengan Python, dengan Ruby, 21 00:01:16,000 --> 00:01:20,000 dengan banyak bahasa-bahasa yang lebih modern Anda tidak perlu melakukan itu sama sekali. 22 00:01:20,000 --> 00:01:24,000 Anda hanya mendeklarasikan variabel Anda, dan dalam kasus PHP 23 00:01:24,000 --> 00:01:28,000 Anda menyatakan bahwa itu sebuah variabel dengan awalan dengan tanda $, 24 00:01:28,000 --> 00:01:35,000 dan kemudian jenis variabel ditentukan oleh nilai apa pun itu memegang, 25 00:01:35,000 --> 00:01:38,000 yang agak dingin. 26 00:01:38,000 --> 00:01:44,000 Untuk bermain-main dengan hal ini agak sedikit, kita memiliki contoh kode PHP di sini 27 00:01:44,000 --> 00:01:47,000 di antara tag awal dan akhir. 28 00:01:47,000 --> 00:01:53,000 Kami menggunakan semacam ini seperti HTML dalam arti bahwa 29 00:01:53,000 --> 00:01:56,000 kita punya ini sudut kurung di sini untuk membuka dan menutup. 30 00:01:56,000 --> 00:01:58,000 Anda akan melihat ini dengan HTML. 31 00:01:58,000 --> 00:02:03,000 Anda akan melihat jenis yang sama dari sintaks dengan XML juga. 32 00:02:03,000 --> 00:02:06,000 >> Hal ini menunjukkan awal dari blok PHP. 33 00:02:06,000 --> 00:02:09,000 Ini? Php khusus untuk PHP. 34 00:02:09,000 --> 00:02:16,000 Kami menutup segala sesuatu dengan> juga?. 35 00:02:16,000 --> 00:02:22,000 Mari kita membuka file dalam alat kami menggunakan apa pun yang Anda inginkan. 36 00:02:22,000 --> 00:02:25,000 Dalam paket ini dikatakan untuk memanggil dynamic.php. 37 00:02:25,000 --> 00:02:29,000 Sebenarnya, Anda bisa menyebutnya apa pun yang Anda ingin, tetapi nama file akan muncul 38 00:02:29,000 --> 00:02:34,000 dan kemudian menjadi penting, jadi hanya ingat apa pun yang Anda menyebutnya. 39 00:02:34,000 --> 00:02:36,000 Aku akan beralih ke alat, 40 00:02:36,000 --> 00:02:43,000 dan aku akan membuat sebuah direktori untuk 41 00:02:43,000 --> 00:02:48,000 Bagian 9 Saya percaya kita berada di sekarang. 42 00:02:48,000 --> 00:02:51,000 Dan kita akan masuk ke bagian 9, 43 00:02:51,000 --> 00:02:54,000 dan aku akan menggunakan gedit. 44 00:02:54,000 --> 00:02:59,000 Mari kita lihat, gedit, dan aku akan menelepon dynamic.php tambang. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 Dalam dynamic.php, karena ini adalah file PHP 47 00:03:06,000 --> 00:03:09,000 dan saya ingin menjalankan ini melalui juru PHP 48 00:03:09,000 --> 00:03:12,000 Saya harus memulai semuanya off dengan tag tersebut terbuka, 49 00:03:12,000 --> 00:03:17,000 jadi aku akan mulai tepat mereka pergi, 50 00:03:17,000 --> 00:03:23,000 memberi diriku sedikit ruang di antara tag, 51 00:03:23,000 --> 00:03:26,000 dan kemudian titik dari latihan ini adalah untuk bermain-main dengan 52 00:03:26,000 --> 00:03:34,000 fungsi ini disebut GetType, sehingga GetType, fungsi ini di sini. 53 00:03:34,000 --> 00:03:38,000 >> Perhatikan bahwa ada yang tidak ada garis bawah atau ruang atau tanda hubung atau sesuatu seperti itu 54 00:03:38,000 --> 00:03:42,000 memisahkan 2 kata, mendapatkan dan ketik, hanya satu kata sama sekali. 55 00:03:42,000 --> 00:03:46,000 Tapi apa ini akan lakukan adalah jika saya lulus dalam variabel ke GetType, 56 00:03:46,000 --> 00:03:51,000 mengatakan $ var atau $ x, 57 00:03:51,000 --> 00:03:55,000 ini akan memberitahu saya jenis dalam format debugging 58 00:03:55,000 --> 00:03:59,000 apa nama jenis yang. 59 00:03:59,000 --> 00:04:03,000 Kita akan bereksperimen di sini. 60 00:04:03,000 --> 00:04:07,000 Secara khusus, jika Anda melihat kembali spec pset 61 00:04:07,000 --> 00:04:11,000 kita punya baris yang berbeda beberapa kode di sini. 62 00:04:11,000 --> 00:04:16,000 Pada baris pertama dari kode kita menginisialisasi variabel ini, $ var, 63 00:04:16,000 --> 00:04:21,000 untuk menjadi sama dengan 7, dan kemudian kita memiliki garis printf 64 00:04:21,000 --> 00:04:25,000 yang mengatakan hey, var printf kosong. 65 00:04:25,000 --> 00:04:29,000 Printf adalah salah satu dari banyak cara kita dapat mencetak hal-hal di PHP. 66 00:04:29,000 --> 00:04:33,000 Sering kali Anda akan melihat fungsi gema digunakan sebagai pengganti printf, 67 00:04:33,000 --> 00:04:40,000 tapi printf kita semua akrab dengan yang telah coding di C untuk sementara waktu. 68 00:04:40,000 --> 00:04:42,000 Apa yang benar-benar dapat lakukan adalah mari kita lihat apakah karya copy dan paste. 69 00:04:42,000 --> 00:04:46,000 Aku akan memberikan ini mencoba. 70 00:04:46,000 --> 00:04:52,000 Kami akan kembali ke alat. 71 00:04:52,000 --> 00:05:00,000 Oke, dan di sana kita pergi. 72 00:05:00,000 --> 00:05:05,000 Dan jarak agak funky, tapi di sini kita pergi. 73 00:05:05,000 --> 00:05:08,000 Kami punya kode ini di sini. 74 00:05:08,000 --> 00:05:11,000 >> [Mahasiswa] Apakah gaya yang tidak baik untuk tab itu? 75 00:05:11,000 --> 00:05:13,000 Maaf? 76 00:05:13,000 --> 00:05:15,000 [Mahasiswa] Apakah konvensional untuk tab itu? 77 00:05:15,000 --> 00:05:21,000 Benar, jadi Sam bertanya apakah itu konvensi untuk tab atau tidak. 78 00:05:21,000 --> 00:05:23,000 Biasanya ya. 79 00:05:23,000 --> 00:05:26,000 Dalam hal ini saya telah memilih untuk tidak. 80 00:05:26,000 --> 00:05:33,000 Jujur, Anda akan melihat hal yang berbeda antara programer yang berbeda. 81 00:05:33,000 --> 00:05:40,000 PHP biasanya sering digunakan dalam kombinasi dengan HTML 82 00:05:40,000 --> 00:05:45,000 dan bahasa lainnya, sehingga kadang-kadang pencetakan akan terlihat sedikit funky 83 00:05:45,000 --> 00:05:50,000 jika Anda indent dalam start PHP dan tag akhir. 84 00:05:50,000 --> 00:05:53,000 Ini benar-benar tergantung. 85 00:05:53,000 --> 00:05:56,000 Dalam hal ini copy dan paste tidak paste tab dalam bagi saya, 86 00:05:56,000 --> 00:06:02,000 tapi itu pasti tidak, seperti yang Anda katakan, membuatnya lebih jelas. 87 00:06:02,000 --> 00:06:06,000 Baiklah, jika Anda menyimpan kode ini di dynamic.php 88 00:06:06,000 --> 00:06:10,000 maka apa yang dapat Anda lakukan adalah turun ke jendela terminal Anda di mana saya benar di sini 89 00:06:10,000 --> 00:06:17,000 di gedit, dan untuk melakukan setara dengan kompilasi 90 00:06:17,000 --> 00:06:20,000 menggunakan membuat dan kemudian menjalankan kode Anda di C 91 00:06:20,000 --> 00:06:25,000 semua yang harus Anda lakukan dengan file PHP adalah start up interpreter PHP, 92 00:06:25,000 --> 00:06:30,000 yang merupakan program kecil yang disebut PHP, 93 00:06:30,000 --> 00:06:35,000 dan argumen Anda berikan kepada penafsir adalah file yang ingin Anda menafsirkan. 94 00:06:35,000 --> 00:06:40,000 Dalam kasus ini, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Whoops, di mana aku menaruhnya? 96 00:06:43,000 --> 00:06:52,000 Oh, aku taruh di bagian 9, dan di sinilah aku. Itulah sebabnya. 97 00:06:52,000 --> 00:06:57,000 >> Sekarang jika saya menjalankan lagi 98 00:06:57,000 --> 00:07:02,000 kita melihat bahwa dalam panggilan fungsi pertama saya GetType 99 00:07:02,000 --> 00:07:04,000 var adalah integer. 100 00:07:04,000 --> 00:07:12,000 Dalam var yang berikutnya adalah string, dan kemudian di var yang ketiga adalah boolean. 101 00:07:12,000 --> 00:07:15,000 Yang menarik dari hal ini adalah jika kita gulir kembali kita melihat bahwa 102 00:07:15,000 --> 00:07:18,000 ini adalah jenis yang sama dengan yang yang kita miliki di C. 103 00:07:18,000 --> 00:07:22,000 Kami memiliki ints di C. 104 00:07:22,000 --> 00:07:26,000 Kami memiliki semacam string di C, 105 00:07:26,000 --> 00:07:31,000 sehingga string yang bukan tipe benar-benar legit dalam arti bahwa 106 00:07:31,000 --> 00:07:37,000 String CS50 kami adalah benar-benar apa? 107 00:07:37,000 --> 00:07:39,000 Maaf? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Ya, inilah char * kita gunakan. 110 00:07:43,000 --> 00:07:47,000 Pada awal semester kami menggunakan tipe string, 111 00:07:47,000 --> 00:07:52,000 tapi itu benar-benar char * di bawah tenda. 112 00:07:52,000 --> 00:07:58,000 Kami hanya mengetik didefinisikan, sedangkan di PHP string ini adalah jenis yang sebenarnya. 113 00:07:58,000 --> 00:08:07,000 Tidak ada lagi ini jenis barang * char. 114 00:08:07,000 --> 00:08:10,000 >> Anda akan melihat bahwa kita bisa melakukan banyak hal lebih dengan string 115 00:08:10,000 --> 00:08:14,000 jauh lebih mudah di PHP daripada yang kita bisa di C, 116 00:08:14,000 --> 00:08:17,000 dan akhirnya, kita memiliki jenis boolean, dan perbedaan besar di sini adalah bahwa 117 00:08:17,000 --> 00:08:21,000 jika kita gulir kembali turun kita melihat bahwa nama jenis 118 00:08:21,000 --> 00:08:28,000 sekarang integer, string, dan boolean bukan int dan bool, 119 00:08:28,000 --> 00:08:31,000 dan saat Anda mengambil bahasa pemrograman yang berbeda, 120 00:08:31,000 --> 00:08:36,000 dengan asumsi bahwa pada beberapa titik dalam hidup Anda, Anda akan bersentuhan dengan 121 00:08:36,000 --> 00:08:40,000 yang berbeda Anda akan melihat kebiasaan kecil seperti ini 122 00:08:40,000 --> 00:08:44,000 di mana C panggilan ints bilangan bulat. 123 00:08:44,000 --> 00:08:46,000 Beberapa menyebutnya bilangan bulat. 124 00:08:46,000 --> 00:08:51,000 Ada istilah lain yang Anda akan mengalami. 125 00:08:51,000 --> 00:08:55,000 Int besar yang kita lihat hari ini di SQL. 126 00:08:55,000 --> 00:08:59,000 Ada juga nomor dan kemudian bool, boolean, 127 00:08:59,000 --> 00:09:03,000 segala macam perbedaan di sana. 128 00:09:03,000 --> 00:09:07,000 >> Hal ini tidak terlalu menarik tapi sekarang aku akan memberi Anda sedikit waktu- 129 00:09:07,000 --> 00:09:13,000 jika kita tampilannya kembali-untuk bekerja melalui latihan ini di bagian bawah halaman 3 130 00:09:13,000 --> 00:09:20,000 di mana ia bertanya apa jenis sesuai dengan nilai-nilai di sini di bagian bawah. 131 00:09:20,000 --> 00:09:24,000 Kami memiliki 3,50. 132 00:09:24,000 --> 00:09:28,000 Kami memiliki hal ini di sini, yang menarik. 133 00:09:28,000 --> 00:09:32,000 Kami belum melihat itu sebelumnya, meskipun jika Anda sudah mengikuti dari awal dalam kuliah 134 00:09:32,000 --> 00:09:35,000 Anda mungkin sudah tahu apa itu. 135 00:09:35,000 --> 00:09:40,000 Lalu kami memiliki ini, yang ini agak funky. 136 00:09:40,000 --> 00:09:42,000 Anda menyadari hal ini. 137 00:09:42,000 --> 00:09:46,000 Apa ini di C? 138 00:09:46,000 --> 00:09:50,000 Sam? Apa yang akan memberi Anda di C? 139 00:09:50,000 --> 00:09:54,000 Ini akan membuka file bernama dynamic.php dan membuatnya mudah dibaca. 140 00:09:54,000 --> 00:09:58,000 Ya, dan apa yang akan menjadi jenis variabel yang kita akan menugaskan ini kepada bintang file? >>. 141 00:09:58,000 --> 00:10:02,000 Tepat, kami akan menugaskan ini kepada bintang file. 142 00:10:02,000 --> 00:10:08,000 Ini adalah PHP yang sah juga. 143 00:10:08,000 --> 00:10:12,000 Jalankan itu. Lihat apa yang terjadi ketika Anda melewati itu ke GetType. 144 00:10:12,000 --> 00:10:19,000 Dan kemudian juga memeriksa apa nol, apa yang mungkin di PHP. 145 00:10:19,000 --> 00:10:21,000 Saya akan memberi Anda beberapa menit. 146 00:10:21,000 --> 00:10:24,000 Anda benar-benar dapat menyalin dan menyisipkan nilai-nilai di, 147 00:10:24,000 --> 00:10:29,000 dan kemudian kita akan melakukan panggilan acak kecil pada Anda 148 00:10:29,000 --> 00:10:34,000 dan melihat apa yang Anda punya. 149 00:10:34,000 --> 00:10:36,000 >> [Mahasiswa] Saya punya pertanyaan. << Ya. 150 00:10:36,000 --> 00:10:40,000 Dalam salah satu ceramah David mengatakan ada sesuatu yang Anda dapat menempatkan di bagian atas file Anda 151 00:10:40,000 --> 00:10:43,000 sehingga Anda tidak perlu mengetik di PHP setiap waktu. 152 00:10:43,000 --> 00:10:45,000 Apa itu? 153 00:10:45,000 --> 00:10:50,000 Dia mungkin berbicara tentang bang pon, bang hash. 154 00:10:50,000 --> 00:10:57,000 Ini direktif bahwa jika Anda menandai file sebagai executable 155 00:10:57,000 --> 00:11:01,000 maka apa yang dilakukannya adalah ketika Anda menjalankan file 156 00:11:01,000 --> 00:11:06,000 akan memberitahu program shell 157 00:11:06,000 --> 00:11:12,000 menggunakan interpreter PHP untuk menafsirkan isi dari file tersebut. 158 00:11:12,000 --> 00:11:16,000 Pertanyaan yang apa ini jalur khusus 159 00:11:16,000 --> 00:11:20,000 bahwa kita bisa menyertakan di bagian atas file PHP kita tidak harus menyertakan 160 00:11:20,000 --> 00:11:26,000 ini PHP line atau perintah PHP setiap kali kita ingin mengeksekusi file? 161 00:11:26,000 --> 00:11:31,000 Dan Anda benar-benar dapat melakukan hal ini dengan sekelompok file yang berbeda. 162 00:11:31,000 --> 00:11:37,000 Saya percaya itu tergantung pada di mana biner PHP disimpan, 163 00:11:37,000 --> 00:11:43,000 tetapi sering usr / bin / php adalah tempat yang baik untuk memulai. 164 00:11:43,000 --> 00:11:45,000 Anda dapat memikirkan hal ini persis dengan kembali ke alat Anda 165 00:11:45,000 --> 00:11:50,000 dan mengetik mana php. 166 00:11:50,000 --> 00:11:55,000 Perintah yang angka keluar ketika Anda menjalankan biner 167 00:11:55,000 --> 00:12:01,000 atau perintah mana file yang sesuai adalah. 168 00:12:01,000 --> 00:12:06,000 Ini memberitahu saya bahwa PHP benar-benar aliasing ini file biner 169 00:12:06,000 --> 00:12:13,000 yang disimpan di usr / bin, yang mana banyak binari sistem dipasang. 170 00:12:13,000 --> 00:12:21,000 Sebagai contoh, jika saya gulir ke atas, sekarang aku sudah menempatkan ini #! baris di sini 171 00:12:21,000 --> 00:12:27,000 Aku dapat menggulir ke bawah, dan aku bisa mencoba untuk menjalankan 172 00:12:27,000 --> 00:12:35,000 dynamic.php, tapi saya mendapatkan error ini tentang ijin ditolak, 173 00:12:35,000 --> 00:12:42,000 dan apa artinya adalah bahwa file ini saat ini tidak memberikan izin dieksekusi. 174 00:12:42,000 --> 00:12:46,000 Ini tidak ditandai sebagai file bahwa seseorang dapat berjalan. 175 00:12:46,000 --> 00:12:52,000 >> Ketika Anda membuat atau berlari dentang dan Anda mendapat dieksekusi dari itu 176 00:12:52,000 --> 00:12:56,000 compiler cukup cerdas untuk mengetahui bahwa hei, aku sedang membangun dieksekusi. 177 00:12:56,000 --> 00:13:00,000 Anda mungkin ingin untuk melaksanakannya, sehingga secara otomatis akan mengkonfigurasi 178 00:13:00,000 --> 00:13:02,000 izin untuk Anda. 179 00:13:02,000 --> 00:13:06,000 Hal ini tidak terjadi, meskipun, ketika Anda membuat file normal dari awal, 180 00:13:06,000 --> 00:13:13,000 alasan yang biasanya Anda tidak ingin memiliki file apapun pada sistem Anda akan dieksekusi, 181 00:13:13,000 --> 00:13:15,000 sehingga Anda benar-benar harus pergi dan melakukannya secara manual. 182 00:13:15,000 --> 00:13:22,000 Cara termudah untuk melakukannya adalah dengan perintah chmod, 183 00:13:22,000 --> 00:13:28,000 dan chmod + x bilang menambahkan bit executable 184 00:13:28,000 --> 00:13:31,000 karena ada sedikit membaca, sedikit menulis dan bit executable, 185 00:13:31,000 --> 00:13:35,000 r, w dan x, 186 00:13:35,000 --> 00:13:39,000 dan mengatakan chmod + x akan mengaktifkan bit executable 187 00:13:39,000 --> 00:13:46,000 untuk kemudian file yang kita tentukan, yang dalam hal ini akan dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Mahasiswa] Apakah itu dihidupkan untuk semua orang? 189 00:13:49,000 --> 00:13:52,000 Mari kita periksa ini, jadi bagaimana aku memeriksa untuk melihat perizinan? 190 00:13:52,000 --> 00:13:54,000 Apakah Anda tahu bagaimana saya akan memeriksa untuk melihat hak akses file? 191 00:13:54,000 --> 00:13:56,000 [Respon siswa tidak terdengar] 192 00:13:56,000 --> 00:13:58,000 Maaf >> [Siswa]? XSD. 193 00:13:58,000 --> 00:14:03,000 XSD memberi kita file dalam hacks. 194 00:14:03,000 --> 00:14:09,000 Daftar semua file,-l, akan menunjukkan semua file dalam direktori saya 195 00:14:09,000 --> 00:14:13,000 jenis dalam daftar panjang mereka, verbose, dan jadi di sini kita melihat bahwa 196 00:14:13,000 --> 00:14:17,000 file ini dynamic.php 197 00:14:17,000 --> 00:14:23,000 terakhir diubah 5 November pada jam 4:21. 198 00:14:23,000 --> 00:14:26,000 Pemilik file ini jharvard. 199 00:14:26,000 --> 00:14:28,000 Itulah pengguna yang login 200 00:14:28,000 --> 00:14:31,000 Itulah pengguna saya bekerja sebagai, 201 00:14:31,000 --> 00:14:36,000 dan jika Anda juga dalam alat Anda juga bekerja sebagai jharvard pengguna. 202 00:14:36,000 --> 00:14:38,000 Anda berada di kelompok mahasiswa, 203 00:14:38,000 --> 00:14:44,000 dan ini adalah hal-hal yang Anda akan melihat cukup sering. 204 00:14:44,000 --> 00:14:47,000 >> Kita bisa pergi ke banyak detail di sini, 205 00:14:47,000 --> 00:14:50,000 tetapi untuk sebagian besar apa yang ingin Anda lihat ketika Anda mencari untuk melihat 206 00:14:50,000 --> 00:14:55,000 apakah atau tidak file executable adalah terutama 207 00:14:55,000 --> 00:14:58,000 pengguna yang memiliki file tersebut, pemilik, 208 00:14:58,000 --> 00:15:03,000 jadi ini jharvard, dan kemudian kita harus 209 00:15:03,000 --> 00:15:07,000 izin bit di sini di sebelah kiri, 210 00:15:07,000 --> 00:15:13,000 dan cara membaca ini adalah bahwa bit terakhir 211 00:15:13,000 --> 00:15:18,000 biasanya digunakan untuk menandai apakah atau tidak-setidaknya dalam kasus ini 212 00:15:18,000 --> 00:15:21,000 ini bit terakhir sering akan diatur untuk iklan untuk menunjukkan 213 00:15:21,000 --> 00:15:24,000 bahwa file tersebut adalah direktori dan bukan hanya file normal. 214 00:15:24,000 --> 00:15:28,000 Kemudian berikut 3 bit di sini 215 00:15:28,000 --> 00:15:34,000 menentukan hak akses bahwa pemilik file tersebut memiliki, 216 00:15:34,000 --> 00:15:38,000 sehingga dalam hal ini jharvard kasus ini, sebagai pemilik dari file tersebut, dapat membaca dan menulis file ini, 217 00:15:38,000 --> 00:15:42,000 tapi ada dash mengatakan bahwa jharvard tidak dapat mengeksekusi file ini. 218 00:15:42,000 --> 00:15:46,000 The 3 bit berikutnya adalah untuk kelompok, jadi ini adalah kelompok mahasiswa, 219 00:15:46,000 --> 00:15:49,000 jadi jika ada beberapa pengguna pada alat saya, 220 00:15:49,000 --> 00:15:52,000 dan kami memiliki beberapa pengguna sebagai bagian dari kelompok mahasiswa, 221 00:15:52,000 --> 00:15:55,000 maka mereka semua bisa membaca file ini, tetapi mereka tidak bisa menulis, 222 00:15:55,000 --> 00:15:59,000 dan juga orang lain, dunia 223 00:15:59,000 --> 00:16:01,000 hanya dapat membaca file ini juga. 224 00:16:01,000 --> 00:16:03,000 Ada Langgan, baik panjang tentang hal ini, 225 00:16:03,000 --> 00:16:05,000 sehingga Anda dapat membaca secara online. 226 00:16:05,000 --> 00:16:10,000 Dalam spec set masalah yang kita masuk ke ini secara lebih rinci. 227 00:16:10,000 --> 00:16:12,000 >> [Mahasiswa] Apakah 218 mengacu kepada dunia? 228 00:16:12,000 --> 00:16:17,000 The 218 adalah-off dari atas kepala saya, saya lupa, 229 00:16:17,000 --> 00:16:20,000 tapi tidak ada. 230 00:16:20,000 --> 00:16:29,000 Mari kita lihat. Saya blanking pada itu sekarang. 231 00:16:29,000 --> 00:16:32,000 Kembali ke apa yang kami akan lakukan dengan chmod + x 232 00:16:32,000 --> 00:16:37,000 di mana kami ingin memberikan hak akses executable dynamic.php, 233 00:16:37,000 --> 00:16:40,000 dan pertanyaannya adalah apakah atau tidak ini akan memberikan izin eksekusi untuk semua orang 234 00:16:40,000 --> 00:16:44,000 atau hanya jharvard, dan kita dapat melihat hal ini dengan 235 00:16:44,000 --> 00:16:48,000 menjalankan perintah dan mengetik ls-l, 236 00:16:48,000 --> 00:16:51,000 dan sekarang kita melihat bahwa itu ditandai sebagai executable. 237 00:16:51,000 --> 00:16:54,000 Anda lihat bahwa ada perubahan warna. 238 00:16:54,000 --> 00:16:57,000 Sekarang dynamic.php tercantum dalam hijau, 239 00:16:57,000 --> 00:17:01,000 dan sepertinya jawaban atas pertanyaan adalah apa, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Hanya jharvard. >> Hanya jharvard, yeah. 241 00:17:04,000 --> 00:17:08,000 >> Jika kita ingin mengubah bit executable pada untuk semua orang 242 00:17:08,000 --> 00:17:10,000 bagaimana mungkin kita melakukan itu? 243 00:17:10,000 --> 00:17:13,000 Setiap pikiran >> A? + X? 244 00:17:13,000 --> 00:17:15,000 Ya, tepatnya. 245 00:17:15,000 --> 00:17:23,000 Charlotte mengatakan kita bisa melakukan chmod dari x + dari dynamic.php, 246 00:17:23,000 --> 00:17:26,000 dan sekarang jika kita menjalankan ls-l kita lihat bahwa bit executable 247 00:17:26,000 --> 00:17:30,000 memang dihidupkan untuk semua orang. 248 00:17:30,000 --> 00:17:37,000 Dan Anda benar-benar dapat melakukan kebalikan dari ini, sehingga Anda dapat mematikannya untuk semua orang 249 00:17:37,000 --> 00:17:41,000 menggunakan minus. 250 00:17:41,000 --> 00:17:46,000 Sekarang itu dimatikan, dan sekarang kita bisa mengubahnya kembali untuk jharvard 251 00:17:46,000 --> 00:17:52,000 sehingga kita benar-benar dapat menjalankan sekarang, 252 00:17:52,000 --> 00:17:58,000 dan sekarang Anda lihat ketika kita menjalankan kode ini khusus #! line di atas, 253 00:17:58,000 --> 00:18:04,000 #! line, mengatakan shell, 254 00:18:04,000 --> 00:18:08,000 mengatakan terminal kami hey, ketika file ini dijalankan, 255 00:18:08,000 --> 00:18:14,000 menggunakan / usr / bin / php untuk menafsirkan file ini 256 00:18:14,000 --> 00:18:20,000 dan kemudian mencetak output. 257 00:18:20,000 --> 00:18:22,000 [Pertanyaan siswa tidak terdengar] 258 00:18:22,000 --> 00:18:25,000 Tentu, biarkan aku gulir kembali. Sama seperti ini. 259 00:18:25,000 --> 00:18:36,000 Anda akan melihat semua arahan mulai dengan pound ini dan kemudian tanda seru, 260 00:18:36,000 --> 00:18:39,000 kadang-kadang disebut bang, shebang hash. 261 00:18:39,000 --> 00:18:48,000 >> [Mahasiswa] Bagaimana kita bisa menjalankannya dengan dynamic.php php sebelum kita membuat executable? 262 00:18:48,000 --> 00:18:55,000 Pertanyaannya adalah bagaimana kita bisa menjalankan ini menggunakan biner PHP 263 00:18:55,000 --> 00:18:58,000 sementara dynamic.php tidak dieksekusi? 264 00:18:58,000 --> 00:19:01,000 Ini adalah super penting karena ini adalah persis bagaimana 265 00:19:01,000 --> 00:19:06,000 itu akan bekerja ketika Anda menulis sejumlah masalah 7. 266 00:19:06,000 --> 00:19:09,000 Sebagian besar file waktu PHP tidak langsung dieksekusi. 267 00:19:09,000 --> 00:19:14,000 Cara yang berhasil adalah karena itu adalah biner PHP yang dieksekusi. 268 00:19:14,000 --> 00:19:16,000 Penafsir adalah hal yang sedang dijalankan, 269 00:19:16,000 --> 00:19:20,000 dan jadi apa yang dilakukannya secara harfiah menyedot di seluruh isi 270 00:19:20,000 --> 00:19:25,000 file dynamic.php kami dan garis pergi demi baris 271 00:19:25,000 --> 00:19:29,000 dan melaksanakan perintah-perintah tersebut, sehingga ia menggunakan file PHP kita 272 00:19:29,000 --> 00:19:31,000 sebagai daftar instruksi. 273 00:19:31,000 --> 00:19:36,000 Ini tidak secara langsung dijalankan. 274 00:19:36,000 --> 00:19:40,000 Itulah di mana kita mengatakan bahwa file-file ini ditafsirkan pada waktu berjalan. 275 00:19:40,000 --> 00:19:46,000 Ini adalah bahasa run time bukan sesuatu yang ditentukan pada waktu kompilasi, 276 00:19:46,000 --> 00:19:49,000 bukan bahasa dikompilasi seperti C. 277 00:19:49,000 --> 00:19:54,000 >> Apakah ada cara untuk mendapatkan bahasa run time untuk bertindak seolah-olah itu adalah bahasa waktu kompilasi, 278 00:19:54,000 --> 00:19:58,000 seperti jika Anda memiliki semua berjalan dilakukan pada server 279 00:19:58,000 --> 00:20:00,000 bukan-Anda tahu apa yang saya maksud? 280 00:20:00,000 --> 00:20:04,000 Ya, jadi pertanyaannya adalah 281 00:20:04,000 --> 00:20:11,000 apakah ada cara untuk mendapatkan bahasa run time untuk bertindak lebih seperti jenis waktu kompilasi dari bahasa? 282 00:20:11,000 --> 00:20:18,000 Dan ada, maksudku, yang merupakan bidang penelitian aktif untuk banyak perusahaan-perusahaan. 283 00:20:18,000 --> 00:20:22,000 Saya percaya Facebook telah melakukan banyak pekerjaan dengan PHP 284 00:20:22,000 --> 00:20:25,000 dan menyusun ke bawah, sehingga lebih cepat, mengoptimalkan itu 285 00:20:25,000 --> 00:20:29,000 karena situs mereka dibangun di atas PHP. 286 00:20:29,000 --> 00:20:34,000 Jika anda sudah mengikuti node.js sama sekali, 287 00:20:34,000 --> 00:20:40,000 yang merupakan jenis juru JavaScript 288 00:20:40,000 --> 00:20:44,000 untuk dapat menjalankan JavaScript di luar browser, di luar browser web Anda, 289 00:20:44,000 --> 00:20:47,000 karena secara tradisional JavaScript hanya akan berjalan dalam Firefox atau Chrome, 290 00:20:47,000 --> 00:20:52,000 dan itu akan digunakan untuk membuat animasi dingin terjadi pada halaman web 291 00:20:52,000 --> 00:20:55,000 dan membuat halaman web Anda yang dinamis. 292 00:20:55,000 --> 00:20:59,000 Yang telah dibangun pada banyak pekerjaan yang telah dilakukan Google 293 00:20:59,000 --> 00:21:03,000 untuk membuat JavaScript dan C + + 294 00:21:03,000 --> 00:21:09,000 mengikat bersama-sama, sehingga ada banyak penelitian aktif untuk 295 00:21:09,000 --> 00:21:13,000 mendapatkan bahasa untuk berinteraksi dan mengoptimalkan mereka, 296 00:21:13,000 --> 00:21:17,000 terutama karena begitu banyak orang dapat kode dalam PHP dan JavaScript 297 00:21:17,000 --> 00:21:19,000 karena itu jauh lebih mudah. 298 00:21:19,000 --> 00:21:21,000 Ini jauh lebih baik. Anda tidak memiliki pointer. 299 00:21:21,000 --> 00:21:27,000 Anda tidak memiliki jenis mengambang sekitar. 300 00:21:27,000 --> 00:21:31,000 Mereka ingin mendapatkan manfaat dari bahasa waktu kompilasi 301 00:21:31,000 --> 00:21:36,000 dengan semua jenis pemeriksaan dan kecepatan dan penggunaan memori yang lebih rendah dan semua itu 302 00:21:36,000 --> 00:21:42,000 sementara tetap mempertahankan fleksibilitas dan kemudahan penggunaan yang baru. 303 00:21:42,000 --> 00:21:46,000 >> Kembali ke rencana awal kami serangan. 304 00:21:46,000 --> 00:21:50,000 Kami punya beberapa pertanyaan-pertanyaan di sini di spec set kami masalah. 305 00:21:50,000 --> 00:21:54,000 Mari kita pergi melalui mereka benar-benar cepat, dan kita akan pergi di sekitar ruangan. 306 00:21:54,000 --> 00:21:59,000 Charlotte, apa jenis adalah 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] Itu ganda. >> Ini ganda. 308 00:22:01,000 --> 00:22:03,000 Jimmy, apa ini yang berikutnya? >> Array. 309 00:22:03,000 --> 00:22:09,000 Sebuah array, mengagumkan, dan Jared, apa yang fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] Ini sumber daya >> Ini sumber daya.. 311 00:22:11,000 --> 00:22:15,000 Itu jenis yang baru, bukan bintang file, bukan file. 312 00:22:15,000 --> 00:22:19,000 Ini sumber daya adalah jenis di PHP, 313 00:22:19,000 --> 00:22:24,000 dan aku minta maaf, Ella, null terakhir adalah apa? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, bagaimana itu dieja di PHP? >> Cara yang sama. 316 00:22:28,000 --> 00:22:30,000 Dengan cara yang sama, modal >> Ya?. 317 00:22:30,000 --> 00:22:33,000 Ya, baik-baik saja. 318 00:22:33,000 --> 00:22:35,000 Di sini kita pergi, kita punya ganda, kami punya sebuah array, 319 00:22:35,000 --> 00:22:41,000 kita punya sumber daya, dan kemudian kita punya nol. 320 00:22:41,000 --> 00:22:48,000 Mari kita lihat sekarang memiliki Anda melihat- 321 00:22:48,000 --> 00:22:51,000 mari kita lihat, jadi sekarang saya kira apa yang saya juga ingin lakukan adalah menarik 322 00:22:51,000 --> 00:22:56,000 ini halaman web di sini, ini php.net / manual, 323 00:22:56,000 --> 00:23:01,000 jadi jika kalian copy itu dan membuka browser web. 324 00:23:01,000 --> 00:23:07,000 Aku akan menarik Chrome, menempatkan bahwa masuk 325 00:23:07,000 --> 00:23:10,000 Saya ingin menunjukkan hal ini bukan hanya karena 326 00:23:10,000 --> 00:23:13,000 kita bisa bicara sepanjang hari tentang jenis dan semua hal menyenangkan 327 00:23:13,000 --> 00:23:19,000 melainkan karena ini adalah manual PHP, 328 00:23:19,000 --> 00:23:23,000 dan ada banyak programmer PHP di luar sana. 329 00:23:23,000 --> 00:23:26,000 Ada banyak situs PHP di luar sana, 330 00:23:26,000 --> 00:23:31,000 dan sebagai hasilnya, ada banyak dokumentasi di PHP, 331 00:23:31,000 --> 00:23:36,000 dan manual, php.net ini, adalah tempat yang benar-benar baik untuk pergi 332 00:23:36,000 --> 00:23:43,000 setiap kali Anda mengalami pertanyaan tentang apa cara terbaik untuk melakukan X di PHP 333 00:23:43,000 --> 00:23:45,000 atau apa fungsi terlihat seperti? 334 00:23:45,000 --> 00:23:49,000 Hanya jenis semakin akrab dengan apa ini tampak seperti karena 335 00:23:49,000 --> 00:23:54,000 Anda akan datang ke sini sering, sedikit untuk masalah set 7. 336 00:23:54,000 --> 00:23:57,000 >> Jika Anda akhirnya melakukan sebuah proyek akhir yang menggunakan PHP 337 00:23:57,000 --> 00:24:04,000 ini akan menjadi tempat Anda akan menjadi sangat akrab dengan. 338 00:24:04,000 --> 00:24:09,000 Seringkali cara orang melakukan ini adalah mereka menggunakan Google untuk mencari situs, 339 00:24:09,000 --> 00:24:16,000 dan mereka tidak menggunakan kotak pencarian yang di sini di kanan atas, yang merupakan jenis kecil. 340 00:24:16,000 --> 00:24:19,000 Jika Anda Googling sekitar untuk ada hubungannya dengan PHP dan Anda melihat 341 00:24:19,000 --> 00:24:24,000 salah satu link panduan pop up Anda biasanya dapat mengandalkan bahwa 342 00:24:24,000 --> 00:24:31,000 sebagai sumber daya yang cukup baik. 343 00:24:31,000 --> 00:24:34,000 Mengagumkan, begitu keluar dari jenis, hanya ingin tahu, 344 00:24:34,000 --> 00:24:37,000 mana yang belum kita lihat? 345 00:24:37,000 --> 00:24:40,000 Apa pun yang kita belum melihat di sini? 346 00:24:40,000 --> 00:24:44,000 [Mahasiswa] Sumber. >> Kami melihat sumber daya dengan panggilan fopen. 347 00:24:44,000 --> 00:24:48,000 [Mahasiswa] Objects Objects >> kami belum melihat pasti.. 348 00:24:48,000 --> 00:24:51,000 Callback kita belum melihat. 349 00:24:51,000 --> 00:24:54,000 Ada beberapa pseudo-jenis. 350 00:24:54,000 --> 00:24:57,000 Kami pasti hanya melihat integer dan ganda. 351 00:24:57,000 --> 00:25:01,000 Kami tidak melihat beberapa yang lain, jadi jika kita klik pada bilangan bulat 352 00:25:01,000 --> 00:25:08,000 kita bisa melihat apakah ada bilangan bulat lain yang mereka miliki di sini? 353 00:25:08,000 --> 00:25:11,000 Apakah mereka semua-begitu integer, integer, integer. 354 00:25:11,000 --> 00:25:14,000 Beberapa bahasa memiliki tipe integer yang lebih besar, 355 00:25:14,000 --> 00:25:23,000 seperti kita lihat di MySQL saat ini ada int dan kemudian int besar. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Jadi, PHP manual. 358 00:25:28,000 --> 00:25:37,000 Mari kita kembali ke spesifikasi set kami masalah, dan sekarang kita akan gulir ke bawah ke halaman 4. 359 00:25:37,000 --> 00:25:41,000 Salah satu hal yang terjadi ketika Anda mendapatkan bahasa 360 00:25:41,000 --> 00:25:49,000 yang tidak memiliki mengetik statis, sehingga bahasa-bahasa di mana Anda harus menyatakan 361 00:25:49,000 --> 00:25:52,000 jenis depan sampai variabel 362 00:25:52,000 --> 00:26:00,000 adalah Anda mendapatkan kasus di mana Anda mungkin mulai memiliki variabel dari berbagai jenis 363 00:26:00,000 --> 00:26:04,000 berinteraksi satu sama lain, 364 00:26:04,000 --> 00:26:09,000 dan PHP melakukan hal ini di mana ia mencoba untuk melakukan 365 00:26:09,000 --> 00:26:13,000 apa yang dianggapnya hal yang paling masuk akal untuk dilakukan 366 00:26:13,000 --> 00:26:18,000 ketika Anda memiliki 2 jenis yang berbeda berinteraksi satu sama lain. 367 00:26:18,000 --> 00:26:24,000 Sebagai contoh, jika kita melihat ini baris kode di sini 368 00:26:24,000 --> 00:26:29,000 Anda melihat bahwa kami punya apa yang terjadi ketika 369 00:26:29,000 --> 00:26:38,000 kami mencoba dan menambahkan string 1 ke 2 integer. 370 00:26:38,000 --> 00:26:41,000 Apa yang terjadi jika kita mencoba dan menambahkan string yang bukan nilai numerik 371 00:26:41,000 --> 00:26:48,000 tapi karakter lebih aktual, CS ke nomor 50? 372 00:26:48,000 --> 00:26:51,000 Kemudian kita akan melihat apakah ada sesuatu yang berbeda yang terjadi di mana 373 00:26:51,000 --> 00:26:56,000 bukannya menambahkan string ke nomor kita menambahkan nomor ke string, 374 00:26:56,000 --> 00:27:00,000 dan seterusnya dan sebagainya ke titik di mana kita mendapatkan 375 00:27:00,000 --> 00:27:05,000 semacam hal aneh di sini di mana kita punya 7 + sejati. 376 00:27:05,000 --> 00:27:09,000 Apa sih artinya? 377 00:27:09,000 --> 00:27:19,000 >> Jika kalian pergi ke depan dan paste beberapa kode ini ke alat Anda. 378 00:27:19,000 --> 00:27:27,000 Anda dapat menyimpannya di dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Kita akan lihat apa yang terjadi. 380 00:27:41,000 --> 00:27:43,000 [Mahasiswa] Hanya menggunakan cetak, tidak printf? 381 00:27:43,000 --> 00:27:52,000 Ya, sehingga Anda akan menemukan bahwa cetak juga merupakan fungsi yang valid untuk mencetak di PHP. 382 00:27:52,000 --> 00:27:54,000 Ada banyak cara yang berbeda untuk melakukannya. 383 00:27:54,000 --> 00:27:58,000 Kita akan melihat dengan beberapa contoh di kemudian hari setelah kami mulai berbicara 384 00:27:58,000 --> 00:28:02,000 tentang masalah unik yang kita akan menulis 385 00:28:02,000 --> 00:28:06,000 dan kemudian masalah konsentrasi bahwa kita akan menulis 386 00:28:06,000 --> 00:28:09,000 bahwa meskipun kita memiliki fopen dan fclose 387 00:28:09,000 --> 00:28:15,000 itu sering tidak cara paling sederhana untuk membaca di isi file. 388 00:28:15,000 --> 00:28:21,000 PHP memiliki banyak dari C-seperti peninggalan. 389 00:28:21,000 --> 00:28:28,000 [Mahasiswa] Ketika saya dimasukkan ke dalam semua 6 hal-hal saya hanya mendapatkan satu nomor sebagai output. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Bila Anda memasukkan semua 6 hal ini. 391 00:28:36,000 --> 00:28:39,000 Mari kita lihat itu karena itu mungkin- 392 00:28:39,000 --> 00:28:46,000 satu hal adalah bahwa panggilan cetak tidak dihentikan pada akhir dengan baris baru. 393 00:28:46,000 --> 00:28:49,000 Ada yang tidak ada baris baru memisahkan masing-masing panggilan cetak, 394 00:28:49,000 --> 00:28:51,000 jadi mungkin Anda mendapatkan satu nomor besar, 395 00:28:51,000 --> 00:28:58,000 dan itu benar-benar hanya campuran dari karakter baris baru. 396 00:28:58,000 --> 00:29:00,000 [Mahasiswa] Oke, bagaimana saya pastikan- 397 00:29:00,000 --> 00:29:03,000 Nah, ada beberapa cara yang berbeda. 398 00:29:03,000 --> 00:29:06,000 Anda secara manual bisa dimasukkan ke dalam sebuah cetak dari sebuah karakter baris baru, 399 00:29:06,000 --> 00:29:09,000 gema dari karakter baris baru, 400 00:29:09,000 --> 00:29:12,000 mencetak baris baru. 401 00:29:12,000 --> 00:29:16,000 [Mahasiswa] Jadi gema adalah hal yang sama seperti printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf seperti C printf 403 00:29:21,000 --> 00:29:24,000 di mana Anda mencetak string diformat. 404 00:29:24,000 --> 00:29:32,000 Kau memasok format string dan kemudian semua variabel placeholder. 405 00:29:32,000 --> 00:29:39,000 Ini sering sesuatu yang tidak digunakan- 406 00:29:39,000 --> 00:29:42,000 mari kita lihat, sebagai disclaimer, 407 00:29:42,000 --> 00:29:48,000 Saya kurang akrab dengan PHP dari saya dengan bahasa web lainnya, 408 00:29:48,000 --> 00:29:53,000 dan ketika saya telah diprogram dalam PHP Saya biasanya tidak menggunakan printf 409 00:29:53,000 --> 00:29:59,000 karena saya merasa lebih cepat untuk menggunakan kemampuan tali interpolasi yang memiliki, 410 00:29:59,000 --> 00:30:04,000 yang kita akan pergi ke dan saya akan menunjukkan kepada Anda hanya dalam satu detik, 411 00:30:04,000 --> 00:30:08,000 sedangkan di C kita semacam harus melakukan hal Hacky untuk mendapatkannya untuk mencetak dengan benar. 412 00:30:08,000 --> 00:30:16,000 Anda benar-benar dapat menempatkan variabel langsung ke string di PHP. 413 00:30:16,000 --> 00:30:22,000 Printf adalah jenis terlalu lama untuk apa yang biasanya saya lakukan. Ya, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] Umumnya jika Anda mendapatkan error artinya- 415 00:30:25,000 --> 00:30:30,000 seperti di C itu tidak memberitahu Anda tepat di mana kesalahan dan apa itu, 416 00:30:30,000 --> 00:30:34,000 sehingga artinya melihat melalui seluruh kode Anda dan mencari tahu? 417 00:30:34,000 --> 00:30:39,000 Ini biasanya lebih ditargetkan dari itu. 418 00:30:39,000 --> 00:30:48,000 Saya pikir dalam kasus itu sedikit off, 419 00:30:48,000 --> 00:30:51,000 jadi saya pikir dalam kasus yang kita hilang titik koma. 420 00:30:51,000 --> 00:30:54,000 Itu berusaha untuk memahami segalanya, 421 00:30:54,000 --> 00:30:57,000 sehingga seperti ini bahasa ditafsirkan, penafsir akan mencoba 422 00:30:57,000 --> 00:31:01,000 dan melakukan yang terbaik untuk membuat semuanya bekerja dengan tepat. 423 00:31:01,000 --> 00:31:04,000 >> Anda akan melihat, misalnya, dalam JavaScript 424 00:31:04,000 --> 00:31:10,000 Anda akan sering-line pernyataan diakhiri dengan titik koma seperti yang mereka lakukan di PHP, 425 00:31:10,000 --> 00:31:13,000 seperti yang mereka lakukan di C. 426 00:31:13,000 --> 00:31:15,000 Dalam JavaScript beberapa interpreter JavaScript 427 00:31:15,000 --> 00:31:20,000 dalam banyak browser akan dimasukkan ke dalam titik koma untuk Anda 428 00:31:20,000 --> 00:31:23,000 jika Anda kebetulan akan kehilangan mereka. 429 00:31:23,000 --> 00:31:29,000 Mereka akan mencoba dan mengakomodasi untuk beberapa kecerobohan di pihak Anda. 430 00:31:29,000 --> 00:31:34,000 Di situlah mungkin akan mencoba dan mencoba dan mencoba untuk membuat hal-hal pekerjaan, 431 00:31:34,000 --> 00:31:36,000 dan kemudian akhirnya akan sampai ke titik di mana ia mengatakan apa-apa, 432 00:31:36,000 --> 00:31:38,000 Saya tidak bisa membuat hal-hal bekerja pada bailing, dan di sanalah Anda akan mendapatkan nomor baris 433 00:31:38,000 --> 00:31:44,000 yang mungkin tampak sedikit off dari tempat yang tepat. 434 00:31:44,000 --> 00:31:47,000 Oke, jadi mari kita pergi melalui ini benar-benar cepat. 435 00:31:47,000 --> 00:31:50,000 Kami meninggalkan off dengan Ella, jadi mari kita pergi ke Missy, 436 00:31:50,000 --> 00:31:54,000 dan Missy, apa cetak string 1 ditambah nomor 2 memberi Anda? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3 >> 3.. 438 00:31:56,000 --> 00:31:59,000 Apakah itu masuk akal? Semacam? 439 00:31:59,000 --> 00:32:02,000 Apakah itu memberikan nomor? Apakah itu memberi Anda sebuah string? 440 00:32:02,000 --> 00:32:05,000 [Missy] Sejumlah >> Ini nomor.. 441 00:32:05,000 --> 00:32:09,000 Tapi itu mencetaknya, sehingga akan memberikan semacam string. 442 00:32:09,000 --> 00:32:12,000 >> Satu hal yang bisa kita lakukan untuk memeriksa ini 443 00:32:12,000 --> 00:32:21,000 adalah jika kita lakukan $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 dan kemudian kita katakan gema GetType, 445 00:32:28,000 --> 00:32:33,000 jadi kita menggunakan jenis ketiga mencetak sini. 446 00:32:33,000 --> 00:32:39,000 Sekarang kita dapat melihat apa yang terjadi di sini. 447 00:32:39,000 --> 00:32:42,000 Berikut apa yang kita punya adalah kami mendapat integer keluar dari ini. 448 00:32:42,000 --> 00:32:45,000 Meskipun kami menambahkan string ini ke suatu nomor, 449 00:32:45,000 --> 00:32:48,000 kami tidak mendapatkan string dari itu, seperti kata Missy. 450 00:32:48,000 --> 00:32:52,000 Kami mendapatkan integer. 451 00:32:52,000 --> 00:32:57,000 Oke, jadi mari kita lihat, berikutnya, Kevin. 452 00:32:57,000 --> 00:32:59,000 CS + 50 >> [Kevin] 50?. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Apakah itu masuk akal? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Ya. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Kenapa? Mengapa masuk akal untuk Anda? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Karena itu hanya memiliki string, memiliki angka nol nilai. 457 00:33:11,000 --> 00:33:16,000 Ya, bagus. 458 00:33:16,000 --> 00:33:20,000 Jenis situasi ambigu, tapi itu baik untuk mengetahui apa yang terjadi. 459 00:33:20,000 --> 00:33:25,000 Stella, apa yang terjadi selanjutnya dengan nomor 1 + string 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3 >> 3 lagi.. 461 00:33:27,000 --> 00:33:30,000 Dan dalam hal ini, kita mendapatkan string atau angka? 462 00:33:30,000 --> 00:33:36,000 >> Mari kita memberikan ini mencoba. 463 00:33:36,000 --> 00:33:43,000 Siapa lebih cepat daripada saya mendapatkan jawabannya? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, Aku tidak-apa-apa, mari kita lihat, kita akan melakukan hal yang sama 465 00:33:46,000 --> 00:33:49,000 di mana kita punya nomor ditambah string, dan kami akan echo jenis, 466 00:33:49,000 --> 00:33:51,000 melihat apa yang kita dapatkan. 467 00:33:51,000 --> 00:33:55,000 Kami juga mendapatkan integer. 468 00:33:55,000 --> 00:33:58,000 Tidak peduli yang mana adalah string, yang satu adalah nomor. 469 00:33:58,000 --> 00:34:00,000 Kami masih akan mendapatkan integer. 470 00:34:00,000 --> 00:34:04,000 Ini masih akan melakukan apa yang kita harapkan. 471 00:34:04,000 --> 00:34:09,000 Baiklah, jadi Sam, bagaimana dengan 90 + 9 botol bir di dinding? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99 >> 99.. 473 00:34:12,000 --> 00:34:15,000 Tidak ada botol bir di dinding, meskipun. 474 00:34:15,000 --> 00:34:17,000 Ini memberi kita informasi lebih banyak tentang apa yang terjadi. 475 00:34:17,000 --> 00:34:21,000 [Sam] Jika Anda telah menulis 9 dalam huruf 476 00:34:21,000 --> 00:34:23,000 maka Anda akan memiliki 90, kan? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Ya. 478 00:34:26,000 --> 00:34:30,000 Pertanyaannya adalah jika kita telah menulis 9 sebagai N-I-N-E 479 00:34:30,000 --> 00:34:34,000 akan kita mendapatkan 99 atau 90? 480 00:34:34,000 --> 00:34:38,000 Kita akan mendapatkan 90. 481 00:34:38,000 --> 00:34:42,000 Ini benar-benar hanya mencari karakter digit. 482 00:34:42,000 --> 00:34:46,000 Ini tidak cukup cerdas untuk mengenali kata-kata jumlah dan hal-hal itu. Ya. 483 00:34:46,000 --> 00:34:48,000 >> [Mahasiswa] Apakah ada hal seperti itu sebagai typecasting di PHP? 484 00:34:48,000 --> 00:34:54,000 Ada, dan itu persis seperti yang Anda akan melakukannya di C. 485 00:34:54,000 --> 00:34:56,000 Bagaimana dengan 10/7, Charlotte? 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1,4285. 487 00:34:58,000 --> 00:35:01,000 [Nate H.] Ya, jadi apa mungkin mengejutkan tentang hal ini? 488 00:35:01,000 --> 00:35:04,000 Apa yang akan terjadi jika Anda melakukan ini hal yang sama di C, 489 00:35:04,000 --> 00:35:06,000 jika Anda melakukan 10/7 di C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Ini hanya akan memberi Anda-tergantung pada bagaimana Anda typecast kurasa 491 00:35:08,000 --> 00:35:12,000 itu akan memberi Anda hanya sejumlah digit setelah desimal. 492 00:35:12,000 --> 00:35:16,000 Ya, sehingga sejumlah digit setelah desimal. 493 00:35:16,000 --> 00:35:21,000 Apa lagi yang mungkin-akan hal itu memberi Anda setiap digit setelah desimal? 494 00:35:21,000 --> 00:35:28,000 Sering tidak, jadi sekali lagi, tergantung pada bagaimana Anda typecasting itu 495 00:35:28,000 --> 00:35:31,000 mungkin atau tidak mungkin mengubahnya menjadi angka floating point. 496 00:35:31,000 --> 00:35:35,000 Di sini itu agak bagus yang itu. 497 00:35:35,000 --> 00:35:40,000 Seandainya kami menunjukkan Anda kembali ini ketika kita mulai melakukan hal semacam ini di C 498 00:35:40,000 --> 00:35:44,000 itu mungkin akan masuk akal sedikit lebih 499 00:35:44,000 --> 00:35:48,000 bahwa hal itu tidak hanya pergi ke 1. 500 00:35:48,000 --> 00:35:51,000 Dan akhirnya, Jamie, bagaimana dengan 7 + benar? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Apa artinya? 503 00:35:56,000 --> 00:35:58,000 Saya kira itu hanya memberi benar nilai 1. 504 00:35:58,000 --> 00:36:01,000 Ya. Apa yang terjadi jika kita mengubahnya ke false? 505 00:36:01,000 --> 00:36:04,000 [Mahasiswa] 7. 506 00:36:04,000 --> 00:36:09,000 Ya, jadi ingat di mana kita berbicara tentang nilai-nilai biner, 507 00:36:09,000 --> 00:36:12,000 1 berada di, 0 yang batal? 508 00:36:12,000 --> 00:36:17,000 Sekarang kita memiliki yang benar adalah 1, 0 adalah palsu, 509 00:36:17,000 --> 00:36:21,000 dan Anda mungkin tidak melihat ini dalam contoh C yang kami lakukan ini semester terakhir, 510 00:36:21,000 --> 00:36:27,000 tetapi secara historis tipe bool di C belum menjadi jenis nyata, 511 00:36:27,000 --> 00:36:32,000 sehingga orang telah menggunakan 0 dan 1 di tempat yang benar dan palsu. 512 00:36:32,000 --> 00:36:35,000 Ini adalah manifestasi dari itu. 513 00:36:35,000 --> 00:36:39,000 >> Oke, jadi satu bagian penting tentang semua ini 514 00:36:39,000 --> 00:36:41,000 adalah bahwa kita memiliki jenis yang berbeda. 515 00:36:41,000 --> 00:36:43,000 Mereka dapat berinteraksi satu sama lain. 516 00:36:43,000 --> 00:36:49,000 Mereka sering dapat berinteraksi satu sama lain dengan cara yang bagus, seperti yang kita lihat di sini. 517 00:36:49,000 --> 00:36:53,000 Sangat menyenangkan untuk dapat memiliki string 1 dan nomor 2, menambahkan mereka bersama-sama dan mendapatkan 3. 518 00:36:53,000 --> 00:36:55,000 Itu masuk akal. 519 00:36:55,000 --> 00:36:59,000 Namun, ketika Anda sedang menulis situs web, dan terutama ketika Anda sedang memproses 520 00:36:59,000 --> 00:37:04,000 input pengguna, sehingga mengatakan Anda telah menulis sebuah formulir web 521 00:37:04,000 --> 00:37:09,000 yang mengumpulkan informasi dari pengguna dan kemudian pergi untuk memprosesnya 522 00:37:09,000 --> 00:37:13,000 di ujung belakang, pada sisi server dalam kode PHP Anda 523 00:37:13,000 --> 00:37:18,000 jika Anda mengharapkan bahwa nilai bahwa pengguna mengetik dan diserahkan 524 00:37:18,000 --> 00:37:23,000 untuk membentuk Anda menjadi integer atau menjadi nomor floating point atau sesuatu seperti itu 525 00:37:23,000 --> 00:37:29,000 Anda perlu secara eksplisit dilemparkan 526 00:37:29,000 --> 00:37:34,000 dan kemudian melakukan beberapa jenis pemeriksaan. 527 00:37:34,000 --> 00:37:41,000 >> Anda tidak ingin hanya mengandalkan pada sistem juggling jenis untuk membuat sesuatu bekerja keluar, 528 00:37:41,000 --> 00:37:48,000 terutama untuk alasan keamanan dan hanya untuk kekokohan website Anda. 529 00:37:48,000 --> 00:37:51,000 Hanya sesuatu yang perlu diingat bahwa setiap kali Anda menangani data formulir, 530 00:37:51,000 --> 00:37:57,000 apa pun yang datang dalam pos atau superglobals get 531 00:37:57,000 --> 00:38:01,000 pastikan bahwa Anda selalu memvalidasi itu dan mengubahnya dan typecast itu. 532 00:38:01,000 --> 00:38:04,000 Dan seperti yang kita bicarakan saat yang lalu typecasting yang 533 00:38:04,000 --> 00:38:08,000 dalam PHP adalah persis sama seperti di C di mana Anda memiliki kurung 534 00:38:08,000 --> 00:38:14,000 dan kemudian jenis. 535 00:38:14,000 --> 00:38:16,000 Perlu diingat bahwa. 536 00:38:16,000 --> 00:38:19,000 Salah satu fungsi yang akan berguna ketika Anda melakukan ini 537 00:38:19,000 --> 00:38:22,000 adalah kita telah menggunakan-dan ini adalah jenis sebagai samping- 538 00:38:22,000 --> 00:38:27,000 kami telah menggunakan fungsi ini GetType di sini 539 00:38:27,000 --> 00:38:30,000 untuk mengetahui jenis variabel, 540 00:38:30,000 --> 00:38:37,000 dan sementara ini berguna untuk debugging dan untuk melihat apa jenis variabel adalah 541 00:38:37,000 --> 00:38:42,000 Anda tidak ingin menggunakan ini, misalnya, dalam kondisi dimana 542 00:38:42,000 --> 00:38:57,000 Anda sedang memeriksa untuk melihat apakah GetType dari $ var = bulat melakukan sesuatu. 543 00:38:57,000 --> 00:39:01,000 Ini adalah buruk, buruk, buruk. 544 00:39:01,000 --> 00:39:09,000 Sebaliknya ada fungsi-fungsi yang disebut adalah integer, adalah string, 545 00:39:09,000 --> 00:39:14,000 adalah array yang ingin Anda gunakan sebagai gantinya, sehingga dalam kasus ini 546 00:39:14,000 --> 00:39:18,000 apa yang saya ingin lakukan bukannya orang ini di sini 547 00:39:18,000 --> 00:39:31,000 adalah menggunakan adalah var integer. 548 00:39:31,000 --> 00:39:37,000 Dan mereka sering disebut adalah * is_ dalam arti bahwa Anda bisa mengganti * dengan bilangan bulat, 549 00:39:37,000 --> 00:39:43,000 string, dan sebagainya, dan hanya untuk memastikan benar-benar cepat 550 00:39:43,000 --> 00:39:50,000 ini adalah int php. 551 00:39:50,000 --> 00:39:59,000 Sepertinya Anda dapat melakukan keduanya adalah int atau ada adalah integer juga? 552 00:39:59,000 --> 00:40:06,000 Ya, alias, alias bulat sehingga int. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Bagaimana kita lakukan? 555 00:40:17,000 --> 00:40:20,000 Mari kita mengambil langkah sedikit. 556 00:40:20,000 --> 00:40:24,000 Sekarang kita akan berbicara tentang array, sehingga Anda dapat melihat 557 00:40:24,000 --> 00:40:28,000 di bagian selanjutnya dari spec kita berbicara tentang bagaimana array di PHP 558 00:40:28,000 --> 00:40:31,000 sedikit berbeda daripada di C. 559 00:40:31,000 --> 00:40:34,000 Sebenarnya, mereka agak campuran dari 560 00:40:34,000 --> 00:40:36,000 array yang Anda telah datang ke kenal dan cinta di C 561 00:40:36,000 --> 00:40:40,000 di mana segala sesuatu adalah dari jenis yang sama 562 00:40:40,000 --> 00:40:43,000 disimpan secara berurutan dan contiguously dalam memori, 563 00:40:43,000 --> 00:40:46,000 dan Anda memiliki indeks numerik. 564 00:40:46,000 --> 00:40:49,000 Anda memiliki indeks 0, indeks 1, indeks 2, 565 00:40:49,000 --> 00:40:53,000 dan Anda menyimpan nilai-nilai tersebut di indeks. 566 00:40:53,000 --> 00:40:57,000 Anda juga di C, ketika Anda menulis Speller, banyak dari Anda 567 00:40:57,000 --> 00:41:00,000 melakukan pendekatan tabel hash, dan Anda melihat bahwa di sana kami memiliki 568 00:41:00,000 --> 00:41:03,000 berbagai jenis penyimpanan di mana kami pemetaan 569 00:41:03,000 --> 00:41:07,000 kunci untuk nilai, sehingga ketika Anda mencoba untuk menyimpan sesuatu dalam tabel hash 570 00:41:07,000 --> 00:41:11,000 Anda harus menentukan bahwa Anda ingin menyimpannya dengan kunci tertentu, 571 00:41:11,000 --> 00:41:17,000 dan kunci yang menentukan lokasi nilai dan di mana itu akan disimpan. 572 00:41:17,000 --> 00:41:22,000 Kau seperti punya kedua konsep tersebut terjadi pada saat yang sama dalam array PHP, 573 00:41:22,000 --> 00:41:27,000 dan sebagai hasilnya, kita sering menyebut array asosiatif 574 00:41:27,000 --> 00:41:33,000 di mana kita bergaul kunci dalam nilai. 575 00:41:33,000 --> 00:41:39,000 Pada bagian berikutnya kita berbicara tentang array PHP sederhana 576 00:41:39,000 --> 00:41:45,000 di mana kita memiliki kunci yang b, dan c, 577 00:41:45,000 --> 00:41:53,000 semua string, pemetaan ke, bilangan bulat 1 2, dan 3. 578 00:41:53,000 --> 00:41:57,000 Dan Anda dapat memiliki kunci dari berbagai jenis. 579 00:41:57,000 --> 00:42:00,000 >> Anda dapat memiliki beberapa kunci yang string, beberapa kunci yang bilangan bulat. 580 00:42:00,000 --> 00:42:03,000 Anda dapat memiliki nilai dari berbagai jenis. 581 00:42:03,000 --> 00:42:06,000 Anda dapat memiliki nilai yang string, nilai yang integer, 582 00:42:06,000 --> 00:42:11,000 nilai yang merupakan objek atau array lain, misalnya, 583 00:42:11,000 --> 00:42:16,000 semua dalam objek array yang sama, yang agak aneh. 584 00:42:16,000 --> 00:42:20,000 Anda tidak harus memiliki sebuah array yang hanya punya satu jenis elemen di dalamnya. 585 00:42:20,000 --> 00:42:26,000 Anda dapat memiliki banyak hal yang berbeda terjadi di sana. 586 00:42:26,000 --> 00:42:33,000 Hal lain yang perlu diperhatikan adalah bahwa ketika Anda melihat sesuatu seperti ini dalam kode Anda, 587 00:42:33,000 --> 00:42:38,000 yang merupakan PHP berlaku untuk mendeklarasikan array seperti ini, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 yang akan mendeklarasikan $ arr diinisialisasi menjadi array ini. 589 00:42:43,000 --> 00:42:48,000 Tapi apa yang Anda benar-benar mendapatkan di bawah tenda adalah semacam ini implisit 590 00:42:48,000 --> 00:42:55,000 generasi kunci di mana kita punya 0 to 0, 1 ke 1, 2 dengan 2, 3 sampai 3. 591 00:42:55,000 --> 00:42:59,000 Dan ternyata bahwa bahkan jika Anda memiliki sebuah array seperti orang ini di sini 592 00:42:59,000 --> 00:43:03,000 di mana Anda memiliki, b dan c sebagai kunci 593 00:43:03,000 --> 00:43:09,000 dan kemudian Anda mulai menggunakan metode push array untuk mulai menggunakan array ini seperti stack, 594 00:43:09,000 --> 00:43:12,000 sehingga Anda dapat melihat bahwa ini objek array, array ini benar-benar menjadi kelebihan beban. 595 00:43:12,000 --> 00:43:15,000 Kita dapat menggunakannya sebagai array. Kita dapat menggunakannya sebagai tabel hash. 596 00:43:15,000 --> 00:43:19,000 Kita dapat menggunakannya sebagai stack. 597 00:43:19,000 --> 00:43:22,000 Ketika Anda mulai mendorong hal-hal ke array ini 598 00:43:22,000 --> 00:43:30,000 hal pertama yang Anda mendorong ke ini akan menjadi indeks 0 dan kemudian indeks 1 dan indeks 2. 599 00:43:30,000 --> 00:43:33,000 Anda bisa mendapatkan jenis generasi implisit kunci 600 00:43:33,000 --> 00:43:38,000 kecuali jika Anda menentukan secara eksplisit. 601 00:43:38,000 --> 00:43:43,000 Cara Anda menentukan kunci-kunci eksplisit, tentu saja, adalah dengan menggunakan notasi bracket, 602 00:43:43,000 --> 00:43:48,000 yang mirip dengan array kecuali bukan hanya mengizinkan 603 00:43:48,000 --> 00:43:54,000 indeks bilangan bulat di sini, sekarang kita membiarkan apa pun. 604 00:43:54,000 --> 00:43:57,000 Jika Anda ingin kunci Anda menjadi string, Anda akan menentukan seperti ini. 605 00:43:57,000 --> 00:44:06,000 Jika Anda ingin menjadi int, Anda tentukan dengan int yang ingin Anda gunakan. 606 00:44:06,000 --> 00:44:13,000 >> Pertanyaan pada yang sejauh ini? 607 00:44:13,000 --> 00:44:18,000 Salah satu hal yang menyenangkan tentang ide ini 608 00:44:18,000 --> 00:44:26,000 adalah bahwa Anda dapat hanya pernah memiliki satu nilai yang disimpan dengan kunci tertentu. 609 00:44:26,000 --> 00:44:32,000 Jika kita kembali ke kami alat-biarkan aku menghapus beberapa hal ini. 610 00:44:32,000 --> 00:44:47,000 Dan katakanlah saya menginisialisasi sebuah array menjadi 0, 1, 2, dilakukan. 611 00:44:47,000 --> 00:44:55,000 Jika saya sekarang tahu bahwa, misalnya, jika saya echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Aku akan mendapatkan nilai 0 dicetak, 613 00:44:59,000 --> 00:45:05,000 dan karena hanya ada yang pernah menjadi salah satu nilai yang disimpan untuk kunci tertentu 614 00:45:05,000 --> 00:45:11,000 jika saya menyimpan sesuatu di $ arr [0], mengatakan, 615 00:45:11,000 --> 00:45:16,000 maka saya tahu ketika saya echo $ arr [0] lagi 616 00:45:16,000 --> 00:45:19,000 Aku tidak akan mendapatkan 0 dicetak seperti sebelumnya. 617 00:45:19,000 --> 00:45:24,000 Aku hanya akan mendapatkan. 618 00:45:24,000 --> 00:45:30,000 Jadi ini pada dasarnya mengatakan bahwa saya tidak dapat memiliki $ arr [0] menyimpan 2 nilai yang berbeda. 619 00:45:30,000 --> 00:45:34,000 Hal ini tidak bisa menyimpan baik 0 dan string, seperti ini benar-benar menggantikan 620 00:45:34,000 --> 00:45:38,000 apa yang berada di $ arr [0] sebelumnya. 621 00:45:38,000 --> 00:45:43,000 Alasan saya membawa ini menjalankannya, melihat apa yang terjadi. 622 00:45:43,000 --> 00:45:47,000 Lihat di sini bahwa saya mendapat 0 dicetak dan kemudian di sini. 623 00:45:47,000 --> 00:45:51,000 Tidak ada baris baru di sana karena saya malas dan tidak menempatkan yang masuk 624 00:45:51,000 --> 00:45:54,000 Apa yang keren tentang ini adalah kita dapat menggunakan ini sebagai cara 625 00:45:54,000 --> 00:46:00,000 untuk menangkap ide ini set 626 00:46:00,000 --> 00:46:07,000 di mana kita tidak bisa memiliki beberapa tombol dalam array. 627 00:46:07,000 --> 00:46:10,000 Kita tidak bisa memiliki kunci identik dalam sebuah array. 628 00:46:10,000 --> 00:46:17,000 Saya tidak dapat memiliki tombol 0 dan nilai 1 dan 0 kunci dan nilai 629 00:46:17,000 --> 00:46:21,000 atau tombol 0 dan nilai sebenarnya. 630 00:46:21,000 --> 00:46:27,000 Kunci semua-hanya ada 1 kunci dalam array. 631 00:46:27,000 --> 00:46:32,000 Meskipun Anda dapat memiliki nilai yang sama disimpan 632 00:46:32,000 --> 00:46:35,000 beberapa kali dalam array di bawah kunci yang berbeda 633 00:46:35,000 --> 00:46:42,000 itu tidak mungkin untuk memiliki kunci identik beberapa kali dalam array PHP Anda. 634 00:46:42,000 --> 00:46:47,000 >> Jika kita melihat ini masalah berikutnya, unique.php, 635 00:46:47,000 --> 00:46:51,000 di mana kita ingin membuka file PHP 636 00:46:51,000 --> 00:46:54,000 berisi daftar string, satu string per baris, 637 00:46:54,000 --> 00:47:01,000 dan kami ingin menemukan semua string yang unik dalam file tersebut 638 00:47:01,000 --> 00:47:06,000 yang harus kita lakukan adalah menggunakan salah satu array PHP 639 00:47:06,000 --> 00:47:12,000 dan menggunakan string dalam file sebagai kunci array ini 640 00:47:12,000 --> 00:47:17,000 dan terus mengupdate array kita seperti kita menyimpan kunci-kunci baru. 641 00:47:17,000 --> 00:47:22,000 Seperti yang kita baca setiap baris dari file yang kita dapat menyimpannya dalam array, 642 00:47:22,000 --> 00:47:28,000 dan pada akhirnya kita akan memiliki sebagai kunci kami dalam array kami 643 00:47:28,000 --> 00:47:34,000 semua string yang unik dalam file. 644 00:47:34,000 --> 00:47:37,000 Apakah itu masuk akal? 645 00:47:37,000 --> 00:47:41,000 Mari kita lihat bagaimana ini bekerja. 646 00:47:41,000 --> 00:47:49,000 Kita akan membuka, sesuai dengan spec, sebuah file baru yang disebut unique.php. 647 00:47:49,000 --> 00:47:58,000 Buka. Ups, maaf, file baru. 648 00:47:58,000 --> 00:48:03,000 Kita akan memulai itu dengan tag awal dan akhir yang sama. 649 00:48:03,000 --> 00:48:17,000 Kita akan menyimpannya di bagian 9, dan kita akan menyebutnya unique.php. 650 00:48:17,000 --> 00:48:25,000 Oke, sekarang tampilannya masuk 651 00:48:25,000 --> 00:48:32,000 Idenya di sini adalah membuka file, 652 00:48:32,000 --> 00:48:38,000 membaca file baris demi baris. 653 00:48:38,000 --> 00:48:46,000 Untuk setiap baris dalam file 654 00:48:46,000 --> 00:48:51,000 kita akan memiliki sebuah array di mana kita memiliki 655 00:48:51,000 --> 00:49:03,000  garis sebagai kunci kami. 656 00:49:03,000 --> 00:49:09,000 Dan kemudian ketika kita sampai ke akhir di sini 657 00:49:09,000 --> 00:49:17,000 Kunci $ arr ini adalah garis yang unik 658 00:49:17,000 --> 00:49:25,000 dari file karena kita tahu bahwa jika saya menempatkan baris dalam array ini 659 00:49:25,000 --> 00:49:33,000 beberapa kali itu hanya akan terus menimpa nilai lama, 660 00:49:33,000 --> 00:49:46,000 dan kita benar-benar dapat menempatkan line array sebagai dirinya sendiri begitu saja. 661 00:49:46,000 --> 00:49:48,000 >> Ini agak aneh. 662 00:49:48,000 --> 00:49:52,000 Kami menyimpan nilai pasangan kunci yang sama berulang-ulang, 663 00:49:52,000 --> 00:50:00,000 tapi karena kita dijamin bahwa akan ada hanya 1 kunci yang disebut garis 664 00:50:00,000 --> 00:50:05,000 jadi jika kita memiliki sebuah file yang mengatakan-file dari suara-suara binatang dan memiliki guk, guk, 665 00:50:05,000 --> 00:50:11,000 meong, meong, moo, moo, dan setiap kali kita membaca sebuah suara hewan keluar 666 00:50:11,000 --> 00:50:15,000 seperti pakan dan kami menyimpannya dalam array kita kita mendapatkan pakan, dan kemudian kedua kalinya 667 00:50:15,000 --> 00:50:20,000 kita menyimpan guk akan menimpa pertama kalinya bahwa kita menyimpannya. 668 00:50:20,000 --> 00:50:25,000 Pada akhirnya kita hanya akan memiliki satu entri dalam array 669 00:50:25,000 --> 00:50:33,000 untuk setiap suara-suara binatang dalam file suara satwa kita. 670 00:50:33,000 --> 00:50:41,000 Apakah kalian merasa yakin bahwa Anda dapat menangani pembukaan sebuah file di PHP? 671 00:50:41,000 --> 00:50:45,000 Salah satu cara untuk melakukannya-mari kita membahas cara ini cepat-satu untuk melakukannya 672 00:50:45,000 --> 00:50:50,000 adalah dengan fopen, seperti kita lihat sebelumnya. 673 00:50:50,000 --> 00:50:55,000 Anda dapat fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Anda dapat membukanya dalam modus baca, seperti di C. 675 00:50:59,000 --> 00:51:02,000 Itu salah satu cara yang sangat baik untuk melakukannya. 676 00:51:02,000 --> 00:51:05,000 Anda juga maka untuk membaca file baris demi baris 677 00:51:05,000 --> 00:51:12,000 memiliki fungsi yang sama, banyak dari mereka, yang Anda lakukan di C. 678 00:51:12,000 --> 00:51:14,000 Anda memiliki fgets. 679 00:51:14,000 --> 00:51:17,000 Anda memiliki feof, meskipun kita tidak suka menggunakan yang 680 00:51:17,000 --> 00:51:22,000 karena, ingat, itu tidak besar di C. 681 00:51:22,000 --> 00:51:25,000 Anda dapat melakukannya dengan cara yang sama, 682 00:51:25,000 --> 00:51:34,000 tapi di sini adalah hal yang benar-benar keren. 683 00:51:34,000 --> 00:51:41,000 Maaf, saya tidak ingin melakukan $ file, tapi ada fungsi yang disebut file di PHP, 684 00:51:41,000 --> 00:51:47,000 dan fungsi ini di sini adalah sejuk karena membaca seluruh isi 685 00:51:47,000 --> 00:51:52,000 dari file yang Anda tentukan, sehingga some_file.txt, 686 00:51:52,000 --> 00:51:56,000 membaca seluruh isi file ini ke dalam array 687 00:51:56,000 --> 00:52:03,000 dan kemudian memungkinkan Anda iterate lebih dari itu, yang cukup bagus. 688 00:52:03,000 --> 00:52:07,000 >> Jika kita pergi, misalnya, ke browser web kami 689 00:52:07,000 --> 00:52:14,000 dan kita melihat Google untuk file PHP 690 00:52:14,000 --> 00:52:23,000 Anda dapat melihat di sini bahwa pengguna kami mengatakan file yang membaca berkas tersebut ke dalam array, 691 00:52:23,000 --> 00:52:27,000 dan kita bisa file_get_contents untuk mengembalikan isi file sebagai string, 692 00:52:27,000 --> 00:52:30,000 tetapi biasanya hanya mendapatkan itu sebagai array benar-benar baik karena apa yang dilakukannya 693 00:52:30,000 --> 00:52:33,000 yang rusak itu sehingga setiap elemen 694 00:52:33,000 --> 00:52:37,000 dalam array adalah satu baris dari file tersebut, 695 00:52:37,000 --> 00:52:41,000 jadi jika kita melihat file 0, itu baris pertama dari file. 696 00:52:41,000 --> 00:52:46,000 File 1 line, kedua, file 2, baris ketiga, dan seterusnya dan seterusnya. 697 00:52:46,000 --> 00:52:50,000 Bukankah akan lebih baik jika itu semua Anda harus dilakukan di C? 698 00:52:50,000 --> 00:52:53,000 Cukup bagus. 699 00:52:53,000 --> 00:52:59,000 David menunjukkan hal ini di kuliah, dan idiom ia menunjukkan itu 700 00:52:59,000 --> 00:53:03,000 bahwa selain standar kami untuk loop-in PHP kita punya 701 00:53:03,000 --> 00:53:09,000 for ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 dan Anda dapat melakukan ini di PHP juga, sama hal- 703 00:53:16,000 --> 00:53:27,000 kami juga memiliki konstruksi keren disebut foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach benar-benar berguna ketika iterasi array atau struktur data 705 00:53:32,000 --> 00:53:36,000 karena memungkinkan Anda untuk menarik keluar setiap elemen dari array 706 00:53:36,000 --> 00:53:42,000 tanpa harus secara manual melakukan pengindeksan sendiri, 707 00:53:42,000 --> 00:53:46,000 tanpa harus secara manual membuat variabel indeks, kenaikan itu, 708 00:53:46,000 --> 00:53:51,000 tarik keluar nilai dalam array pada saat itu, karena itu adalah hal yang sangat umum yang dapat dilakukan. 709 00:53:51,000 --> 00:53:54,000 >> Anda mungkin telah melakukan hal itu ton saat-saat ketika Anda melakukan hal-hal C 710 00:53:54,000 --> 00:54:00,000 selama semester, sehingga dengan foreach 711 00:54:00,000 --> 00:54:06,000 kita bisa loop atas array file, 712 00:54:06,000 --> 00:54:12,000 dan sintaks adalah bahwa kita ingin sekarang loop selama array ini 713 00:54:12,000 --> 00:54:18,000 dan menentukan bahwa variabel kita akan gunakan untuk menyimpan 714 00:54:18,000 --> 00:54:27,000 unsur ini array lokal, lokal untuk lingkup ini loop foreach, 715 00:54:27,000 --> 00:54:32,000 adalah kita akan menyebutnya garis. 716 00:54:32,000 --> 00:54:38,000 Jika itu adalah file hanya kata-kata dan ada satu kata dalam satu baris 717 00:54:38,000 --> 00:54:43,000 kita bisa menyebutnya kata juga, benar-benar hanya Anda memberikan nama, 718 00:54:43,000 --> 00:54:49,000 apa pun yang Anda ingin menyebutnya, 719 00:54:49,000 --> 00:55:02,000 dan kemudian dalam loop Anda dapat melakukan apapun yang Anda inginkan dengan baris ini variabel. 720 00:55:02,000 --> 00:55:08,000 Jika itu tidak cukup untuk mendapatkan nilai array dan Anda juga ingin mendapatkan 721 00:55:08,000 --> 00:55:17,000 indeks bersama dengan itu Anda dapat menentukan nama untuk indeks 722 00:55:17,000 --> 00:55:22,000 serta nilai, dan sekarang Anda memiliki akses ke 2 variabel. 723 00:55:22,000 --> 00:55:26,000 Anda memiliki $ i dan baris 724 00:55:26,000 --> 00:55:30,000 di mana $ i adalah indeks dalam array, 725 00:55:30,000 --> 00:55:38,000 dan garis adalah garis yang diambil dari file tersebut. 726 00:55:38,000 --> 00:55:49,000 Sebagai contoh, jika kita ingin mencetak gema 0 baris dari file seperti ini, 727 00:55:49,000 --> 00:55:57,000 kita bisa melakukannya seperti ini, "Line $ i file adalah $ line," 728 00:55:57,000 --> 00:56:02,000 dan di sini adalah sesuatu yang kami juga belum melihat belum baik 729 00:56:02,000 --> 00:56:13,000 mana aku hanya benar-benar melompati ini% s% d seluruh bisnis 730 00:56:13,000 --> 00:56:16,000 bahwa kita harus berurusan dengan di C, dan sebagai gantinya aku pergi langsung ke 731 00:56:16,000 --> 00:56:19,000 menulis variabel dalam baris dalam string saya. 732 00:56:19,000 --> 00:56:23,000 >> Ini disebut interpolasi variabel, string interpolasi 733 00:56:23,000 --> 00:56:26,000 di mana Anda memasukkan variabel tepat di, dan interpreter PHP 734 00:56:26,000 --> 00:56:31,000 cukup pintar ketika itu membaca sebuah string yang dimulai dengan tanda kutip ganda- 735 00:56:31,000 --> 00:56:34,000 bukan tanda kutip tunggal, dengan string dikutip tunggal Anda tidak bisa melakukan ini- 736 00:56:34,000 --> 00:56:38,000 tetapi dengan string dikutip ganda seperti membaca melalui itu sedang mencari variabel. 737 00:56:38,000 --> 00:56:42,000 Ini memburu mereka, dan jika melihat variabel itu akan mengambil nilai dari variabel 738 00:56:42,000 --> 00:56:47,000 dan memasukkannya ke string jika dapat mengubahnya menjadi representasi string, 739 00:56:47,000 --> 00:56:51,000 yang cukup bagus. 740 00:56:51,000 --> 00:56:56,000 Untuk saat ini, mari kita komentar keluar sisa dari segala sesuatu, 741 00:56:56,000 --> 00:57:00,000 menyimpan, dan apa yang bisa kita lakukan sekarang adalah kita dapat membuka file 742 00:57:00,000 --> 00:57:06,000 bahwa kita dapat memanggil some_file.txt-mari kita membuat file baru- 743 00:57:06,000 --> 00:57:15,000 dan kita bisa dimasukkan ke dalam banyak hal omong kosong di sini hanya untuk menguji semuanya, 744 00:57:15,000 --> 00:57:25,000 menyimpannya, sebut saja some_file.txt, seperti yang saya lakukan di sini di atas, 745 00:57:25,000 --> 00:57:33,000 dan sekarang jika saya zoom out hanya untuk memastikan semuanya dalam direktori yang sama- 746 00:57:33,000 --> 00:57:36,000 sepertinya saya memiliki unique.php dan some_file.txt dalam direktori yang sama. 747 00:57:36,000 --> 00:57:42,000 Jika saya menjalankan unique.php php 748 00:57:42,000 --> 00:57:51,000 melihat bagaimana ia akan mencetak setiap baris dalam file saya dan apa garis adalah? 749 00:57:51,000 --> 00:57:56,000 >> Itu cukup kuat, kan? 750 00:57:56,000 --> 00:58:03,000 Dengar, butuh 3 baris kode untuk membuka file. 751 00:58:03,000 --> 00:58:08,000 Nah, 4 baris kode. Saya tidak bisa menghitung hari, jelas. 752 00:58:08,000 --> 00:58:13,000 Tapi benar-benar hanya 2 baris kode yang menarik, karena 2 lainnya adalah kurung kurawal, 753 00:58:13,000 --> 00:58:17,000 tetapi dalam kode ini banyak kita mampu untuk membuka file, iterate melalui itu, 754 00:58:17,000 --> 00:58:20,000 menarik keluar nomor baris dan garis itu sendiri 755 00:58:20,000 --> 00:58:24,000 dan mencetaknya. 756 00:58:24,000 --> 00:58:26,000 Cool stuff. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Saya punya pertanyaan tentang sintaks. 758 00:58:28,000 --> 00:58:33,000 Jadi foreach penawaran dengan setiap baris dari file yang Anda buka, 759 00:58:33,000 --> 00:58:37,000 dan kemudian ketika Anda ingin melakukan hal-hal dengan setiap baris Anda hanya melakukannya sebagai 760 00:58:37,000 --> 00:58:39,000 dan kemudian mengasosiasikan nilai. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Apa yang dapat Anda lakukan di sini-pertanyaan itu 762 00:58:41,000 --> 00:58:46,000 foreach ada hubungannya dengan array, sehingga sintaks foreach 763 00:58:46,000 --> 00:58:51,000 benar-benar foreach, dan perhatikan bahwa ada tidak ada ruang 764 00:58:51,000 --> 00:58:53,000 atau apa pun antara untuk dan masing-masing. 765 00:58:53,000 --> 00:58:56,000 Mereka harus pergi tepat di samping satu sama lain, 766 00:58:56,000 --> 00:59:00,000 dan kemudian dibutuhkan dalam array, 767 00:59:00,000 --> 00:59:05,000 dan kemudian Anda memiliki kata kunci lain yang disebut sebagai yang harus ada di sana, 768 00:59:05,000 --> 00:59:11,000 dan kemudian setelah karena Anda dapat menempatkan satu nama variabel, 769 00:59:11,000 --> 00:59:14,000 dalam hal ini Anda akan menarik keluar nilai-nilai dari array, 770 00:59:14,000 --> 00:59:20,000 bukan indeks, atau jika Anda melakukannya seperti yang kita telah tertulis di bawah 771 00:59:20,000 --> 00:59:24,000 Anda mendapatkan kunci dan nilai-nilai. 772 00:59:24,000 --> 00:59:33,000 Anda memiliki elemen dari array foreach atau sepasang array sebagai bersemangat untuk nilai 773 00:59:33,000 --> 00:59:38,000 atau hanya sebagai nilai. 774 00:59:38,000 --> 00:59:40,000 Tergantung pada apa yang Anda butuhkan, jika Anda tidak memerlukan kunci, 775 00:59:40,000 --> 00:59:42,000 maka Anda dapat pergi dengan nilai. 776 00:59:42,000 --> 00:59:45,000 Jika Anda ingin tombol Anda dapat pergi dengan mereka juga. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Saya juga menyadari bahwa kami tidak pernah menyatakan i atau baris. 778 00:59:48,000 --> 00:59:51,000 Bagaimana bahkan tahu apa yang mereka? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Apa yang Anda maksud dengan menyatakan? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Kami tidak pernah mengatakan kepada mereka apa yang saya atau garis berarti. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Kami tidak pernah mengatakan kepada komputer apa yang saya atau garis berarti dalam hal- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] Bahwa mereka diindeks atau bahwa mereka- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Kami tidak pernah mengatakan bahwa ini seharusnya menjadi indeks atau kunci dan nilai, 784 01:00:09,000 --> 01:00:13,000 dan itu karena itulah interpreter PHP. 785 01:00:13,000 --> 01:00:17,000 Ini berfungsi sebagai deklarasi dan mengatakan apa-apa, kuncinya akan menjadi 786 01:00:17,000 --> 01:00:20,000 variabel yang disebut i disimpan dalam sebuah variabel yang disebut i. 787 01:00:20,000 --> 01:00:24,000 Nilai ini akan disimpan dalam sebuah garis yang disebut variabel, 788 01:00:24,000 --> 01:00:28,000 jadi ini berfungsi sebagai deklarasi dari variabel-variabel 789 01:00:28,000 --> 01:00:35,000 dan mengatakan $ i adalah kunci, dan $ garis adalah nilai. 790 01:00:35,000 --> 01:00:37,000 Ya, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Jika tombol tidak dilakukan secara numerik 792 01:00:41,000 --> 01:00:44,000 bagaimana cara memutuskan apa urutan itu akan mencetak segala sesuatu? 793 01:00:44,000 --> 01:00:47,000 Apakah seperti urutan itu dimasukkan dalam? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Mari kita mencobanya. 795 01:00:51,000 --> 01:00:57,000 Mari kita membuat sebuah variabel yang disebut arr, 796 01:00:57,000 --> 01:01:06,000 dan kita bisa melakukan pergi ke 7. 797 01:01:06,000 --> 01:01:19,000 Katakanlah 0 pergi ke array lain dengan 1, 2, atau apel. 798 01:01:19,000 --> 01:01:30,000 Katakanlah 7 pergi ke 1, b pergi ke 2, 799 01:01:30,000 --> 01:01:39,000 dan 3 pergi ke 4. 800 01:01:39,000 --> 01:01:44,000 Ini adalah jenis contoh mencari gila karena kita mencampur 801 01:01:44,000 --> 01:01:47,000 string dan integer seluruh tempat. 802 01:01:47,000 --> 01:01:50,000 Tidak ada perintah nyata untuk array ini. 803 01:01:50,000 --> 01:01:55,000 Maksudku, kita bisa memesan segala sesuatu dalam urutan abjad oleh kunci. 804 01:01:55,000 --> 01:01:57,000 Kita bisa memesan semuanya abjad oleh nilai. 805 01:01:57,000 --> 01:02:00,000 >> Kita bisa mencoba dan mempertimbangkan bahwa beberapa string, beberapa ints, 806 01:02:00,000 --> 01:02:03,000 dan kami bisa mencoba dan mengubah mereka semua dengan jenis yang sama dan melihat apa yang terjadi, 807 01:02:03,000 --> 01:02:09,000 atau kita bisa menganggap mereka dalam nilai di mana kita sudah memasuki mereka 808 01:02:09,000 --> 01:02:14,000 di mana kami menempatkan orang ini di pertama, orang ini di urutan kedua, ketiga orang ini di, 809 01:02:14,000 --> 01:02:19,000 orang ini di keempat sebagainya, et. 810 01:02:19,000 --> 01:02:23,000 Mari kita lihat apa yang terjadi ketika kita menjalankan kode ini. 811 01:02:23,000 --> 01:02:29,000 Jika kita scroll ke bawah dan melakukan hal yang sama, 812 01:02:29,000 --> 01:02:31,000 dan di sini itu tidak mencetak baris baru. 813 01:02:31,000 --> 01:02:35,000 Ketika membaca hal-hal keluar dari file itu termasuk baris baru dalam nilai-nilai, 814 01:02:35,000 --> 01:02:38,000 yang mengapa dicetak dengan baik, sedangkan di sini tidak, 815 01:02:38,000 --> 01:02:40,000 jadi itu sebabnya semuanya smushed bersama-sama. 816 01:02:40,000 --> 01:02:44,000 Mari kita tambahkan dalam baris baru hanya untuk membuat hal-hal yang baik. 817 01:02:44,000 --> 01:02:51,000 Mari kita jalankan kembali, dan jadi di sini 818 01:02:51,000 --> 01:02:54,000 melihat apa yang terjadi. 819 01:02:54,000 --> 01:03:00,000 Ini dicetak semuanya dalam urutan yang kita memasukkannya ke dalam array. 820 01:03:00,000 --> 01:03:10,000 Ini mempertahankan ketertiban dalam pengertian itu. 821 01:03:10,000 --> 01:03:15,000 >> Kembali ke masalah ini unik 822 01:03:15,000 --> 01:03:20,000 di mana kita ingin dapat iterate atas file, 823 01:03:20,000 --> 01:03:24,000 dan kami akan memberikan some_file.txt, 824 01:03:24,000 --> 01:03:27,000 dan kita akan iterate di atasnya seperti ini. 825 01:03:27,000 --> 01:03:31,000 Kami mengatakan bahwa kami ingin menggunakan array untuk memastikan bahwa kita akan mendapat semua 826 01:03:31,000 --> 01:03:36,000 garis yang unik keluar dari sana, dan kita bisa melakukan itu benar-benar mudah 827 01:03:36,000 --> 01:03:49,000 dengan hanya menyimpan dalam array yang kita tentu mendeklarasikan di luar lingkup lingkaran, 828 01:03:49,000 --> 01:03:55,000 dan kami mengatakan bahwa jika kita menggunakan baris dalam file sebagai kunci dalam array kami 829 01:03:55,000 --> 01:03:59,000 jika kita memasuki garis duplikat kami akan menimpa nilai sebelumnya. 830 01:03:59,000 --> 01:04:08,000 Ini tidak pernah mungkin untuk memiliki 2 kunci yang identik dalam array yang sama. 831 01:04:08,000 --> 01:04:13,000 Kita bisa melakukan hal itu. 832 01:04:13,000 --> 01:04:17,000 Kita akan menyingkirkan pernyataan gema di sini. 833 01:04:17,000 --> 01:04:24,000 Di sini kita menyimpan baris dalam file dalam array kita 834 01:04:24,000 --> 01:04:28,000 menggunakan dirinya sebagai kunci. 835 01:04:28,000 --> 01:04:32,000 Tidak ada yang ke sana, dan ternyata bahwa kita bahkan tidak perlu kunci ini. 836 01:04:32,000 --> 01:04:38,000 Kita tidak perlu bahwa saya variabel. 837 01:04:38,000 --> 01:04:43,000 Pada titik ini jika kita melakukan lain loop foreach 838 01:04:43,000 --> 01:04:48,000 dan kami adalah untuk loop atas setiap arr 839 01:04:48,000 --> 01:04:56,000 dan garis sekarang jika kita echo-oops, maaf. 840 01:04:56,000 --> 01:05:00,000 Kita tidak bisa menggunakan koma. Kami harus menggunakan ini sebagai kata kunci. 841 01:05:00,000 --> 01:05:05,000 Sekarang jika kita menggemakan baris kita harus mendapatkan semua kata-kata unik dalam file. 842 01:05:05,000 --> 01:05:10,000 Jika kita pergi ke some_file.txt, 843 01:05:10,000 --> 01:05:19,000 dan katakanlah kita lakukan apel, pisang, apel, apel, pisang, 844 01:05:19,000 --> 01:05:22,000 jika kita mencetak semua kata-kata unik dalam file ini kita hanya harus mendapatkan 845 01:05:22,000 --> 01:05:30,000 apel dan pisang untuk mencetak. 846 01:05:30,000 --> 01:05:36,000 Jika kita menyimpan, sekarang di sini kita akan tampilannya kembali, 847 01:05:36,000 --> 01:05:44,000 php unique.php, dan ta-da. 848 01:05:44,000 --> 01:05:51,000 Kami telah berhasil uniqued file. 849 01:05:51,000 --> 01:05:55,000 >> Bagian akhir dari masalah ini adalah meminta Anda untuk mengurutkan array ini sebelum Anda mencetaknya 850 01:05:55,000 --> 01:05:58,000 karena dalam contoh sederhana yang baru saja kita lakukan 851 01:05:58,000 --> 01:06:04,000 kami beruntung dalam arti bahwa file- 852 01:06:04,000 --> 01:06:06,000 kami melakukan ini contoh buat dengan apel dan pisang. 853 01:06:06,000 --> 01:06:08,000 Itu sudah diurutkan. 854 01:06:08,000 --> 01:06:19,000 Tetapi menggunakan fungsi semacam sederhana Anda dapat mengurutkan sebuah array, yang cukup bagus. 855 01:06:19,000 --> 01:06:24,000 Hal terakhir yang saya ingin berbicara dengan kalian tentang benar-benar cepat 856 01:06:24,000 --> 01:06:31,000 adalah bahwa ini semacam PHP adalah semua baik dan bagus, dan itu super berguna 857 01:06:31,000 --> 01:06:43,000 untuk mengetahui bagaimana yang harus dilakukan jika Anda merasa perlu untuk melakukan sedikit, hal yang cepat pemrograman. 858 01:06:43,000 --> 01:06:48,000 Sebagai contoh, jika saya harus menulis sebuah program yang, katakanlah, 859 01:06:48,000 --> 01:06:53,000 menempatkan orang ke dalam bagian aku tidak akan pergi dan menuliskannya dalam C. 860 01:06:53,000 --> 01:06:55,000 Ini akan menjadi panjang. 861 01:06:55,000 --> 01:06:57,000 Ini akan menjadi semacam sakit, terutama jika ada file yang terlibat, 862 01:06:57,000 --> 01:07:00,000 sama seperti kalian telah melihat. 863 01:07:00,000 --> 01:07:05,000 Hal ini sangat baik bahwa hanya dengan kode ini banyak di sini 864 01:07:05,000 --> 01:07:08,000 kami mampu merobek melalui file, mengeluarkan semua nilai-nilai unik 865 01:07:08,000 --> 01:07:11,000 dan mencetaknya kembali. 866 01:07:11,000 --> 01:07:16,000 >> Namun, untuk tugas Anda, untuk proyek-proyek Anda, 867 01:07:16,000 --> 01:07:20,000 jika Anda sedang membangun website dengan PHP listrik adalah bahwa 868 01:07:20,000 --> 01:07:25,000 kita menjalankan file PHP kita melalui penerjemah ini, 869 01:07:25,000 --> 01:07:29,000 dan penafsir sedang memproses segala sesuatu dalam tag PHP, 870 01:07:29,000 --> 01:07:34,000 meninggalkan segala sesuatu yang lain tidak tersentuh dan meludah keluar hasilnya. 871 01:07:34,000 --> 01:07:40,000 Kita dapat melakukan ini untuk membangun HTML pemrograman. 872 01:07:40,000 --> 01:07:46,000 Sekarang, jika kita kembali ke spec, masalah terakhir di spec 873 01:07:46,000 --> 01:07:56,000 berbicara tentang ide konsentrasi 874 01:07:56,000 --> 01:08:01,000 dan menciptakan menu drop-down, 875 01:08:01,000 --> 01:08:06,000 yang Anda mungkin atau mungkin tidak ingin melakukan, tergantung pada apa tugas akhir Anda lakukan, 876 01:08:06,000 --> 01:08:13,000 yang memungkinkan pengguna untuk memilih dari daftar semua konsentrasi yang mungkin 877 01:08:13,000 --> 01:08:15,000 mereka satu konsentrasi. 878 01:08:15,000 --> 01:08:21,000 Sekarang, ini adalah jenis rasa sakit mengetikkan ini 879 01:08:21,000 --> 01:08:25,000 dan harus melakukan semua ini secara manual, terutama ketika Anda harus memastikan 880 01:08:25,000 --> 01:08:28,000 bahwa Anda memiliki semua sudut kurung di tempat yang tepat dan semua tanda kutip di tempat yang tepat, 881 01:08:28,000 --> 01:08:34,000 sehingga dengan PHP Anda dapat melakukan hal ini pemrograman, dan Anda dapat melakukan ini benar-benar cepat. 882 01:08:34,000 --> 01:08:36,000 >> Mari kita lihat bagaimana melakukan hal ini. 883 01:08:36,000 --> 01:08:42,000 Kita akan membuka file baru. 884 01:08:42,000 --> 01:08:46,000 Kita akan dimasukkan ke dalam tag PHP kita. 885 01:08:46,000 --> 01:08:53,000 Kita akan menyebutnya concentrations.php, 886 01:08:53,000 --> 01:08:58,000 dan sekarang ketika Anda melakukan hal ini, seperti hal yang baik untuk berpikir tentang 887 01:08:58,000 --> 01:09:02,000 ketika Anda mencoba untuk mencampur dan mencocokkan PHP dan HTML 888 01:09:02,000 --> 01:09:08,000 adalah mencari tahu, oke, apa bagian yang saya ingin menghasilkan pemrograman? 889 01:09:08,000 --> 01:09:11,000 Apa bagian yang saya pemrograman bisa menghasilkan? 890 01:09:11,000 --> 01:09:17,000 Memang benar bahwa Anda dapat melakukan semua HTML Anda 891 01:09:17,000 --> 01:09:19,000 dalam blok PHP. 892 01:09:19,000 --> 01:09:24,000 Anda dapat echo semua HTML sebagai string. 893 01:09:24,000 --> 01:09:30,000 Sebagai contoh, jika saya ingin memulai melakukan tag pilih dalam PHP 894 01:09:30,000 --> 01:09:46,000 Saya dapat mengatakan gema, katakanlah pilih nama = konsentrasi, 895 01:09:46,000 --> 01:09:49,000 dan kemudian di bawah saya bisa memiliki tag lain gema 896 01:09:49,000 --> 01:09:57,000 atau echo lain yang disebut tutup pilih. 897 01:09:57,000 --> 01:10:00,000 Ini adalah salah satu cara untuk melakukannya karena apa ini benar-benar akan melakukan 898 01:10:00,000 --> 01:10:09,000 adalah mencetak string ini ketika itu dijalankan melalui interpreter PHP, 899 01:10:09,000 --> 01:10:12,000 sehingga hasilnya akan HTML. 900 01:10:12,000 --> 01:10:18,000 Jika saya menyimpan file ini karena sekarang 901 01:10:18,000 --> 01:10:24,000 dan saya menjalankan concentrations.php php 902 01:10:24,000 --> 01:10:26,000 melihat apa yang saya dapatkan. 903 01:10:26,000 --> 01:10:30,000 Aku punya tag pilih buka tutup. 904 01:10:30,000 --> 01:10:36,000 >> Jika saya melakukan ini dan saya adalah untuk menyimpan hasil ini ke file, 905 01:10:36,000 --> 01:10:45,000 mengatakan, concentrations.html-tunggu, sepertinya l telah pergi ke sisi lain- 906 01:10:45,000 --> 01:11:02,000 sekarang jika saya membuka sini concentrations.html Anda melihat saya memiliki file HTML yang valid. 907 01:11:02,000 --> 01:11:05,000 Apakah itu agak aneh? 908 01:11:05,000 --> 01:11:09,000 Kami menggunakan PHP untuk membuat HTML, membuat HTML yang valid. 909 01:11:09,000 --> 01:11:13,000 Cara kita lakukan adalah kita hanya memiliki cetak PHP 910 01:11:13,000 --> 01:11:16,000 HTML yang kita inginkan untuk mencetak. 911 01:11:16,000 --> 01:11:20,000 Ini adalah benar-benar bagaimana website PHP bekerja. 912 01:11:20,000 --> 01:11:24,000 Ketika Anda mengunjungi situs web yang mengirim Anda untuk sesuatu seperti 913 01:11:24,000 --> 01:11:30,000 sesuatu, sesuatu, sesuatu yang dot com slash index.php 914 01:11:30,000 --> 01:11:33,000 komputer secara harfiah memanggil index.php, 915 01:11:33,000 --> 01:11:38,000 menjalankannya melalui juru bahasa PHP, dan apa pun sampah keluar 916 01:11:38,000 --> 01:11:49,000 itu mengirim kembali ke browser dan berkata hey, browser, menafsirkan ini sebagai HTML. 917 01:11:49,000 --> 01:11:54,000 Yang menyenangkan adalah bahwa hal itu dapat menjadi sakit untuk terus menulis echo, echo, echo, gema 918 01:11:54,000 --> 01:11:59,000 dan melampirkan segala sesuatu dalam tanda kutip seperti ini, jadi jika Anda ingin menulis 919 01:11:59,000 --> 01:12:04,000 HTML yang akan menjadi statis diri sendiri Anda dapat melakukannya seperti ini, 920 01:12:04,000 --> 01:12:16,000 meletakkannya di luar, menutupnya, 921 01:12:16,000 --> 01:12:21,000 dan kemudian di sini Anda hanya memasukkan dalam tag PHP apa yang Anda tahu 922 01:12:21,000 --> 01:12:26,000 Anda ingin menghasilkan pemrograman, dan dalam kasus ini, tag tersebut option 923 01:12:26,000 --> 01:12:31,000 yang sakit untuk menghasilkan. 924 01:12:31,000 --> 01:12:37,000 >> Sebagai contoh, kita bisa menghasilkan tag pilihan seribu 925 01:12:37,000 --> 01:12:48,000 dengan melakukan sesuatu seperti ini, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 dan mengatakan nilai gema option = $-ups, saya tidak bisa melakukan itu. 927 01:13:00,000 --> 01:13:03,000 Nah, mari kita mencobanya dan melihat apa yang terjadi. 928 01:13:03,000 --> 01:13:22,000 $ I dan kemudian mengatakan $ i 01:13:27,000 Daripada harus mengetikkan bahwa tag pilihan seribu kali berbeda 930 01:13:27,000 --> 01:13:33,000 Saya menggunakan kode PHP untuk menghasilkan secara otomatis, pemrograman. 931 01:13:33,000 --> 01:13:38,000 Jenis nifty. Ya. 932 01:13:38,000 --> 01:13:41,000 Saya ingat ini yang disebutkan dalam salah satu kuliah atau walkthrough, 933 01:13:41,000 --> 01:13:43,000 tapi apa perbedaan antara tanda kutip, 934 01:13:43,000 --> 01:13:45,000 yang normal dan hal-hal tunggal? 935 01:13:45,000 --> 01:13:49,000 Itu sebenarnya sesuatu yang saya lakukan salah di sini bahwa aku akan menunjukkan kepada Anda. 936 01:13:49,000 --> 01:13:52,000 Tanda kutip tunggal tidak mengizinkan karakter khusus, 937 01:13:52,000 --> 01:13:57,000 sehingga segala sesuatu di dalam string yang dikutip tunggal ditafsirkan secara harfiah. 938 01:13:57,000 --> 01:14:02,000 Jika saya punya \ n dalam tanda kutip tunggal dan saya simpan ini, misalnya, 939 01:14:02,000 --> 01:14:07,000 dan sekarang aku pergi ke sini dan menjalankannya- 940 01:14:07,000 --> 01:14:12,000 oops, mana aku? 941 01:14:12,000 --> 01:14:19,000 Oh, itu karena aku lupa $. 942 01:14:19,000 --> 01:14:25,000 >> Sekarang jika saya membuka-sebenarnya, di sini, kita akan menyingkirkan mengetik ke file. 943 01:14:25,000 --> 01:14:27,000 Kami hanya akan membacanya. 944 01:14:27,000 --> 01:14:34,000 Di sini Anda melihat bahwa saya punya ini literal \ n dalam string, seperti bukan baris baru yang sebenarnya, 945 01:14:34,000 --> 01:14:38,000 dan juga, bukan benar-benar interpolasi nilai dari variabel ini 946 01:14:38,000 --> 01:14:42,000 itu memberi saya $ i itu sendiri, yang merupakan jenis rasa sakit. 947 01:14:42,000 --> 01:14:46,000 Cara sekitar ini adalah dengan menggunakan tanda kutip ganda, 948 01:14:46,000 --> 01:14:52,000 dan kemudian ketika Anda menggunakan tanda kutip ganda itu benar-benar akan 949 01:14:52,000 --> 01:14:56,000 benar interpolasi nilai-nilai dari semua variabel di sini 950 01:14:56,000 --> 01:14:59,000 dan juga mengakui ini \ n menjadi baris baru bahwa itu adalah 951 01:14:59,000 --> 01:15:02,000 dan tidak \ n. 952 01:15:02,000 --> 01:15:07,000 Menggunakan tunggal yang bagus ketika Anda memiliki 953 01:15:07,000 --> 01:15:10,000 karakter yang mungkin ditafsirkan sebagai karakter khusus karena Anda tidak perlu 954 01:15:10,000 --> 01:15:15,000 melarikan diri mereka terus-menerus. 955 01:15:15,000 --> 01:15:18,000 Hal bisa berantakan, dan sering cara saya melakukannya, 956 01:15:18,000 --> 01:15:24,000 hanya untuk membuat hal-hal mudah, adalah bahwa jika aku akan punya apa-apa 957 01:15:24,000 --> 01:15:31,000 HTML seperti dalam kode saya, saya akan memasukkan mengedit dalam tanda kutip tunggal 958 01:15:31,000 --> 01:15:36,000 dan kemudian menggunakan concatenation operator 959 01:15:36,000 --> 01:15:43,000 untuk menggabungkan variabel masuk 960 01:15:43,000 --> 01:15:47,000 Ini merupakan cara lain untuk melakukannya 961 01:15:47,000 --> 01:15:52,000 di mana kita punya titik yang akan menghubungkan ini adalah string 962 01:15:52,000 --> 01:15:56,000 dengan ini dengan ini dengan ini, 963 01:15:56,000 --> 01:15:59,000 dan sekarang saya tidak harus melarikan diri tanda kutip ganda tersebut. 964 01:15:59,000 --> 01:16:02,000 Saya tidak harus menggunakan orang ini untuk melarikan diri. 965 01:16:02,000 --> 01:16:08,000 Mereka benar-benar akan dicetak sebagai tanda kutip ganda dan kemudian orang ini di sini. 966 01:16:08,000 --> 01:16:11,000 Ini adalah cara lain untuk mencampur semuanya bersama-sama. 967 01:16:11,000 --> 01:16:14,000 >> [Mahasiswa] Juga, ketika Anda bergema GetType tidak ada tanda kutip sama sekali. 968 01:16:14,000 --> 01:16:22,000 Benar, jadi gema adalah jenis khusus dalam arti bahwa Anda tidak perlu tanda kurung. 969 01:16:22,000 --> 01:16:29,000 Anda tidak perlu memiliki tanda kutip tentu sekitar variabel, 970 01:16:29,000 --> 01:16:37,000 seperti itu berlaku untuk mengatakan echo $ i, dan itu akan menafsirkan ini sebagai string. 971 01:16:37,000 --> 01:16:44,000 Ini akan melakukan pemain, sehingga kami bisa melakukan hal ini, dan itu berlaku juga, tapi kita tidak membutuhkannya. 972 01:16:44,000 --> 01:16:48,000 Ini opsional. 973 01:16:48,000 --> 01:16:53,000 Dalam sejumlah masalah minggu ini melihat keluar untuk banyak hal semacam ini 974 01:16:53,000 --> 01:16:58,000 di mana Anda mencampur dan mencocokkan HTML dengan PHP 975 01:16:58,000 --> 01:17:08,000 seperti ini, dan sekarang jika kita gulir kembali dan kami jalankan ini 976 01:17:08,000 --> 01:17:13,000 kita dapat melihat bahwa kami memiliki banyak seluruh nilai option 977 01:17:13,000 --> 01:17:15,000 yang baru saja dicetak. 978 01:17:15,000 --> 01:17:20,000 Kami memiliki semua ini HTML yang dihasilkan benar-benar mendapat cepat bagi kita. 979 01:17:20,000 --> 01:17:22,000 Aku akan meninggalkan sebagai latihan. 980 01:17:22,000 --> 01:17:24,000 Ini sangat mirip dengan membaca file yang kita lakukan sebelumnya. 981 01:17:24,000 --> 01:17:31,000 >> Ada sebuah file concentrations.txt bahwa Anda dapat menarik turun dari CDN, 982 01:17:31,000 --> 01:17:34,000 dan Anda dapat membukanya dengan menggunakan trik foreach sama yang kita lakukan sebelumnya, 983 01:17:34,000 --> 01:17:39,000 dan foreach Anda hanya harus echo pilihan dan plug in 984 01:17:39,000 --> 01:17:44,000 nilai-nilai yang tepat, tombol yang sesuai dan indeks, 985 01:17:44,000 --> 01:17:49,000 dan kemudian Anda mendapatkan drop-down yang benar-benar menciptakan 986 01:17:49,000 --> 01:17:54,000 pemrograman untuk Anda semua konsentrasi yang berbeda di Harvard. 987 01:17:54,000 --> 01:17:57,000 Suatu hal yang berguna untuk memiliki. 988 01:17:57,000 --> 01:18:02,000 Ada banyak hal konfigurasi untuk tugas ini. 989 01:18:02,000 --> 01:18:07,000 Jika Anda belum melakukannya sudah mengambil setengah jam berikutnya, jam, 990 01:18:07,000 --> 01:18:10,000 beberapa waktu malam pasti pasti, 991 01:18:10,000 --> 01:18:14,000 berjalan melalui spec sejumlah masalah, 992 01:18:14,000 --> 01:18:20,000 melihat apa yang terjadi dengan menyiapkan vhosts, host lokal, semua hal itu. 993 01:18:20,000 --> 01:18:24,000 Satu hal yang menunjukkan sekarang adalah bahwa 994 01:18:24,000 --> 01:18:30,000 di set masalah yang paling kita sudah masuk ke folder Dropbox Anda 995 01:18:30,000 --> 01:18:34,000 dan kemudian men-download file zip dan masalah set unzipping itu. 996 01:18:34,000 --> 01:18:36,000 Untuk set masalah yang Anda tidak ingin. 997 01:18:36,000 --> 01:18:40,000 Anda ingin masuk ke direktori ini vhosts. 998 01:18:40,000 --> 01:18:45,000 Anda akan ingin pergi ke vhosts dan pergi ke direktori host lokal di dalamnya, 999 01:18:45,000 --> 01:18:50,000 dan ini adalah di mana Anda akan ingin untuk pull down file zip, 1000 01:18:50,000 --> 01:18:55,000 unzip, dan bersiap-siap untuk pergi. 1001 01:18:55,000 --> 01:18:57,000 Anda harus mengikuti langkah-langkah erat. 1002 01:18:57,000 --> 01:19:02,000 >> Jika Anda memiliki pertanyaan, kirim email, posting di Diskusikan, datang ke kantor jam. 1003 01:19:02,000 --> 01:19:08,000 Thanks guys. Minggu depan kita akan memiliki sesi review untuk kuis. 1004 01:19:08,000 --> 01:19:12,000 Nikmati sejumlah masalah terakhir Anda. Saya harap semuanya berjalan dengan sangat baik. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]