1 00:00:00,000 --> 00:00:04,410 >> [MUSIC PLAYING] 2 00:00:04,410 --> 00:00:12,250 3 00:00:12,250 --> 00:00:15,770 >> SPEAKER 1: Ini adalah CS50 dan ini adalah akhir minggu tujuh. 4 00:00:15,770 --> 00:00:20,240 Hari ini adalah mungkin di mana kita benar-benar mengajar bahasa Anda. 5 00:00:20,240 --> 00:00:24,100 Kami diperkenalkan di masa lalu beberapa minggu HTML dan CSS, baik yang 6 00:00:24,100 --> 00:00:25,240 pemrograman bahasa. 7 00:00:25,240 --> 00:00:28,600 Dan memang, meskipun kita tidak melihat hampir semua tag 8 00:00:28,600 --> 00:00:33,410 HTML yang datang dengan dan hampir semua sifat yang datang dengan CSS, 9 00:00:33,410 --> 00:00:35,007 itu semacam itu untuk HTML dan CSS. 10 00:00:35,007 --> 00:00:36,840 Kami hanya akan umumnya mulai dengan asumsi bahwa Anda 11 00:00:36,840 --> 00:00:39,545 memahami ide-ide umum tag, dan atribut, 12 00:00:39,545 --> 00:00:41,850 dan halaman yang dikirim dari client ke server. 13 00:00:41,850 --> 00:00:45,280 >> Karena hari ini kita mulai melihat bahasa pemrograman lain, PHP. 14 00:00:45,280 --> 00:00:47,110 Kita akan melakukan hal ini super cepat. 15 00:00:47,110 --> 00:00:50,910 Kami tidak akan mengajarkan Anda PHP per se, seperti kita tidak bercita-cita untuk mengajarkan Anda 16 00:00:50,910 --> 00:00:52,670 C, per se, melainkan pemrograman. 17 00:00:52,670 --> 00:00:55,088 Dan memang, salah satu tujuan untuk kursus ini 18 00:00:55,088 --> 00:00:57,820 tidak untuk mengajarkan Anda C, atau HTML, atau CSS, atau PHP, 19 00:00:57,820 --> 00:01:00,370 atau sejumlah lainnya kata buzz atau akronim, 20 00:01:00,370 --> 00:01:03,097 melainkan ilmu komputer dan bagaimana program fundamental. 21 00:01:03,097 --> 00:01:05,930 Dan memang, hari ini kita mulai untuk mengambil mereka roda pelatihan dari semua 22 00:01:05,930 --> 00:01:10,600 lanjut dengan terbang melalui bahasa yang disebut PHP, sebagai berikut. 23 00:01:10,600 --> 00:01:13,640 >> Berikut adalah apa bahasa ini tampak seperti. 24 00:01:13,640 --> 00:01:17,790 Ternyata bahwa tidak ada kebutuhan untuk fungsi utama dalam sebuah program yang ditulis 25 00:01:17,790 --> 00:01:19,470 dalam bahasa yang disebut PHP. 26 00:01:19,470 --> 00:01:22,585 Sehingga sudah terdengar sedikit lebih sederhana dari C, dengan yang kita akrab. 27 00:01:22,585 --> 00:01:25,370 Ternyata bahwa jika Anda ingin mendeklarasikan variabel, 28 00:01:25,370 --> 00:01:29,470 Anda melakukannya hampir identik dengan C. Tapi ada jelas salah satu perbedaan di sini 29 00:01:29,470 --> 00:01:31,850 ketika saya menyatakan string, atau mungkin dua perbedaan. 30 00:01:31,850 --> 00:01:32,725 Apa yang terlihat berbeda? 31 00:01:32,725 --> 00:01:35,810 32 00:01:35,810 --> 00:01:37,160 >> AUDIENCE: Tanda dollar. 33 00:01:37,160 --> 00:01:39,951 >> SPEAKER 1: Ya, ada dollar menandatangani, yang kita belum pernah lihat sebelumnya. 34 00:01:39,951 --> 00:01:41,451 Dan apa yang hilang? 35 00:01:41,451 --> 00:01:41,950 Ya? 36 00:01:41,950 --> 00:01:42,820 >> AUDIENCE: [tidak terdengar] 37 00:01:42,820 --> 00:01:44,403 >> SPEAKER 1: Ya, tidak ada tipe data. 38 00:01:44,403 --> 00:01:48,410 Jadi ternyata bahwa PHP adalah apa yang kita sebut bahasa longgar diketik, di mana 39 00:01:48,410 --> 00:01:49,959 C sangat diketik. 40 00:01:49,959 --> 00:01:52,500 Longgar diketik hanya berarti bahwa ada jenis data yang berbeda, 41 00:01:52,500 --> 00:01:54,470 ada string, dan int, dan mengapung. 42 00:01:54,470 --> 00:01:56,330 Namun angka komputer yang keluar. 43 00:01:56,330 --> 00:01:58,664 Anda programmer manusia tidak perlu mengetahuinya. 44 00:01:58,664 --> 00:02:00,580 Jadi semua harus Anda lakukan untuk mendeklarasikan variabel adalah 45 00:02:00,580 --> 00:02:03,220 tanda dolar, nama Anda variabel, dan kemudian, misalnya, 46 00:02:03,220 --> 00:02:04,760 kutipan tanda kutip, halo dunia. 47 00:02:04,760 --> 00:02:07,662 >> Nah ini adalah apa Kondisi seperti di PHP. 48 00:02:07,662 --> 00:02:08,328 Perbedaan? 49 00:02:08,328 --> 00:02:10,650 50 00:02:10,650 --> 00:02:11,150 Tidak. 51 00:02:11,150 --> 00:02:12,540 Jadi ternyata ini adalah identik. 52 00:02:12,540 --> 00:02:14,665 Dan Anda mungkin memiliki lebih sedikit cabang atau cabang lebih, 53 00:02:14,665 --> 00:02:16,557 tapi ternyata sintaks keluar persis sama. 54 00:02:16,557 --> 00:02:18,390 Ekspresi Boolean bisa dipesan bersama-sama. 55 00:02:18,390 --> 00:02:20,400 Ekspresi Boolean dapat anded bersama-sama. 56 00:02:20,400 --> 00:02:21,430 Anda masih memiliki switch. 57 00:02:21,430 --> 00:02:23,790 Bahkan jika Anda belum pernah menggunakan ini, ini memang ada di C 58 00:02:23,790 --> 00:02:26,020 dan mereka fungsional setara dalam PHP. 59 00:02:26,020 --> 00:02:28,260 >> Dan pada kenyataannya, di PHP mereka sedikit lebih kuat. 60 00:02:28,260 --> 00:02:32,540 Dalam C, Anda hanya dapat membandingkan tertentu tipe data seperti int dan karakter, 61 00:02:32,540 --> 00:02:36,320 sedangkan di PHP Anda benar-benar dapat membandingkan string menjadi dewasa penuh tanpa 62 00:02:36,320 --> 00:02:38,460 khawatir tentang pointer dan sejenisnya. 63 00:02:38,460 --> 00:02:39,430 Jadi di sini adalah untuk loop. 64 00:02:39,430 --> 00:02:41,270 Ini hanya pseudocode kode, jika Anda mau. 65 00:02:41,270 --> 00:02:43,400 Tapi secara struktural itu identik dengan C. 66 00:02:43,400 --> 00:02:47,520 >> Berikut adalah while loop, pseudocode therefore-- identik dengan C. 67 00:02:47,520 --> 00:02:49,390 Berikut do sementara loop-- identik. 68 00:02:49,390 --> 00:02:51,390 Dan jadi ada jenis Pola ini di sini di mana 69 00:02:51,390 --> 00:02:54,400 ada sintaksis lain beberapa fitur kita memang akan melihat. 70 00:02:54,400 --> 00:02:57,340 Bahkan, di sini adalah baik cara PHP dimana, 71 00:02:57,340 --> 00:02:59,350 jika Anda ingin iterate lebih array, dan Anda 72 00:02:59,350 --> 00:03:02,309 tidak ingin melompat melalui hoops mental dan sintaksis memiliki 73 00:03:02,309 --> 00:03:05,178 int i sama dengan 0, i kurang dari n, i ditambah plus-- yang 74 00:03:05,178 --> 00:03:07,040 hanya banyak sintaks menjengkelkan. 75 00:03:07,040 --> 00:03:10,654 Anda dapat mengatakan sedikit lebih mulus untuk setiap nomor 76 00:03:10,654 --> 00:03:13,320 sebagai nomor, di mana dalam hal ini nomor tanda dolar, saya mengasumsikan, 77 00:03:13,320 --> 00:03:15,400 adalah seperti sebuah nomor array disebut. 78 00:03:15,400 --> 00:03:18,810 Dan kemudian saya mengasumsikan jumlah, tunggal, akan menjadi variabel. 79 00:03:18,810 --> 00:03:22,940 >> Dan apa yang PHP akan lakukan untuk saya karena saya iterate lebih lingkaran ini, pada setiap iterasi, 80 00:03:22,940 --> 00:03:28,450 itu akan memperbarui jumlah variabel menjadi unsur engan dalam jumlah, jamak. 81 00:03:28,450 --> 00:03:30,060 Sehingga hanya menangani semua itu untuk saya. 82 00:03:30,060 --> 00:03:32,750 Tidak ada tanda kurung, tidak ada tanda dolar, tidak ada titik koma. 83 00:03:32,750 --> 00:03:34,117 Ini hanya sedikit lebih sederhana. 84 00:03:34,117 --> 00:03:35,950 Nah, jika Anda ingin array, ternyata Anda 85 00:03:35,950 --> 00:03:38,908 dapat melakukan sesuatu yang sangat mirip dengan C. sintaks ini sedikit berbeda. 86 00:03:38,908 --> 00:03:41,000 Tapi inilah sebuah array disebut dolar ditandatangani angka. 87 00:03:41,000 --> 00:03:44,261 Dan saya gunakan, PHP, persegi kurung, ternyata. 88 00:03:44,261 --> 00:03:47,260 Dan kita akan melihat ini lagi di JavaScript-- belum bahasa lain. 89 00:03:47,260 --> 00:03:49,968 Saya hanya menggunakan notasi braket persegi memiliki daftar dipisahkan koma 90 00:03:49,968 --> 00:03:51,530 bilangan bulat, dalam hal ini. 91 00:03:51,530 --> 00:03:53,010 Tapi itu memberi saya sebuah array. 92 00:03:53,010 --> 00:03:56,270 >> Tetapi bahkan lebih kuat di PHP, kami juga memiliki apa yang umumnya 93 00:03:56,270 --> 00:03:57,640 disebut array asosiatif. 94 00:03:57,640 --> 00:03:59,540 Dan banyak bahasa memiliki ini juga. 95 00:03:59,540 --> 00:04:03,810 Hal tentang array C adalah bahwa indeks 96 00:04:03,810 --> 00:04:06,940 untuk sebuah array, hal yang Anda digunakan dalam tanda kurung siku melalui yang 97 00:04:06,940 --> 00:04:08,600 Anda mengakses elemen, harus apa? 98 00:04:08,600 --> 00:04:10,620 >> AUDIENCE: [tidak terdengar] 99 00:04:10,620 --> 00:04:14,220 >> SPEAKER 1: Mereka harus nomor atau bilangan bulat, khususnya dari nol ke atas. 100 00:04:14,220 --> 00:04:17,140 Nah, di PHP, dan, ternyata keluar, dalam bahasa lain, 101 00:04:17,140 --> 00:04:20,820 Anda dapat mulai untuk memiliki indeks yang tidak numerik. 102 00:04:20,820 --> 00:04:23,880 Tapi mereka benar-benar kata-kata atau frase, sehingga bukan 103 00:04:23,880 --> 00:04:27,070 mencoba untuk mengingat di mana sesuatu adalah, atau disimpan dalam i variabel, 104 00:04:27,070 --> 00:04:31,720 Anda benar-benar dapat menggunakan kata dan mengatakan itu-- Anda bisa mengatakan kata seperti ini. 105 00:04:31,720 --> 00:04:34,730 >> Jadi kutipan tanda dolar adalah nama variabel di sini. 106 00:04:34,730 --> 00:04:39,360 Ini adalah sintaks agak yang funky itu menghubungkan dua nilai kunci 107 00:04:39,360 --> 00:04:41,250 pasang untuk variabel ini. 108 00:04:41,250 --> 00:04:45,490 Secara khusus, ini memberi saya array yang panjang 2. 109 00:04:45,490 --> 00:04:47,660 Tetapi indeks tidak 0 dan 1. 110 00:04:47,660 --> 00:04:51,250 Indeks adalah kutipan tanda kutip simbol dan harga tanda kutip kutipan. 111 00:04:51,250 --> 00:04:55,990 Dan nilai-nilai dari indeks tersebut, masing-masing, adalah FB untuk Facebook 112 00:04:55,990 --> 00:05:00,360 dan $ 79,53, ketika saya bertahan diperiksa harga untuk ini. 113 00:05:00,360 --> 00:05:01,210 >> Maksudnya itu apa? 114 00:05:01,210 --> 00:05:04,136 Nah, itu berarti bahwa bukannya menulis kode 115 00:05:04,136 --> 00:05:09,612 seperti ini, di mana saya digunakan untuk melakukan sesuatu seperti dolar sign-- atau lebih tepatnya, di C 116 00:05:09,612 --> 00:05:11,070 Aku bahkan tidak akan memiliki tanda dolar. 117 00:05:11,070 --> 00:05:13,490 Saya akan melakukan sesuatu seperti kutipan dan kemudian 118 00:05:13,490 --> 00:05:18,410 Saya akan melakukan braket saya untuk mendapatkan beberapa sewenang-wenang numerik diindeks nilai. 119 00:05:18,410 --> 00:05:21,430 Mulai hari ini di PHP, jika Anda ingin mendapatkan beberapa nilai, 120 00:05:21,430 --> 00:05:24,742 kita semacam memiliki lebih ekspresif semantik. 121 00:05:24,742 --> 00:05:27,450 Hanya cara mewah mengatakan kita bisa panggil saja hal apa yang mereka. 122 00:05:27,450 --> 00:05:29,800 >> Dan jika Anda ingin mendapatkan di simbol sesuatu, 123 00:05:29,800 --> 00:05:32,180 sekarang Anda benar-benar lakukan mengutip simbol tanda kutip 124 00:05:32,180 --> 00:05:34,910 dalam kurung persegi bukannya nomor belaka. 125 00:05:34,910 --> 00:05:36,450 Jadi itu suatu kenyamanan yang baik. 126 00:05:36,450 --> 00:05:38,140 Dan itu semacam itu untuk saat ini. 127 00:05:38,140 --> 00:05:40,240 Ada tandan fitur lain dalam PHP. 128 00:05:40,240 --> 00:05:43,180 Dan memang, PHP dilengkapi dengan wastafel dapur pepatah. 129 00:05:43,180 --> 00:05:48,640 Puluhan, ratusan fungsi datang dengan PHP-- begitu banyak lebih dari datang dengan C. 130 00:05:48,640 --> 00:05:51,360 >> Dan itu tidak dimaksudkan untuk membanjiri melainkan membantu 131 00:05:51,360 --> 00:05:53,900 Anda menyadari bahwa kita tidak ada lagi harus menulis kode 132 00:05:53,900 --> 00:05:55,590 itu semacam di sini konseptual. 133 00:05:55,590 --> 00:05:58,465 Sekarang kita bisa mulai mengambil keuntungan fitur jauh lebih maju 134 00:05:58,465 --> 00:05:59,920 bahwa bahasa-bahasa seperti PHP memiliki. 135 00:05:59,920 --> 00:06:02,630 Jadi kita tidak perlu khawatir tentang bergerak hal di sekitar dalam memori. 136 00:06:02,630 --> 00:06:05,338 Kami tidak perlu khawatir tentang malloc dan semua ini tingkat yang lebih rendah, 137 00:06:05,338 --> 00:06:09,390 Rincian kuat bahwa Anda akan menggeluti dengan, jika tidak berjuang dengan, pset5, 138 00:06:09,390 --> 00:06:13,380 tetapi Anda dapat mulai segera mengambil untuk diberikan. 139 00:06:13,380 --> 00:06:17,770 >> Bahkan, mari kita menulis super program sederhana di PHP, sebagai berikut. 140 00:06:17,770 --> 00:06:21,550 Aku akan pergi kepala ke CS50 IDE di sini, dan apa yang akan saya lakukan 141 00:06:21,550 --> 00:06:29,370 adalah membuat file baru, yang sangat sederhana akan disebut halo dot PHP. 142 00:06:29,370 --> 00:06:31,860 Jadi, bukannya dot c, itu akan disebut dot PHP. 143 00:06:31,860 --> 00:06:34,260 Dan kemudian di file ini, Aku bisa mulai mengetik. 144 00:06:34,260 --> 00:06:36,960 Tapi ternyata bahwa satu hal yang saya harus tahu 145 00:06:36,960 --> 00:06:41,470 adalah bahwa setiap file PHP pada umumnya, perlu untuk memulai dengan beberapa sintaks khusus. 146 00:06:41,470 --> 00:06:44,570 Memiliki semangat yang sama HTML, tapi sekali lagi, PHP adalah bahasa pemrograman, bukan 147 00:06:44,570 --> 00:06:45,590 bahasa markup. 148 00:06:45,590 --> 00:06:48,700 >> Jadi setiap file, dan itu semacam bodoh mencari Aku akan mengakui. 149 00:06:48,700 --> 00:06:50,480 Terbuka braket, tanda tanya, PHP. 150 00:06:50,480 --> 00:06:53,060 Dan itu hanya cara bahasa itu mengatakan, 151 00:06:53,060 --> 00:06:58,400 hey, komputer inilah beberapa kode yang ditulis dalam bahasa yang disebut PHP. 152 00:06:58,400 --> 00:07:01,900 Dan kemudian di akhir file Anda, Anda melakukan semacam semacam sebaliknya. 153 00:07:01,900 --> 00:07:04,860 Anda tidak menulis PHP lagi, Anda hanya melakukan tanda tanya, angle bracket. 154 00:07:04,860 --> 00:07:08,500 Dan kemudian apa pun yang Anda masukkan ke dalam dua tag ini, sehingga untuk berbicara, 155 00:07:08,500 --> 00:07:11,490 akan, atau seharusnya, kode PHP. 156 00:07:11,490 --> 00:07:13,180 >> Jadi mari kita lakukan sesuatu yang super sederhana. 157 00:07:13,180 --> 00:07:19,370 Aku akan pergi ke depan dan melakukan print def, halo dunia, backslash n, menyimpan. 158 00:07:19,370 --> 00:07:27,310 Dan sekarang pada prompt saya, saya akan lakukan, membuat hello-- tidak, aku akan lakukan, 159 00:07:27,310 --> 00:07:28,726 dot slash halo. 160 00:07:28,726 --> 00:07:31,250 Tidak, dot slash, hm. 161 00:07:31,250 --> 00:07:32,990 Jadi sesuatu yang berbeda. 162 00:07:32,990 --> 00:07:36,920 Dan memang, ini adalah perbedaan utama antara PHP dan bahasa seperti C. C 163 00:07:36,920 --> 00:07:38,730 adalah yang disebut bahasa yang dikompilasi. 164 00:07:38,730 --> 00:07:40,929 Apa artinya untuk C untuk dikompilasi? 165 00:07:40,929 --> 00:07:41,970 Apa implikasinya? 166 00:07:41,970 --> 00:07:42,898 Ya. 167 00:07:42,898 --> 00:07:45,220 >> AUDIENCE: Menulis itu ke dalam kode mesin sehingga bisa dijalankan oleh komputer. 168 00:07:45,220 --> 00:07:46,011 >> SPEAKER 1: Tepat. 169 00:07:46,011 --> 00:07:49,075 Kita harus pertama mengubahnya menjadi disebut kode mesin, nol dan satu, 170 00:07:49,075 --> 00:07:51,950 sebelum benar-benar akan dieksekusi dan dipahami oleh komputer. 171 00:07:51,950 --> 00:07:52,840 Oleh Intel dalam. 172 00:07:52,840 --> 00:07:54,530 Oleh CPU dalam komputer. 173 00:07:54,530 --> 00:07:58,170 PHP, sebaliknya, adalah apa yang disebut bahasa ditafsirkan, yang 174 00:07:58,170 --> 00:08:02,230 berarti bahwa Anda tidak compile menjadi nol dan satu, kode mesin, 175 00:08:02,230 --> 00:08:04,360 Anda malah meninggalkan sebagai kode sumber. 176 00:08:04,360 --> 00:08:08,130 Dan Anda malah lulus sebagai masukan untuk sebuah program, juru 177 00:08:08,130 --> 00:08:11,960 bahwa orang lain menulis tahun lalu yang mengerti itu 178 00:08:11,960 --> 00:08:14,310 baris demi baris, karakter untuk karakter. 179 00:08:14,310 --> 00:08:16,120 Jadi dengan kata lain, manusia di luar sana menulis 180 00:08:16,120 --> 00:08:19,670 sebuah program yang akan terlihat pada baris kode Anda dengan line, 181 00:08:19,670 --> 00:08:21,680 dan mencari tahu apa komputer harus melakukan, 182 00:08:21,680 --> 00:08:25,960 tanpa mengubahnya langsung ke nol dan satu. 183 00:08:25,960 --> 00:08:28,370 >> Jadi jika melihat untuk loop, disebut interpreter ini 184 00:08:28,370 --> 00:08:30,630 akan menjadi seperti, baiklah, aku harus melakukan sesuatu lagi dan lagi dan lagi. 185 00:08:30,630 --> 00:08:31,150 Apa yang harus saya lakukan? 186 00:08:31,150 --> 00:08:32,159 Biarkan aku melihat baris berikutnya. 187 00:08:32,159 --> 00:08:33,367 Biarkan aku melihat baris berikutnya. 188 00:08:33,367 --> 00:08:35,350 Dan itu benar-benar menafsirkan baris demi baris. 189 00:08:35,350 --> 00:08:37,220 Jadi untuk melaksanakannya, saya tidak menggunakan make. 190 00:08:37,220 --> 00:08:39,409 Saya tidak menggunakan dot slash dalam kasus ini. 191 00:08:39,409 --> 00:08:43,530 Saya bukannya melakukan PHP, yang merupakan nama program, a.k.a. 192 00:08:43,530 --> 00:08:46,562 Penerjemah, itu pra-instal di CS50 IDE, 193 00:08:46,562 --> 00:08:48,770 dan sekarang saya harus lulus Argumen baris perintah, yang 194 00:08:48,770 --> 00:08:52,290 cukup hanya nama mengajukan bahwa saya ingin menafsirkan. 195 00:08:52,290 --> 00:08:54,740 Atau lebih santai, yang saya ingin menjalankan. 196 00:08:54,740 --> 00:08:57,000 Dan jika saya tekan Enter, ada yang kita miliki. 197 00:08:57,000 --> 00:08:57,825 Halo Dunia. 198 00:08:57,825 --> 00:08:59,950 Sekarang ternyata bahwa saya cetak def digunakan sengaja 199 00:08:59,950 --> 00:09:01,600 untuk menjembatani kita dari C ke PHP. 200 00:09:01,600 --> 00:09:05,150 Kebanyakan programmer PHP, seperti yang Anda lihat, bahkan tidak repot-repot menggunakan cetak def. 201 00:09:05,150 --> 00:09:08,290 Mereka hanya menggunakan fungsi yang disebut cetak, yang C tidak memiliki. 202 00:09:08,290 --> 00:09:11,390 Dan jadi jika saya jalankan kembali sekarang, itu benar-benar berperilaku secara fungsional sama. 203 00:09:11,390 --> 00:09:13,730 Saya tidak dapat menggunakan persen s dan persen saya dan sebagainya, 204 00:09:13,730 --> 00:09:16,250 tapi ada cara lain PHP melakukan hal itu. 205 00:09:16,250 --> 00:09:18,100 Tapi ini hanya untuk mengatakan bahwa sintaksis, 206 00:09:18,100 --> 00:09:21,850 selain beberapa hal aneh up atas, dan beberapa karakter aneh turun 207 00:09:21,850 --> 00:09:25,960 di bagian bawah, konsep sekarang dari pemrograman dalam bahasa lain ini 208 00:09:25,960 --> 00:09:27,860 akan persis sama. 209 00:09:27,860 --> 00:09:30,120 >> Bahkan, mari kita lakukan salah satu contoh lainnya. 210 00:09:30,120 --> 00:09:32,520 Jadi aku akan pergi ke depan dan menutup file ini. 211 00:09:32,520 --> 00:09:37,740 Biarkan saya membuat satu lagi yang Aku akan menelepon kondisi 1 dot PHP. 212 00:09:37,740 --> 00:09:40,770 Jadi tidak ada nol, karena apa yang saya lakukan adalah saya melihat kembali beberapa minggu yang lalu, 213 00:09:40,770 --> 00:09:43,490 kami memiliki sebuah file bernama kondisi 1 dot C. Dan apa 214 00:09:43,490 --> 00:09:47,590 Saya bertobat di saya kepala, dan di sini di atas kertas, 215 00:09:47,590 --> 00:09:51,290 dan segera di lapangan ini website, baris demi baris dalam PHP. 216 00:09:51,290 --> 00:09:55,520 >> Jadi dalam versi C, kita melakukan sesuatu seperti string s mendapat mendapatkan tali. 217 00:09:55,520 --> 00:09:58,200 Jadi itu adalah sedikit berbeda untuk melakukan itu di PHP. 218 00:09:58,200 --> 00:10:01,390 Sebaliknya, aku hanya akan untuk melakukan, atau lebih tepatnya, saya 219 00:10:01,390 --> 00:10:05,870 mungkin telah melakukan int n mendapat mendapatkan int, dalam contoh ini sebelumnya. 220 00:10:05,870 --> 00:10:12,600 Jadi, bukannya itu, aku akan melakukan n akan membaca baris, saya ingin integer, 221 00:10:12,600 --> 00:10:13,670 silahkan. 222 00:10:13,670 --> 00:10:15,110 Jadi ini hanya prompt saya. 223 00:10:15,110 --> 00:10:17,260 Dan ternyata, dan Saya hanya akan tahu ini 224 00:10:17,260 --> 00:10:20,480 dari membaca atau melihat fungsi sebelumnya, membaca baris fungsi di PHP 225 00:10:20,480 --> 00:10:23,810 membawa argumen yang prompt untuk manusia, dan tujuannya dalam hidup 226 00:10:23,810 --> 00:10:26,220 adalah untuk membaca baris teks bahwa ia jenis dalam. 227 00:10:26,220 --> 00:10:29,160 Dan kemudian menyimpan bahwa teks ke dalam variabel n. 228 00:10:29,160 --> 00:10:32,200 >> Dan sekarang saya mungkin ingin melakukan sesuatu seperti yang kulakukan minggu yang lalu, di minggu seperti 229 00:10:32,200 --> 00:10:33,290 salah satu kelas. 230 00:10:33,290 --> 00:10:36,600 Jika n lebih besar dari nol, maka, aku akan 231 00:10:36,600 --> 00:10:42,930 untuk meminjam bahwa sintaks kita hanya melihat, cetak def, Anda memilih angka positif, 232 00:10:42,930 --> 00:10:44,360 backslash n. 233 00:10:44,360 --> 00:10:49,990 Lain jika n sama sama dengan nol, aku akan pergi ke depan dan berkata, cetak def, 234 00:10:49,990 --> 00:10:54,090 Anda memilih nol backslash n. 235 00:10:54,090 --> 00:10:56,830 Lain, terjadi di sini harus tentu saja menjadi, cetak def, 236 00:10:56,830 --> 00:10:58,620 Anda memilih angka negatif. 237 00:10:58,620 --> 00:11:00,970 >> Dan kita pasti bisa menerapkan logika hal ini 238 00:11:00,970 --> 00:11:03,390 dalam sekelompok berbeda cara, tetapi titik di sini 239 00:11:03,390 --> 00:11:07,210 adalah bahwa sintaksis, hampir tidak ada sesuatu yang baru. 240 00:11:07,210 --> 00:11:09,830 Ini hanya tanda dolar dan fungsi baru dan membaca baris. 241 00:11:09,830 --> 00:11:12,090 Tetapi pada dasarnya, apa yang baru sekarang adalah saya menafsirkan ini. 242 00:11:12,090 --> 00:11:13,910 Saya lewat itu sebagai masukan ke program lain. 243 00:11:13,910 --> 00:11:16,620 Jadi jika saya ingin menjalankan ini, jika Aku tidak melakukan kesalahan, 244 00:11:16,620 --> 00:11:20,140 Aku akan menjalankan PHP, dari kondisi 1 dot PHP, Masukkan, 245 00:11:20,140 --> 00:11:23,440 Aku akan mengetikkan nomor 50, dan mari kita asumsikan untuk saat bekerja. 246 00:11:23,440 --> 00:11:25,940 Karena logika adalah hal yang sama seperti minggu satu. 247 00:11:25,940 --> 00:11:28,020 >> Baiklah, sehingga cukup underwhelming, kan? 248 00:11:28,020 --> 00:11:30,240 Kita bisa melakukan ini di setiap jumlah bahasa. 249 00:11:30,240 --> 00:11:33,200 Mari kita lakukan sesuatu dengan cara yang lebih kuat. 250 00:11:33,200 --> 00:11:35,610 Mari masalah selesai mengatur lima. 251 00:11:35,610 --> 00:11:37,370 Jadi aku akan pergi ke depan dan melakukan hal ini. 252 00:11:37,370 --> 00:11:42,920 Aku akan membuat file disebut kamus dot PHP, 253 00:11:42,920 --> 00:11:45,424 dan cenderung seperti yang Anda mungkin berebut turun banyak catatan, 254 00:11:45,424 --> 00:11:47,340 catatan hanya akan membantu Anda jika Anda diperbolehkan 255 00:11:47,340 --> 00:11:48,923 untuk melaksanakan masalah mengatur lima di PHP. 256 00:11:48,923 --> 00:11:52,706 Tapi kita akan lihat seberapa cepat sekarang kita dapat mengimplementasikan bahwa masalah set yang sama. 257 00:11:52,706 --> 00:11:56,830 >> Jadi dalam kamus dot PHP, saya akan berasumsi bahwa sudah ada 258 00:11:56,830 --> 00:11:58,514 file di dunia yang disebut ejaan. 259 00:11:58,514 --> 00:12:01,430 Dan memang, saya melakukan ini di muka, dan kami tidak akan berjalan melalui jalur ini 260 00:12:01,430 --> 00:12:03,596 demi baris, tetapi jika Anda penasaran kemudian dan benar-benar ingin 261 00:12:03,596 --> 00:12:06,250 untuk membungkus pikiran Anda sekitar perbedaan antara c dan PHP, 262 00:12:06,250 --> 00:12:09,030 harfiah membandingkan file ini, ejaan, dari kode sumber hari ini 263 00:12:09,030 --> 00:12:11,190 bahwa kita akan posting nanti hari ini, terhadap p set 264 00:12:11,190 --> 00:12:15,309 lima ejaan dot c yang kita berikan Anda, dan itu hampir baris yang sama dengan baris. 265 00:12:15,309 --> 00:12:16,600 Ada beberapa tanda-tanda dolar lebih. 266 00:12:16,600 --> 00:12:18,330 Beberapa fungsi yang beda tipis. 267 00:12:18,330 --> 00:12:20,038 Tapi itu cara yang bagus dari semacam melihat bagaimana 268 00:12:20,038 --> 00:12:22,740 Anda menerjemahkan satu bahasa ke bahasa lain. 269 00:12:22,740 --> 00:12:24,812 Dan itu sejalan hampir identik untuk baris. 270 00:12:24,812 --> 00:12:27,770 Tapi aku akan menganggap bahwa ada, dan apa yang akan saya lakukan di sini 271 00:12:27,770 --> 00:12:31,310 adalah mencoba untuk meledakkan Anda keberatan oleh reimplementing 272 00:12:31,310 --> 00:12:36,210 keseluruhan permasalahan yang lima cara lebih cepat dari Anda sudah melakukan sejauh ini. 273 00:12:36,210 --> 00:12:39,330 Jadi misalnya, saya akan pertama mendeklarasikan variabel global yang disebut ukuran, 274 00:12:39,330 --> 00:12:40,444 dan set sama dengan nol. 275 00:12:40,444 --> 00:12:41,610 Nah, itu tidak banyak tabungan. 276 00:12:41,610 --> 00:12:44,170 Odds yang Anda diterapkan ukuran hampir sama, 277 00:12:44,170 --> 00:12:48,440 atau petunjuk petunjuk, akan malam ini atau besok, hanya menggunakan variabel global yang disebut 278 00:12:48,440 --> 00:12:49,900 ukuran, dan pengaturan sama dengan nol. 279 00:12:49,900 --> 00:12:52,660 Itu bukan sangat spoiler menakjubkan. 280 00:12:52,660 --> 00:12:57,180 >> Jadi apa yang data Anda struktur pilihan, Anda yang telah menyelam di 281 00:12:57,180 --> 00:13:02,170 dan membaca spec, struktur data apa telah sebagian besar dari Anda telah menggunakan? 282 00:13:02,170 --> 00:13:06,840 Sebuah tabel hash atau mencoba, mungkin beberapa varian daripadanya. 283 00:13:06,840 --> 00:13:10,490 Jadi menerapkan tabel hash setidaknya, adalah jenis banyak baris kode, 284 00:13:10,490 --> 00:13:10,990 benar? 285 00:13:10,990 --> 00:13:13,700 Dan tidak semua dari mereka mungkin fungsional pada saat ini dalam seminggu, 286 00:13:13,700 --> 00:13:14,366 tapi itu baik-baik saja. 287 00:13:14,366 --> 00:13:19,300 Karena dalam PHP, jika saya ingin meja hash, dilakukan. 288 00:13:19,300 --> 00:13:20,260 Benar? 289 00:13:20,260 --> 00:13:22,610 Sehingga variabel bahwa saya telah hanya menyatakan jelas 290 00:13:22,610 --> 00:13:26,180 disebut meja tanda dolar, per pengenalan sebelumnya. 291 00:13:26,180 --> 00:13:28,902 >> Tapi aku benar-benar hanya ingin, di akhir hari, array. 292 00:13:28,902 --> 00:13:31,610 Tapi bukan numerik diindeks array, karena itu seperti dua minggu 293 00:13:31,610 --> 00:13:33,440 hal, ketika kita berbicara tentang array. 294 00:13:33,440 --> 00:13:34,850 Saya ingin tabel hash. 295 00:13:34,850 --> 00:13:38,070 Tapi tabel hash benar-benar hanya cara konkret mengatakan, 296 00:13:38,070 --> 00:13:40,190 Anda ingin array asosiatif. 297 00:13:40,190 --> 00:13:43,270 Anda ingin dapat Kunci asosiasi dengan nilai-nilai. 298 00:13:43,270 --> 00:13:44,200 Kunci dengan nilai-nilai. 299 00:13:44,200 --> 00:13:45,640 Apa kamus, benar-benar? 300 00:13:45,640 --> 00:13:47,080 Baik itu sejumlah besar kunci. 301 00:13:47,080 --> 00:13:50,320 Kata-kata seperti apel, pir, dan pisang, dan semua kata-kata bahasa Inggris 302 00:13:50,320 --> 00:13:51,490 bahwa kita tangan Anda. 303 00:13:51,490 --> 00:13:54,820 >> Dan nilai-nilai yang Anda secara efektif memasukkan ke kamus Anda 304 00:13:54,820 --> 00:13:57,790 yang bisa benar, atau tidak adanya, palsu. 305 00:13:57,790 --> 00:14:00,540 Dengan kata lain Anda memasukkan sejumlah besar pasangan nilai kunci, 306 00:14:00,540 --> 00:14:03,720 apel, benar, pir, benar, pisang, benar. 307 00:14:03,720 --> 00:14:07,446 Sehingga ketika Anda mengambil atau melihat up data dalam tabel hash Anda 308 00:14:07,446 --> 00:14:10,070 dengan fungsi cek Anda, Anda baik mendapatkan kembali jawaban, 309 00:14:10,070 --> 00:14:13,260 ya, saya menemukannya di kompleks saya hash table, atau tidak, itu tidak ada, 310 00:14:13,260 --> 00:14:14,540 sehingga Anda kembali palsu. 311 00:14:14,540 --> 00:14:19,440 >> Jadi untuk melakukan itu, semua saya butuhkan adalah data Struktur seperti saya yang diusulkan sebelumnya. 312 00:14:19,440 --> 00:14:22,050 Aku hanya perlu untuk dapat mengasosiasikan kata 313 00:14:22,050 --> 00:14:25,570 seperti, kutipan tanda kutip, simbol, dengan nilai seperti, benar. 314 00:14:25,570 --> 00:14:27,090 Jadi ada tabel hash saya. 315 00:14:27,090 --> 00:14:28,180 Mari kita benar-benar menggunakannya. 316 00:14:28,180 --> 00:14:30,310 Jadi ada beberapa fungsi Saya perlu untuk mengimplementasikan. 317 00:14:30,310 --> 00:14:33,300 Aku akan pergi ke depan dan menggigit off fungsi yang disebut ukuran. 318 00:14:33,300 --> 00:14:34,390 Dibutuhkan tanpa argumen. 319 00:14:34,390 --> 00:14:36,660 Saya tidak perlu repot-repot dengan kata, kekosongan, di PHP. 320 00:14:36,660 --> 00:14:38,770 Saya hanya akan kembali ukuran. 321 00:14:38,770 --> 00:14:41,287 >> Dan sebagai samping, PHP memiliki rinci ini minorly menjengkelkan, 322 00:14:41,287 --> 00:14:44,620 di mana jika ada sesuatu yang global, Anda harus memberitahu fungsi di mana Anda menggunakan 323 00:14:44,620 --> 00:14:46,220 itu, hey, ini adalah variabel global. 324 00:14:46,220 --> 00:14:49,330 Jadi, kebodohan kecil, tetapi Anda harus melakukannya tetap. 325 00:14:49,330 --> 00:14:50,920 >> Jadi bagaimana dengan beban? 326 00:14:50,920 --> 00:14:52,990 Aku akan mengimplementasikan fungsi yang disebut beban 327 00:14:52,990 --> 00:14:56,790 yang mengambil nama dari kamus, seperti di masalah ditetapkan lima. 328 00:14:56,790 --> 00:14:59,554 Dan sebelum saya melanjutkan, melihat bahwa saya tidak 329 00:14:59,554 --> 00:15:00,970 telah mengetik cukup hal yang sama. 330 00:15:00,970 --> 00:15:06,060 Apa jelas berbeda dalam PHP tentang bagaimana Anda menyatakan fungsi dibandingkan C? 331 00:15:06,060 --> 00:15:06,616 Ya. 332 00:15:06,616 --> 00:15:07,490 AUDIENCE: [tidak terdengar] 333 00:15:07,490 --> 00:15:08,573 SPEAKER 1: Tidak ada jenis kembali. 334 00:15:08,573 --> 00:15:12,350 Dan memang, itulah kasus, PHP sejauh itu longgar diketik, 335 00:15:12,350 --> 00:15:14,190 juga sedikit ceroboh dalam arti itu. 336 00:15:14,190 --> 00:15:17,680 Anda tidak menentukan sebagai programmer apa mengembalikan fungsi ini. 337 00:15:17,680 --> 00:15:20,490 Anda harus benar-benar melihat kode untuk mencari tahu. 338 00:15:20,490 --> 00:15:22,670 Atau membaca komentar atau dokumentasi. 339 00:15:22,670 --> 00:15:24,870 Jadi plus dan minus dari jenis-jenis keputusan. 340 00:15:24,870 --> 00:15:26,750 Tapi aku harus mengatakan kata kunci, fungsi. 341 00:15:26,750 --> 00:15:28,360 Dan ketika kita belajar JavaScript dalam beberapa minggu 342 00:15:28,360 --> 00:15:31,026 kita akan melihat hal yang sama lagi, tapi itu ide yang sama. 343 00:15:31,026 --> 00:15:34,220 Nama fungsi, argumen atau argumen atau kekurangan itu, dan sekarang 344 00:15:34,220 --> 00:15:35,630 di sini adalah pelaksanaan. 345 00:15:35,630 --> 00:15:38,860 >> Jadi aku akan memotong beberapa sudut hanya menjadi dramatis untuk sesaat. 346 00:15:38,860 --> 00:15:40,485 Tapi aku akan pergi ke depan dan mengatakan ini. 347 00:15:40,485 --> 00:15:44,890 Ini adalah bagaimana saya bisa memuat file ke dalam sebuah array. 348 00:15:44,890 --> 00:15:47,580 Ada fungsi di PHP yang disebut berkas. 349 00:15:47,580 --> 00:15:49,300 Anda menyerahkannya nama file. 350 00:15:49,300 --> 00:15:53,950 Itu tangan Anda kembali sebuah array, dalam dari yang setiap baris dari file tersebut. 351 00:15:53,950 --> 00:15:56,480 Dari nol, satu, di atas untuk n minus 1 baris. 352 00:15:56,480 --> 00:15:57,210 Itu saja, kan? 353 00:15:57,210 --> 00:15:57,990 Tidak ada f membaca. 354 00:15:57,990 --> 00:15:58,826 Tidak ada f get s. 355 00:15:58,826 --> 00:15:59,700 Tidak ada persen s. 356 00:15:59,700 --> 00:16:00,420 Tidak ada sakit kepala. 357 00:16:00,420 --> 00:16:01,220 Tidak ada feof. 358 00:16:01,220 --> 00:16:03,950 Semua barang yang dengan yang Anda sudah bergulat mungkin, 359 00:16:03,950 --> 00:16:06,550 dengan p menetapkan empat dan lima, hilang. 360 00:16:06,550 --> 00:16:09,450 >> Jadi saya hanya membaca garis ke file, dan kemudian Anda tahu apa? 361 00:16:09,450 --> 00:16:15,510 Jika saya ingin iterate atas kata-kata, Aku bisa melakukan, untuk setiap baris sebagai baris. 362 00:16:15,510 --> 00:16:19,992 Ingat bahwa ini adalah semacam pintar cara iterasi array, indeks 363 00:16:19,992 --> 00:16:25,090 dengan indeks, dan pada setiap panggilan iterasi baris saat ini, dolar garis tanda. 364 00:16:25,090 --> 00:16:31,560 Dan di sini aku akan pergi dan mengatakan meja, bracket, garis, mendapat benar. 365 00:16:31,560 --> 00:16:35,880 >> Dengan kata lain, ini adalah bagaimana saya masukkan ke dalam tabel hash saya di PHP. 366 00:16:35,880 --> 00:16:38,740 Saya mengatakan dolar meja tanda, yang adalah array asosiatif saya itu 367 00:16:38,740 --> 00:16:40,690 kosong per baris kode di atas. 368 00:16:40,690 --> 00:16:42,790 Saya kemudian indeks ke dalamnya tidak, menggunakan angka, 369 00:16:42,790 --> 00:16:45,300 tapi secara harfiah menggunakan kata kunci yang saya sayangi. 370 00:16:45,300 --> 00:16:47,730 Mungkin apel atau pir atau pisang atau apa pun, 371 00:16:47,730 --> 00:16:51,645 namun secara khusus saya mengindeks ke dalamnya seperti saya mengusulkan sebelumnya. 372 00:16:51,645 --> 00:16:53,770 Saya mengambil nama saya array asosiatif, dan kemudian saya 373 00:16:53,770 --> 00:16:56,450 menggunakan kutipan tanda kutip di kurung persegi dengan string, 374 00:16:56,450 --> 00:16:58,490 bukan jumlah yang sebenarnya. 375 00:16:58,490 --> 00:17:00,250 >> Dan itu saja. 376 00:17:00,250 --> 00:17:01,720 Fungsi beban dilakukan. 377 00:17:01,720 --> 00:17:05,119 Setelah itu lingkaran iterates, aku telah menempatkan segala sesuatu ke dalam tabel hash. 378 00:17:05,119 --> 00:17:07,810 Sekarang disclaimer kecil, ada beberapa hal yang saya harus memperbaiki. 379 00:17:07,810 --> 00:17:10,030 Dan versi saya akan posting secara online akan memiliki semua nuansa, 380 00:17:10,030 --> 00:17:12,670 tapi itu sebagian besar hanya akan menjadi beberapa pengecekan error dan beberapa tweak kecil. 381 00:17:12,670 --> 00:17:14,044 Tapi itu memang inti dari itu. 382 00:17:14,044 --> 00:17:16,750 Jika saya sekarang ingin menerapkan fungsi disebut 383 00:17:16,750 --> 00:17:19,869 periksa, yang mengharapkan kata sebagai argumen, 384 00:17:19,869 --> 00:17:22,099 bagaimana mungkin aku pergi untuk melakukan itu? 385 00:17:22,099 --> 00:17:30,020 Yah, aku hanya akan mengatakan, jika dalam meja saya, di kata lokasi, 386 00:17:30,020 --> 00:17:30,652 jika diatur. 387 00:17:30,652 --> 00:17:32,360 Jadi jika ada is-- sebenarnya, Anda tahu apa? 388 00:17:32,360 --> 00:17:34,830 Aku akan melakukannya di sedikit pseudocode. 389 00:17:34,830 --> 00:17:36,020 Tetapi gagasan adalah sama. 390 00:17:36,020 --> 00:17:41,640 Jika itu sama benar, kembali benar. 391 00:17:41,640 --> 00:17:43,890 Baiklah. 392 00:17:43,890 --> 00:17:46,851 Else-- Anda dapat jenis melihat keberadaan ini going-- untuk kembali palsu. 393 00:17:46,851 --> 00:17:47,350 Dilakukan. 394 00:17:47,350 --> 00:17:49,640 Periksa dilakukan. 395 00:17:49,640 --> 00:17:50,940 >> Cukup bagus, kan? 396 00:17:50,940 --> 00:17:52,560 Dan apa ini benar-benar mendapatkan di? 397 00:17:52,560 --> 00:17:53,680 Dan ini juga, saya memotong beberapa sudut. 398 00:17:53,680 --> 00:17:56,020 Lihatlah versi online untuk semua nuansa sedikit. 399 00:17:56,020 --> 00:17:57,103 Tapi itu inti dari itu. 400 00:17:57,103 --> 00:17:59,080 Indeks ke Anda array asosiatif, a.k.a. 401 00:17:59,080 --> 00:18:02,910 Tabel hash, melihat apakah ada nilai ada, jika itu diatur ke benar, dan jika demikian, 402 00:18:02,910 --> 00:18:03,930 kembali benar. 403 00:18:03,930 --> 00:18:05,819 Jadi kami telah dipangkas semua kompleksitas. 404 00:18:05,819 --> 00:18:07,110 Jadi jenis pikiran bertiup, kan? 405 00:18:07,110 --> 00:18:09,680 Aku tidak akan repot-repot menyelesaikan dengan membongkar, karena di fact-- oh, kau tahu apa? 406 00:18:09,680 --> 00:18:11,620 Ya, mari kita menyelesaikannya dengan membongkar. 407 00:18:11,620 --> 00:18:18,940 >> Membongkar dalam tabel hash mungkin terlihat seperti fungsi membongkar, kembali. 408 00:18:18,940 --> 00:18:19,930 OK jadi itu membongkar. 409 00:18:19,930 --> 00:18:21,350 Karena tidak ada untuk membongkar, kan? 410 00:18:21,350 --> 00:18:22,170 Tidak ada malloc. 411 00:18:22,170 --> 00:18:24,280 Saya tidak secara eksplisit meminta sistem operasi untuk apa pun. 412 00:18:24,280 --> 00:18:25,571 Aku baru saja mulai menggunakan variabel. 413 00:18:25,571 --> 00:18:30,510 Dan ini juga merupakan manifestasi dari fitur bahasa tingkat tinggi. 414 00:18:30,510 --> 00:18:32,940 Jadi sekali lagi, sebagian besar istilah ini kita sudah berhadapan di sini 415 00:18:32,940 --> 00:18:34,280 dengan C. tingkat super rendah. 416 00:18:34,280 --> 00:18:35,980 Anda dapat melihat memori komputer. 417 00:18:35,980 --> 00:18:38,440 Anda dapat menyentuh apa pun Anda inginkan dalam RAM komputer Anda, 418 00:18:38,440 --> 00:18:39,440 untuk lebih baik atau buruk. 419 00:18:39,440 --> 00:18:41,760 >> Sampai di sini, kita akan untuk menyerahkan kekuasaan itu. 420 00:18:41,760 --> 00:18:44,730 Tetapi Tuhan, lihatlah bagaimana apalagi kode yang saya tulis. 421 00:18:44,730 --> 00:18:47,660 Bahkan jika saya tidak berbicara dan berbicara lebih mengetik saya, 422 00:18:47,660 --> 00:18:50,190 kita akan telah dilakukan dengan contoh ini lima menit yang lalu. 423 00:18:50,190 --> 00:18:52,150 Jadi apa harga yang dibayar? 424 00:18:52,150 --> 00:18:54,100 Nah mari kita lihat. 425 00:18:54,100 --> 00:18:55,340 Mari lihat. 426 00:18:55,340 --> 00:18:59,340 Aku akan pergi ke depan dan menjalankan CS50. 427 00:18:59,340 --> 00:19:02,160 Ijinkan saya pergi ke contoh hari ini di mana 428 00:19:02,160 --> 00:19:03,970 Saya memiliki direktori teks seperti sebelumnya. 429 00:19:03,970 --> 00:19:08,520 Aku akan menjalankan solusi yang ia datang dengan masalah mengatur lima disebut 430 00:19:08,520 --> 00:19:11,190 ejaan, yang di akun CS50 ini. 431 00:19:11,190 --> 00:19:14,040 >> Dan aku akan menjalankannya pada sesuatu besar seperti King James Bible, 432 00:19:14,040 --> 00:19:16,547 hanya agar kita benar-benar menempatkan solusi staf untuk tes. 433 00:19:16,547 --> 00:19:19,130 Sekarang kadang-kadang internet adalah sedikit lebih lambat, sedikit lebih cepat, 434 00:19:19,130 --> 00:19:20,338 mungkin memerlukan waktu untuk menggulir. 435 00:19:20,338 --> 00:19:23,730 Tapi butuh total 0,56 detik untuk memeriksa ejaan King James 436 00:19:23,730 --> 00:19:25,150 Alkitab menggunakan solusi staf. 437 00:19:25,150 --> 00:19:25,620 Jadi cukup bagus. 438 00:19:25,620 --> 00:19:27,786 Anda mungkin menjadi lebih lambat, dan itu benar-benar baik-baik saja. 439 00:19:27,786 --> 00:19:30,090 Tapi itu benar di sini. 440 00:19:30,090 --> 00:19:32,440 Jadi itulah solusi staf. 441 00:19:32,440 --> 00:19:34,785 Jika saya masuk dan membersihkan versi PHP. 442 00:19:34,785 --> 00:19:36,990 Dan aku akan melakukan sedikit seperti kue acara itu. 443 00:19:36,990 --> 00:19:39,720 Kita akan mengambil kode yang saya tulis sebelumnya, jadi sempurna benar. 444 00:19:39,720 --> 00:19:42,678 Karena kode yang saya tulis tidak akan menjadi sempurna benar sekarang. 445 00:19:42,678 --> 00:19:47,310 Tetapi jika saya menjalankan versi PHP, apa yang harus saya menyerah hari ini? 446 00:19:47,310 --> 00:19:49,980 Membawa saya lima menit untuk menerapkan p menetapkan lima, saya klaim. 447 00:19:49,980 --> 00:19:51,770 Berapa harga yang saya bayar? 448 00:19:51,770 --> 00:19:52,270 Ya. 449 00:19:52,270 --> 00:19:52,937 >> AUDIENCE: Kecepatan. 450 00:19:52,937 --> 00:19:53,645 SPEAKER 1: Kecepatan. 451 00:19:53,645 --> 00:19:54,380 Apa maksudmu? 452 00:19:54,380 --> 00:19:55,230 >> AUDIENCE: Ini akan memakan waktu lebih lama. 453 00:19:55,230 --> 00:19:55,660 >> SPEAKER 1: Baiklah. 454 00:19:55,660 --> 00:19:56,160 Mari kita lihat. 455 00:19:56,160 --> 00:19:59,590 Ini akan memakan waktu lebih lama, tidak menulis, tapi untuk menjalankannya. 456 00:19:59,590 --> 00:20:00,090 Ya. 457 00:20:00,090 --> 00:20:00,960 Jadi mari kita coba ini. 458 00:20:00,960 --> 00:20:05,720 Jadi di sini aku akan pergi ke depan dan melakukan PHP dari ejaan, dan karena file 459 00:20:05,720 --> 00:20:06,360 disebut ejaan. 460 00:20:06,360 --> 00:20:07,580 Jadi saya tidak menjalankan kamus, ingat, 461 00:20:07,580 --> 00:20:09,204 Aku sedang menjalankan program yang disebut ejaan. 462 00:20:09,204 --> 00:20:12,450 Aku akan lulus dalam yang sama File, King James kelima. 463 00:20:12,450 --> 00:20:14,377 Ini terbang oleh. 464 00:20:14,377 --> 00:20:17,210 Ini bisa saja menjadi kecepatan internet, jadi jangan membaca terlalu banyak ke dalam. 465 00:20:17,210 --> 00:20:21,680 Tapi itu tidak merasa lagi untuk yakin. 466 00:20:21,680 --> 00:20:23,280 1,26 detik. 467 00:20:23,280 --> 00:20:25,150 >> Sekarang itu masih cukup sialan cepat, tepat? 468 00:20:25,150 --> 00:20:28,140 Dan satu-satunya alasan yang merasa seperti lebih seperti tiga, atau empat, atau lima 469 00:20:28,140 --> 00:20:30,515 detik, itu hanya karena internet sedang lambat. 470 00:20:30,515 --> 00:20:33,980 Waktu komputer menghabiskan adalah 1,26 detik, dibandingkan saya pikir 0,56. 471 00:20:33,980 --> 00:20:35,880 Jadi lebih dari dua kali lebih lambat. 472 00:20:35,880 --> 00:20:39,170 Sekarang itu masih pretty darn cepat, tapi itu manifestasi 473 00:20:39,170 --> 00:20:40,860 dari, memang, bahwa harga yang tepat. 474 00:20:40,860 --> 00:20:43,460 >> Karena kita menafsirkan dalam baris demi baris kode, 475 00:20:43,460 --> 00:20:46,740 dan bahwa program PHP membaca saya kode atas ke bawah, kiri ke kanan, 476 00:20:46,740 --> 00:20:47,940 itu harus berbuat lebih banyak berpikir. 477 00:20:47,940 --> 00:20:50,430 Hal ini untuk jenis mengkonversi itu dalam dirinya sendiri 478 00:20:50,430 --> 00:20:53,464 ke mesin yang sesuai kode dengan cepat, sehingga untuk berbicara, 479 00:20:53,464 --> 00:20:55,380 meskipun mekanik sedikit berbeda. 480 00:20:55,380 --> 00:20:59,430 Bukan hanya makan ke Intel CPU nol baku dan yang 481 00:20:59,430 --> 00:21:00,930 bahwa ia mengerti native. 482 00:21:00,930 --> 00:21:04,110 >> Jadi benar-benar, tangan ke bawah, kami telah membayar harga. 483 00:21:04,110 --> 00:21:09,120 Dan kode yang ditulis dalam bahasa seperti PHP cenderung lebih lambat. 484 00:21:09,120 --> 00:21:10,050 Tetapi Tuhan. 485 00:21:10,050 --> 00:21:12,740 Jadi sekarang ketika saya periksa ejaan saya File, aku menghabiskan tambahan 0,7 486 00:21:12,740 --> 00:21:17,280 atau lebih detik vs 20 jam untuk melaksanakan lebih cepat spell checker, kan? 487 00:21:17,280 --> 00:21:18,397 Ini semacam trade off. 488 00:21:18,397 --> 00:21:20,980 Dan jika Anda baru mulai p set lima, mungkin tidak 20 jam. 489 00:21:20,980 --> 00:21:22,188 Mungkin jauh lebih sedikit dari itu. 490 00:21:22,188 --> 00:21:23,600 Tapi itu trade off, untuk nyata. 491 00:21:23,600 --> 00:21:27,820 Dan jika Anda menjalankan kode pada benar-benar besar set data, atau pada hardware bahkan lebih tua, 492 00:21:27,820 --> 00:21:32,650 orang-orang macam perbedaan tentu dapat menambahkan sampai. 493 00:21:32,650 --> 00:21:34,880 >> Pertanyaan sejauh ini? 494 00:21:34,880 --> 00:21:35,617 Ya. 495 00:21:35,617 --> 00:21:36,492 >> AUDIENCE: [tidak terdengar] 496 00:21:36,492 --> 00:21:38,187 497 00:21:38,187 --> 00:21:39,978 SPEAKER 1: Maaf, dapat Anda katakan sekali lagi? 498 00:21:39,978 --> 00:21:40,853 AUDIENCE: [tidak terdengar] 499 00:21:40,853 --> 00:21:43,326 500 00:21:43,326 --> 00:21:44,700 SPEAKER 1: Kau menyerah waktu. 501 00:21:44,700 --> 00:21:45,283 Nah, jadi ya. 502 00:21:45,283 --> 00:21:47,322 Anda menghemat waktu oleh tidak harus compile, 503 00:21:47,322 --> 00:21:48,530 jika itu yang Anda minta. 504 00:21:48,530 --> 00:21:50,710 Dan memang, di CS50, sebagian besar program, 505 00:21:50,710 --> 00:21:53,668 meskipun mereka mungkin memerlukan waktu menulis, mereka relatif singkat. 506 00:21:53,668 --> 00:21:56,860 Beberapa lusin, beberapa ratus baris kode, dan sehingga mereka kompilasi cukup cepat. 507 00:21:56,860 --> 00:21:58,470 Tapi ketika Anda mulai menulis program yang lebih besar, 508 00:21:58,470 --> 00:22:01,511 seperti jika Anda Microsoft atau Anda Google dan menulis program benar-benar besar 509 00:22:01,511 --> 00:22:05,360 di C, atau C ++, atau sama dikompilasi bahasa, bisa mengambil banyak detik, 510 00:22:05,360 --> 00:22:08,577 atau bahkan menit atau lebih lama untuk mengkompilasi jutaan baris kode. 511 00:22:08,577 --> 00:22:10,660 Dan di sana juga, yang Perbedaan akan bertambah. 512 00:22:10,660 --> 00:22:12,840 >> Dan pada kenyataannya, setelah kami transisi saat ini, hari yang sama 513 00:22:12,840 --> 00:22:15,910 hari ini, untuk pemrograman web menggunakan PHP, Anda 514 00:22:15,910 --> 00:22:18,460 akan merasa begitu banyak lebih menyenangkan untuk menulis kode 515 00:22:18,460 --> 00:22:21,501 ketika Anda tidak perlu melakukan ini bodoh langkah seperti perubahan ke terminal Anda 516 00:22:21,501 --> 00:22:24,202 jendela, jenis make halo, re menjalankannya, reload jendela. 517 00:22:24,202 --> 00:22:25,910 Begitu banyak bodoh langkah mekanis yang 518 00:22:25,910 --> 00:22:28,480 hanya mendapatkan di jalan melakukan menarik, menyenangkan pekerjaan. 519 00:22:28,480 --> 00:22:31,450 Dan memang kita membuang itu pergi dengan PHP. 520 00:22:31,450 --> 00:22:34,960 Dan kita dapat berinteraksi dengan lebih cepat. 521 00:22:34,960 --> 00:22:35,495 Ya. 522 00:22:35,495 --> 00:22:36,370 AUDIENCE: [tidak terdengar] 523 00:22:36,370 --> 00:22:40,294 524 00:22:40,294 --> 00:22:40,960 SPEAKER 1: Tentu. 525 00:22:40,960 --> 00:22:42,876 Dapatkah saya menjelaskan apa itu berarti harus ditafsirkan? 526 00:22:42,876 --> 00:22:45,870 Ketika Anda mengkompilasi bahasa seperti C, itu turun 527 00:22:45,870 --> 00:22:48,140 seperti yang kita katakan untuk mesin kode, nol dan satu. 528 00:22:48,140 --> 00:22:51,860 Dan Intel memutuskan tahun lalu yang pola-pola tertentu dari nol dan satu 529 00:22:51,860 --> 00:22:56,220 mewakili Selain itu, atau pengurangan, atau cetak, atau operasi dasar lainnya. 530 00:22:56,220 --> 00:23:00,250 Dalam dunia bahasa ditafsirkan seperti PHP, atau JavaScript, atau Python, 531 00:23:00,250 --> 00:23:03,120 atau Ruby, atau tandan lain, bukannya seseorang 532 00:23:03,120 --> 00:23:05,120 telah menulis sebuah interpreter-- dalam kasus ini, 533 00:23:05,120 --> 00:23:09,770 itu juga disebut PHP, identik dengan nama dari language-- bahwa pada dasarnya 534 00:23:09,770 --> 00:23:13,840 memiliki lingkaran besar di dalamnya yang iterates atas semua baris kode 535 00:23:13,840 --> 00:23:18,170 yang saya makan itu sebagai masukan, seperti halo dot PHP, atau kamus dot PHP. 536 00:23:18,170 --> 00:23:21,760 >> Dan kemudian Anda bisa memikirkan besar mereka lingkaran sebagai memiliki banyak kondisi. 537 00:23:21,760 --> 00:23:26,340 Dan kondisi tersebut mengatakan, jika manusia telah menulis kata kunci untuk, 538 00:23:26,340 --> 00:23:28,470 mulai melakukan nya kode lagi dan lagi. 539 00:23:28,470 --> 00:23:31,360 Atau jika manusia memiliki menulis baris kode, 540 00:23:31,360 --> 00:23:34,880 jika, hanya menjalankan mereka baris berikutnya kondisional. 541 00:23:34,880 --> 00:23:37,740 Jadi itu benar-benar seperti menafsirkan dalam arti manusia, baris 542 00:23:37,740 --> 00:23:39,660 oleh garis, dan bahwa hanya membutuhkan waktu. 543 00:23:39,660 --> 00:23:41,340 Dibutuhkan overhead. 544 00:23:41,340 --> 00:23:44,189 Dan jadi itu price-- baik question-- kita bayar. 545 00:23:44,189 --> 00:23:46,480 Jadi mari kita lakukan demo lain itu sedikit lebih dramatis. 546 00:23:46,480 --> 00:23:51,160 Ada, saya akan mengatakan, kasarnya ini pada probabilitas 90% gagal mengerikan, 547 00:23:51,160 --> 00:23:53,869 tetapi Anda akan kagum dengan probabilitas 10%. 548 00:23:53,869 --> 00:23:55,660 Jadi setiap tahun kita mencoba untuk melakukan hal ini, dimana kami 549 00:23:55,660 --> 00:23:59,061 mencoba untuk menulis sebuah program yang berjalan melalui masalah set nol, yang Anda sudah 550 00:23:59,061 --> 00:24:02,060 disampaikan nomor telepon Anda dan banyak informasi demografis lainnya, 551 00:24:02,060 --> 00:24:06,030 dan kami pemrograman mengirimkan pesan teks. 552 00:24:06,030 --> 00:24:08,540 Dan kemudian telepon semua orang mulai berbunyi atau bergetar, 553 00:24:08,540 --> 00:24:11,460 dan itu hanya menakjubkan, karena baik, melihat apa yang dapat dilakukan komputer. 554 00:24:11,460 --> 00:24:13,840 >> Ini jarang bekerja dengan benar tampaknya, sebagian besar 555 00:24:13,840 --> 00:24:16,800 karena saya biasanya mendapatkan daftar hitam oleh Gmail atau beberapa layanan lainnya 556 00:24:16,800 --> 00:24:19,630 untuk benar-benar mencoba untuk melakukan hal ini pada skala. 557 00:24:19,630 --> 00:24:24,940 Tapi lucunya juga, karena kita tidak memiliki semua orang di sini hari ini, 558 00:24:24,940 --> 00:24:27,690 Bahkan menyenangkan saat kita terakhir mencoba ini dua tahun yang lalu, 559 00:24:27,690 --> 00:24:30,870 Saya pikir saya menulis sebuah program yang duduk dalam satu lingkaran iterasi 560 00:24:30,870 --> 00:24:34,040 atas semua siswa di kelas, dan masing-masing dari mereka pesan teks, 561 00:24:34,040 --> 00:24:37,534 dan itu mengatakan sesuatu seperti, mengapa tidak Anda di kuliah? 562 00:24:37,534 --> 00:24:39,170 Cinta, CS50 bot. 563 00:24:39,170 --> 00:24:42,580 >> Anda tidak tahu berapa banyak minta maaf dan email semacam menyakitkan 564 00:24:42,580 --> 00:24:46,970 Saya telah menerima respon dari n dikurangi 100 orang yang tidak ada di sini 565 00:24:46,970 --> 00:24:47,960 hari itu. 566 00:24:47,960 --> 00:24:52,116 Dan bahkan lucu, story-- lebih memalukan Anda tahu, mari kita meletakkannya di luar sana. 567 00:24:52,116 --> 00:24:53,740 Ini sudah di video beberapa tahun yang lalu. 568 00:24:53,740 --> 00:24:56,810 Jadi, Anda akan segera melihat saya menulis untuk loop, dimana 569 00:24:56,810 --> 00:25:00,640 itu sangat mudah untuk menulis bug dalam untuk loop, sehingga pertama kalinya 570 00:25:00,640 --> 00:25:02,800 melalui loop, Anda mengirim satu pesan teks. 571 00:25:02,800 --> 00:25:06,190 >> Kedua kalinya melalui loop saya harus telah mengirim satu pesan teks lebih, 572 00:25:06,190 --> 00:25:08,250 dan kemudian satu teks lebih pesan, dan satu lagi. 573 00:25:08,250 --> 00:25:11,490 Tapi ternyata jika Anda membuat kesalahan ketik ketika pemrograman, kadang-kadang Anda 574 00:25:11,490 --> 00:25:14,460 dapat menulis program yang mengirim satu pesan teks, kemudian dua pesan teks, 575 00:25:14,460 --> 00:25:18,742 kemudian tiga pesan teks ke semua orang yang sudah menerima pesan teks. 576 00:25:18,742 --> 00:25:21,450 Dan seperti yang Anda tahu, melakukan sesuatu, ditambah sesuatu, ditambah sesuatu, 577 00:25:21,450 --> 00:25:25,910 ditambah sesuatu, adalah O besar banyak pesan teks, atau n kuadrat, 578 00:25:25,910 --> 00:25:29,830 atau $ 0,10 pesan teks, $ 20.000. 579 00:25:29,830 --> 00:25:33,700 >> Untungnya aku memukul Control-C sebelum itu terjadi, tapi aku berutang setidaknya satu 580 00:25:33,700 --> 00:25:37,550 pendahulu Anda $ 20 untuk 200 beberapa pesan teks yang aneh itu, 581 00:25:37,550 --> 00:25:40,450 tidak hanya pergi ke telepon, tapi itu juga seperti ponsel flip yang lebih tua 582 00:25:40,450 --> 00:25:43,520 jadi seperti didorong keluar dari nya memori setiap teks pribadi lainnya 583 00:25:43,520 --> 00:25:45,930 Pesan ia benar-benar mendapatkan. 584 00:25:45,930 --> 00:25:49,250 Jadi kita memiliki satu tujuan hari ini, tidak untuk melakukan itu. 585 00:25:49,250 --> 00:25:50,620 Mungkin mengaktifkan mode pesawat. 586 00:25:50,620 --> 00:25:51,120 Baiklah. 587 00:25:51,120 --> 00:25:56,590 Jadi mari kita pergi ke Program sini callled-- 588 00:25:56,590 --> 00:25:59,060 bahwa saya akan memanggil teks dot PHP. 589 00:25:59,060 --> 00:26:01,074 Dan di muka, saya punya dua file di sini. 590 00:26:01,074 --> 00:26:06,030 Saya membuat sebuah file untuk hanya staf, yang punya semua info staf, semua nama 591 00:26:06,030 --> 00:26:07,260 dari situs web saja itu. 592 00:26:07,260 --> 00:26:09,756 Dan kemudian untuk sekarang saya hanya menempatkan beberapa nomor palsu 555-1212. 593 00:26:09,756 --> 00:26:11,380 Jadi ini tidak akan benar-benar pergi ke mana pun. 594 00:26:11,380 --> 00:26:15,140 Tapi perhatikan bagian dalam file CSV ini, yang kita bicarakan sebentar sebelum 595 00:26:15,140 --> 00:26:16,540 dalam konteks file IO. 596 00:26:16,540 --> 00:26:18,730 >> Apa file CSV? 597 00:26:18,730 --> 00:26:19,970 Dipisahkan dengan koma variabel. 598 00:26:19,970 --> 00:26:24,400 Dan ini adalah jenis seperti sangat Database ringan, jika Anda mau. 599 00:26:24,400 --> 00:26:28,650 Ada semacam semacam empat kolom dalam file ini, dan ada bergerigi, 600 00:26:28,650 --> 00:26:32,400 tapi koma dasarnya mewakili kolom dalam file. 601 00:26:32,400 --> 00:26:35,400 Kolom pertama adalah TF atau nama CA. 602 00:26:35,400 --> 00:26:37,800 Kolom kedua adalah nama terakhir mereka. 603 00:26:37,800 --> 00:26:39,820 Kolom ketiga adalah nomor telepon mereka. 604 00:26:39,820 --> 00:26:44,760 Dan kolom keempat rupanya is-- kolom keempat tampaknya apa? 605 00:26:44,760 --> 00:26:45,870 OK, jadi operator mereka. 606 00:26:45,870 --> 00:26:47,180 Jadi Verizon, Sprint atau, atau apa yang tidak. 607 00:26:47,180 --> 00:26:48,620 Dan jika saya salah bicara sebelumnya, CSV. 608 00:26:48,620 --> 00:26:51,800 Dipisahkan koma nilai adalah CSV sini. 609 00:26:51,800 --> 00:26:54,260 >> Jadi apa yang bisa saya lakukan dengan ini? 610 00:26:54,260 --> 00:26:56,940 Nah ini hanyalah sebuah file teks besar, dan itu jenis lama, kan? 611 00:26:56,940 --> 00:26:58,690 Seperti ini akan menjadi semacam menjengkelkan. 612 00:26:58,690 --> 00:27:03,510 Dan ternyata, meskipun, bahwa jika saya ingin mengirim pesan teks ke, mari kita 613 00:27:03,510 --> 00:27:05,180 mengatakan Alex sini. 614 00:27:05,180 --> 00:27:09,690 Biarkan aku masuk ke browser saya dan keluar dari mode layar penuh 615 00:27:09,690 --> 00:27:11,660 hanya jadi saya bisa beralih kembali dan sebagainya. 616 00:27:11,660 --> 00:27:20,280 Ternyata, mari kita lihat, jika saya pergi di di sini, dan login ke Gmail, baiklah. 617 00:27:20,280 --> 00:27:22,950 Jangan melihat bagian ini. 618 00:27:22,950 --> 00:27:23,880 Hanya saya bisa melihat. 619 00:27:23,880 --> 00:27:26,551 620 00:27:26,551 --> 00:27:28,800 tentu saja livestream bisa masih melihat apa yang saya lakukan. 621 00:27:28,800 --> 00:27:29,360 Baiklah. 622 00:27:29,360 --> 00:27:31,850 >> Jadi di sini hanya dengan Gmail Akun John Harvard. 623 00:27:31,850 --> 00:27:34,000 Jadi jika saya ingin mengirim pesan teks ke Alex, 624 00:27:34,000 --> 00:27:35,530 Aku tentu saja dapat menulis pesan. 625 00:27:35,530 --> 00:27:38,410 Dan ternyata, dan saya sudah diuji dengan Alex sebelum di sini, 626 00:27:38,410 --> 00:27:42,260 sehingga Anda dapat menambahkan sebuah domain tertentu nama ke nomor telepon orang, 627 00:27:42,260 --> 00:27:45,850 karena ada ada di dunia hal yang disebut SMS ke email gateway. 628 00:27:45,850 --> 00:27:50,000 Yang merupakan cara mewah mengatakan semua kita yang memiliki ponsel yang 629 00:27:50,000 --> 00:27:53,200 memiliki nomor telepon, tentu saja, mungkin ada untuk operator Anda, 630 00:27:53,200 --> 00:27:56,840 akhiran tertentu seperti di Vtext.com untuk pesan teks Verizon 631 00:27:56,840 --> 00:28:00,320 dot com, yang dapat Anda tambahkan ke Anda sendiri nomor telepon pribadi, dan kemudian 632 00:28:00,320 --> 00:28:03,540 Anda atau teman, atau orang tua Anda bisa teks Anda pada alamat tertentu. 633 00:28:03,540 --> 00:28:07,380 >> Dan Verizon memiliki server, email Server, yang setelah menerima email ini, 634 00:28:07,380 --> 00:28:11,180 terlihat di bagian numerik dan kemudian menggunakan apa pun yang khusus sihir industri 635 00:28:11,180 --> 00:28:14,540 mereka harus benar-benar mengirimkannya lebih gelombang udara ke sel tertentu 636 00:28:14,540 --> 00:28:15,040 telepon. 637 00:28:15,040 --> 00:28:18,030 Sekarang ini bagus karena saya tidak melakukan benar-benar tahu bagaimana untuk mengirim pesan teks 638 00:28:18,030 --> 00:28:20,460 atau untuk menulis kode belum untuk ponsel saya, 639 00:28:20,460 --> 00:28:23,580 dan Anda mungkin melakukan hal itu untuk proyek akhir, tapi untuk saat ini semua 640 00:28:23,580 --> 00:28:24,770 Yang saya miliki adalah laptop saya di sini. 641 00:28:24,770 --> 00:28:29,830 Jadi saya ingin iterate atas CSV yang File, baris, demi baris, demi baris, demi baris, 642 00:28:29,830 --> 00:28:35,160 ambil masing-masing nomor telepon staf, dan operator dan programatik mereka, 643 00:28:35,160 --> 00:28:39,770 menggabungkan, yaitu, menghubungkan ponsel nomor dengan nama domain yang tepat 644 00:28:39,770 --> 00:28:40,820 dan kemudian mengirim email. 645 00:28:40,820 --> 00:28:41,940 >> Jadi itulah banyak langkah-langkah. 646 00:28:41,940 --> 00:28:45,530 Dan keberuntungan melakukan itu di C. Ini adalah mimpi buruk dari sebuah situasi 647 00:28:45,530 --> 00:28:48,350 untuk membuka file, untuk membacanya line, demi baris, demi baris, seperti yang Anda 648 00:28:48,350 --> 00:28:51,100 melihat, atau mungkin segera melihat dengan masalah mengatur lima, jika tidak 649 00:28:51,100 --> 00:28:53,560 Masalah menetapkan empat, dan kemudian untuk menggabungkan dinamis 650 00:28:53,560 --> 00:28:57,020 dua string bersama-sama, karena dalam C, untuk mengambil dua string dan menggabungkan mereka, 651 00:28:57,020 --> 00:29:00,900 apa yang Anda minimal perlu melakukan paling mungkin? 652 00:29:00,900 --> 00:29:03,020 Anda perlu menyatakan lebih banyak memori, kan? 653 00:29:03,020 --> 00:29:04,710 Dan bertanya, malloc, dapat saya memiliki lebih banyak memori? 654 00:29:04,710 --> 00:29:07,060 Jadi saya bisa menempatkan setengah dari ini di sini, setengah dari ini di sini. 655 00:29:07,060 --> 00:29:08,150 Itu hanya begitu banyak langkah. 656 00:29:08,150 --> 00:29:10,310 Dan pada saat itu Anda telah kehilangan minat demo sedikit bodoh 657 00:29:10,310 --> 00:29:11,851 di mana Anda membuat bip telepon semua orang. 658 00:29:11,851 --> 00:29:14,590 Mari kita melakukan hal semacam ini PHP gaya, dimana kita hanya 659 00:29:14,590 --> 00:29:16,210 mulai menggunakan lebih dari itu wastafel dapur. 660 00:29:16,210 --> 00:29:18,050 >> Dan ide-ide yang dasarnya sama, 661 00:29:18,050 --> 00:29:20,710 tapi kita tidak perlu khawatir terlalu banyak tentang tingkat yang lebih rendah. 662 00:29:20,710 --> 00:29:22,950 Jadi mari kita lihat bagaimana saya mungkin pergi untuk melakukan ini. 663 00:29:22,950 --> 00:29:26,664 Dan hanya agar aku tidak melakukan mengulangi kesalahan masa lalu, 664 00:29:26,664 --> 00:29:28,330 Saya telah menulis beberapa catatan untuk diriku sendiri di sini. 665 00:29:28,330 --> 00:29:31,070 Dan mari kita lihat apakah saya bisa berjalan kami melalui beberapa langkah-langkah mendasar, 666 00:29:31,070 --> 00:29:33,861 dan kemudian demi waktu ini kita akan mungkin memotong beberapa sudut pada akhirnya. 667 00:29:33,861 --> 00:29:38,007 Aku akan pergi ke depan dan melakukan terbuka braket PHP untuk memulai file ini. 668 00:29:38,007 --> 00:29:39,590 Dan aku akan pergi ke depan dan melakukan hal ini. 669 00:29:39,590 --> 00:29:41,490 Berkas menangani, seperti Anda akan segera melihat, sebenarnya 670 00:29:41,490 --> 00:29:44,790 panggilan fungsi yang disebut f terbuka. 671 00:29:44,790 --> 00:29:46,280 Dan ingat ini membuka sebuah file. 672 00:29:46,280 --> 00:29:48,800 Dan kutipan, tanda kutip, r berarti apa, lagi? 673 00:29:48,800 --> 00:29:49,800 Hanya membukanya untuk membaca. 674 00:29:49,800 --> 00:29:51,210 Sekarang di p ditetapkan untuk, Anda melakukan ini. 675 00:29:51,210 --> 00:29:54,500 Dan menangani bisa apa saja, fu, bar, bas, setiap nama variabel. 676 00:29:54,500 --> 00:29:57,470 Tetapi umumnya komputer ilmuwan akan memanggil file yang terbuka, 677 00:29:57,470 --> 00:30:00,962 memberikan Anda menangani file, sesuatu untuk berpegang sehingga untuk berbicara. 678 00:30:00,962 --> 00:30:02,670 Aku hanya akan melakukan beberapa pengecekan error. 679 00:30:02,670 --> 00:30:07,260 Jadi jika pegangan adalah palsu, sama seperti di C, aku akan melakukan sesuatu seperti, 680 00:30:07,260 --> 00:30:09,545 tidak bisa membuka file, backslash n. 681 00:30:09,545 --> 00:30:11,420 Dan kemudian aku hanya akan untuk terus maju dan keluar. 682 00:30:11,420 --> 00:30:14,340 Dan ternyata, di PHP, Saya tidak dalam fungsi. 683 00:30:14,340 --> 00:30:16,160 Tidak ada fungsi utama di sini. 684 00:30:16,160 --> 00:30:17,450 Jadi saya tidak kembali, per se. 685 00:30:17,450 --> 00:30:18,120 Aku keluar. 686 00:30:18,120 --> 00:30:19,619 Yang pada dasarnya hal yang sama. 687 00:30:19,619 --> 00:30:22,510 Dan aku keluar dengan satu y mungkin. 688 00:30:22,510 --> 00:30:24,220 Satu hanya berarti kesalahan dari beberapa macam. 689 00:30:24,220 --> 00:30:25,580 Ini bukan nol, sehingga kesalahan. 690 00:30:25,580 --> 00:30:30,220 >> Baiklah, jadi jika aku di sini sekarang dalam program saya, saya telah membuka file. 691 00:30:30,220 --> 00:30:34,250 Aku akan pergi ke depan dan menyatakan array disebut alamat, 692 00:30:34,250 --> 00:30:38,610 dan di C saya harus tahu ukuran array di muka, kan? 693 00:30:38,610 --> 00:30:41,910 Atau saya perlu menyatakan ini adalah pointer, dan kemudian menggunakan malloc. 694 00:30:41,910 --> 00:30:44,720 Dan kemudian setiap kali saya membaca melalui baris lain dalam file, 695 00:30:44,720 --> 00:30:46,620 Aku akan perlu malloc lebih banyak memori, malloc lebih banyak memori. 696 00:30:46,620 --> 00:30:47,703 Itu rasa sakit di leher. 697 00:30:47,703 --> 00:30:50,950 Dan untungnya, PHP, dan Ruby, dan Python, dan JavaScript, mereka 698 00:30:50,950 --> 00:30:53,880 akan tumbuh array Anda untuk Anda secara otomatis. 699 00:30:53,880 --> 00:30:54,830 Tidak ada lagi malloc. 700 00:30:54,830 --> 00:30:56,227 Manajemen memori tidak lebih. 701 00:30:56,227 --> 00:30:57,560 Komputer menangani itu. 702 00:30:57,560 --> 00:31:00,330 Tapi harga yang Anda bayar. 703 00:31:00,330 --> 00:31:01,350 Ini sedikit lebih lambat. 704 00:31:01,350 --> 00:31:03,190 Dan untuk program seperti ini kita tidak akan melihat. 705 00:31:03,190 --> 00:31:04,720 Kami akan mengirim 100 pesan teks. 706 00:31:04,720 --> 00:31:06,136 Misalnya tidak akan merasakannya. 707 00:31:06,136 --> 00:31:08,430 IT benar-benar hanya mulai masalah bahasa pilihan Anda 708 00:31:08,430 --> 00:31:11,490 ketika data atau program Anda mendapatkan benar-benar, benar-benar cukup besar, 709 00:31:11,490 --> 00:31:14,120 seperti yang akan terjadi lebih dengan barang-barang berbasis web kami. 710 00:31:14,120 --> 00:31:15,450 >> Tapi untuk sekarang mari kita terus maju. 711 00:31:15,450 --> 00:31:20,120 Sementara itu ternyata ada fungsi dalam C disebut f mendapatkan CSV. 712 00:31:20,120 --> 00:31:24,570 File mendapatkan CSV, yang membutuhkan mengajukan pegangan sebagai argumen, 713 00:31:24,570 --> 00:31:28,810 dan hasil itu, berturut-turut, dengan baris, demi baris, untuk membaca berturut-turut. 714 00:31:28,810 --> 00:31:30,964 Sehingga hanya membaca baris teks dari file. 715 00:31:30,964 --> 00:31:34,130 Tapi apa yang baik tentang fungsi ini, itu tidak hanya tangan saya baris teks. 716 00:31:34,130 --> 00:31:37,320 Kelihatannya bagi mereka koma, dan mem-parsing baris. 717 00:31:37,320 --> 00:31:41,740 Dan mengurai garis berarti untuk membagi pada nilai-nilai tertentu dalam konteks ini. 718 00:31:41,740 --> 00:31:45,510 >> Dengan kata lain, tanda dolar baris adalah variabel yang 719 00:31:45,510 --> 00:31:47,010 akan memberi saya sekelompok indeks. 720 00:31:47,010 --> 00:31:49,635 Ini akan menjadi kolom pertama di CSV saya. 721 00:31:49,635 --> 00:31:52,510 Ini akan menjadi yang kedua kolom, ini akan menjadi ketiga, 722 00:31:52,510 --> 00:31:53,968 dan ini akan menjadi keempat. 723 00:31:53,968 --> 00:31:57,440 Karena ingat, dan Excel tidak bekerja sama terakhir kali kami melakukan ini, 724 00:31:57,440 --> 00:32:03,350 tetapi jika saya mendownload staf dot CSV. 725 00:32:03,350 --> 00:32:04,940 Whoops, tidak mengubah nama. 726 00:32:04,940 --> 00:32:09,120 Jika saya mendownload staf dot CSV, dan mencoba membukanya, 727 00:32:09,120 --> 00:32:12,510 Aku sudah registered-- oh saya tidak memperbarui Excel sejak terakhir kali. 728 00:32:12,510 --> 00:32:15,880 Anda akan melihat bahwa di staf dot CSV, saya memiliki empat kolom. 729 00:32:15,880 --> 00:32:18,720 Jadi ketika saya membaca di baris pertama untuk Abby sini, 730 00:32:18,720 --> 00:32:23,582 Dolar tanda baris 0 adalah Abby, Dolar tanda baris satu Lyons, 731 00:32:23,582 --> 00:32:27,740 Dolar tanda baris kedua adalah nomor teleponnya, dan kemudian operator telepon nya. 732 00:32:27,740 --> 00:32:28,410 >> Jadi itu semua. 733 00:32:28,410 --> 00:32:30,740 Dan itu bagus, karena saya tidak perlu sekarang mencari tahu 734 00:32:30,740 --> 00:32:32,800 di mana semua orang koma sebenarnya. 735 00:32:32,800 --> 00:32:35,300 Jadi aku akan pergi ke depan dan melakukan hal ini, mengingat definisi itu, 736 00:32:35,300 --> 00:32:38,960 Aku akan mengatakan bahwa namanya adalah berturut-turut braket nol, seperti yang dijanjikan. 737 00:32:38,960 --> 00:32:41,150 Dan aku akan grab-- dan sebenarnya, Anda tahu apa? 738 00:32:41,150 --> 00:32:42,780 Aku tidak akan khawatir tentang namanya, dalam hal ini. 739 00:32:42,780 --> 00:32:43,988 Aku akan tetap sederhana. 740 00:32:43,988 --> 00:32:48,610 Aku akan melakukan nomor nya berturut-turut braket dua, saya pikir. 741 00:32:48,610 --> 00:32:50,510 Dan operator nya di mana? 742 00:32:50,510 --> 00:32:53,405 Baris tiga, satu di atas. 743 00:32:53,405 --> 00:32:54,280 Jadi tidak ada yang baru di sana. 744 00:32:54,280 --> 00:32:56,770 Ini hanya nol pengindeksan ke dalam array. 745 00:32:56,770 --> 00:32:58,760 >> Dan sekarang, aku akan melakukan hal berikut. 746 00:32:58,760 --> 00:33:03,930 Jika carrier sama sama AT & T-- Aku hanya akan memiliki sebuah loop-- 747 00:33:03,930 --> 00:33:06,790 Saya ingin membuat email alamat yang terlihat seperti ini. 748 00:33:06,790 --> 00:33:12,320 Ini akan menjadi 617-555-1212 di, apa itu, text.ATT.net, 749 00:33:12,320 --> 00:33:13,490 adalah apa yang ingin saya lakukan. 750 00:33:13,490 --> 00:33:15,260 Jadi bagaimana saya melakukan ini? 751 00:33:15,260 --> 00:33:16,730 Aku akan melakukan hal berikut. 752 00:33:16,730 --> 00:33:22,460 Alamatnya akan menjadi nomor teleponnya, dan sekarang, biarkan aku pergi ke depan dan melakukan hal ini. 753 00:33:22,460 --> 00:33:23,760 Ini adalah beberapa sintaks funky. 754 00:33:23,760 --> 00:33:27,250 Aku bisa melakukan trik persen s, tapi aku benar-benar dapat hanya melakukan ini. 755 00:33:27,250 --> 00:33:29,900 >> Jadi ini adalah hal PHP, tapi mari kita mempertimbangkan apa yang saya lakukan. 756 00:33:29,900 --> 00:33:31,630 Dolar menandatangani alamat pada kiri, hanya variabel. 757 00:33:31,630 --> 00:33:32,300 Beri aku variabel. 758 00:33:32,300 --> 00:33:33,390 Saya tidak harus menentukan jenis. 759 00:33:33,390 --> 00:33:34,570 PHP akan mencari tahu. 760 00:33:34,570 --> 00:33:36,580 Di sisi kanan, apa tipe data 761 00:33:36,580 --> 00:33:38,399 itu semuanya pada sisi kanan? 762 00:33:38,399 --> 00:33:40,190 Sepertinya string, karena ada dua 763 00:33:40,190 --> 00:33:42,280 mengutip di paling kiri dan paling kanan. 764 00:33:42,280 --> 00:33:44,210 Sekarang ada beberapa sintaks baru yang funky di sini. 765 00:33:44,210 --> 00:33:47,550 Ada kurung kurawal, dan jumlah tanda dolar. 766 00:33:47,550 --> 00:33:52,860 Tapi mengambil menebak apa sintaks yang mungkin mengatakan PHP lakukan untuk saya? 767 00:33:52,860 --> 00:33:53,360 Ya. 768 00:33:53,360 --> 00:33:54,630 Hanya memasukkan nilai di sana. 769 00:33:54,630 --> 00:33:55,530 Jadi tidak ada persen s. 770 00:33:55,530 --> 00:33:58,160 Kita bisa menggunakan print f, atau s cetak f atau sesuatu seperti itu, 771 00:33:58,160 --> 00:34:00,070 tapi PHP dan banyak bahasa tingkat tinggi, 772 00:34:00,070 --> 00:34:03,070 Anda akan melihat bahwa Anda bisa melakukan hal yang sama fungsional, mungkin 773 00:34:03,070 --> 00:34:04,019 enam cara yang berbeda. 774 00:34:04,019 --> 00:34:06,310 Dan sehingga mulai menjadi soal desain atau gaya. 775 00:34:06,310 --> 00:34:09,902 Jadi ini hanya mencari cara samar mengatakan, memberi saya alamat email, 776 00:34:09,902 --> 00:34:12,110 tapi plug-in jumlah di antara kurung kurawal. 777 00:34:12,110 --> 00:34:15,440 Dan kurung kurawal tidak akan berakhir di alamat akhir. 778 00:34:15,440 --> 00:34:18,010 >> Sekarang kita bisa melewatkan beberapa garis-garis ini demi masa itu. 779 00:34:18,010 --> 00:34:21,210 Jadi jika pembawa sama sama verHorizon-- whoops, 780 00:34:21,210 --> 00:34:24,989 Verizon-- Saya ingin melakukan sesuatu sangat mirip, di mana alamat mendapat, 781 00:34:24,989 --> 00:34:27,569 kutipan, tanda kutip, jumlah di text.ATT.net. 782 00:34:27,569 --> 00:34:30,380 783 00:34:30,380 --> 00:34:35,050 Dan kemudian saya bisa melakukan yang sama hal untuk sisa operator. 784 00:34:35,050 --> 00:34:37,090 Tapi aku hanya akan melakukan dot, dot, dot untuk saat ini. 785 00:34:37,090 --> 00:34:43,050 Dan sekarang mari kita mengira bahwa Saya ingin menambahkan array, mendorong. 786 00:34:43,050 --> 00:34:45,969 Saya ingin menambah array, yang disebut alamat. 787 00:34:45,969 --> 00:34:50,409 >> Alamat ini, ini adalah bagaimana Anda menambahkan sesuatu ke array di PHP. 788 00:34:50,409 --> 00:34:51,610 Anda tidak perlu melakukan malloc. 789 00:34:51,610 --> 00:34:53,068 Anda tidak harus mengubah ukuran array. 790 00:34:53,068 --> 00:34:54,259 Anda hanya mengatakan array, push. 791 00:34:54,259 --> 00:34:57,300 Apa yang Anda ingin push-- apa array yang Anda ingin mendorong sesuatu ke? 792 00:34:57,300 --> 00:34:58,000 Alamat. 793 00:34:58,000 --> 00:34:59,550 Apa yang Anda ingin mendorong ke alamat? 794 00:34:59,550 --> 00:35:00,350 Alamat. 795 00:35:00,350 --> 00:35:02,430 Dan pada kenyataannya, jika Anda benar-benar ingin menjadi pintar, 796 00:35:02,430 --> 00:35:05,610 gula sintaksis untuk ini, sehingga untuk berbicara, 797 00:35:05,610 --> 00:35:10,230 yang hanya berarti bagaimana Anda dapat melakukan ini di cara cantik, akan melakukan hal ini. 798 00:35:10,230 --> 00:35:14,060 Itu juga memiliki efek tumbuh alamat array dengan ukuran satu, 799 00:35:14,060 --> 00:35:17,130 dan kemudian celepuk yang tambahan alamat email ke dalamnya. 800 00:35:17,130 --> 00:35:17,630 Ya. 801 00:35:17,630 --> 00:35:19,730 >> AUDIENCE: [tidak terdengar] 802 00:35:19,730 --> 00:35:22,520 >> SPEAKER 1: Sebuah kesalahan ketik pada lain if-- oh, pembawa. 803 00:35:22,520 --> 00:35:23,070 Tidak apa-apa. 804 00:35:23,070 --> 00:35:26,971 Hal ini juga tidak akan seperti kegagalan saya untuk mengimplementasikan bagian dari program ini 805 00:35:26,971 --> 00:35:27,470 nanti. 806 00:35:27,470 --> 00:35:28,810 Tapi terima kasih untuk menangkap. 807 00:35:28,810 --> 00:35:30,671 Satu bug lagi. 808 00:35:30,671 --> 00:35:31,170 Terima kasih. 809 00:35:31,170 --> 00:35:33,746 Kami ingin ini menjadi Vtext.com. 810 00:35:33,746 --> 00:35:34,340 Iya nih. 811 00:35:34,340 --> 00:35:34,839 Baiklah. 812 00:35:34,839 --> 00:35:36,330 Jadi bagaimana ini meninggalkan kita? 813 00:35:36,330 --> 00:35:38,224 Kami sudah menulis kode untuk membuka file. 814 00:35:38,224 --> 00:35:40,390 Kami memiliki loop untuk iterate atas baris dalam file. 815 00:35:40,390 --> 00:35:43,650 Kami memiliki kode yang menambah saya array, satu per satu, dengan benar 816 00:35:43,650 --> 00:35:44,790 alamat email diformat. 817 00:35:44,790 --> 00:35:48,480 Jadi semua yang benar-benar tersisa adalah untuk mengirim email ke masing-masing orang. 818 00:35:48,480 --> 00:35:52,830 >> Jadi saya telah pergi ke depan dan mempersiapkan diri saya sebagai berikut. 819 00:35:52,830 --> 00:35:59,580 Apa yang akan saya lakukan di sini is-- dan mari pergi ke depan dan melompat ke beberapa kode yang sebenarnya, 820 00:35:59,580 --> 00:36:00,620 yang terlihat seperti ini. 821 00:36:00,620 --> 00:36:02,950 Jadi di sini adalah pra-panggang Versi saya tulis sebelumnya. 822 00:36:02,950 --> 00:36:04,700 Dan melihat saya selesai menerapkan Sprint. 823 00:36:04,700 --> 00:36:06,130 Aku selesai melaksanakan T-Mobile. 824 00:36:06,130 --> 00:36:08,020 Aku selesai melaksanakan Virgin Mobile. 825 00:36:08,020 --> 00:36:09,622 Dan aku akan mohon maaf sebelumnya. 826 00:36:09,622 --> 00:36:12,080 Ada beberapa operator yang beberapa siswa di kelas memiliki 827 00:36:12,080 --> 00:36:14,640 bahwa saya tidak repot-repot pencacahan dalam jika kondisi di sini. 828 00:36:14,640 --> 00:36:16,015 Jadi tidak semua teks akan keluar. 829 00:36:16,015 --> 00:36:17,556 Tapi mari kita lihat apa lagi yang harus saya lakukan. 830 00:36:17,556 --> 00:36:19,660 Aku menutup file, hanya seperti di p menetapkan empat. 831 00:36:19,660 --> 00:36:20,835 >> Dan ini adalah sintaks baru. 832 00:36:20,835 --> 00:36:22,710 Dan kita akan melihat sedikit sedikit ini dari waktu ke waktu, 833 00:36:22,710 --> 00:36:24,450 terutama dengan p menetapkan tujuh dan delapan. 834 00:36:24,450 --> 00:36:28,140 Tapi ini sintaks untuk membuat khusus jenis struktur. 835 00:36:28,140 --> 00:36:31,490 Ternyata ada perpustakaan yang dilengkapi dengan PHP, disebut PHP mailer. 836 00:36:31,490 --> 00:36:33,840 Tujuannya dalam hidup adalah pemrograman mengirim email. 837 00:36:33,840 --> 00:36:36,840 Ini kode orang lain menulis bahwa membuat lebih mudah bagi kita untuk mengirim email, 838 00:36:36,840 --> 00:36:39,131 sehingga kita tidak harus terus akan bolak-balik ke Gmail, 839 00:36:39,131 --> 00:36:41,151 dan paste di alamat email orang. 840 00:36:41,151 --> 00:36:44,150 Ada sejumlah besar baris disini yang jujur, aku hanya jenis disalin 841 00:36:44,150 --> 00:36:45,660 dan disisipkan dari dokumentasi. 842 00:36:45,660 --> 00:36:47,409 Dan pada kenyataannya, jika Anda penasaran, aku meninggalkan semua 843 00:36:47,409 --> 00:36:50,550 URL dari dokumentasi dalam kode yang kami akan posting nanti. 844 00:36:50,550 --> 00:36:52,360 Dan perhatikan bahwa di antara hal-hal yang saya lakukan 845 00:36:52,360 --> 00:36:55,710 adalah, saya mengatakan perpustakaan ini, menggunakan server Gmail, kan? 846 00:36:55,710 --> 00:36:59,360 SMTP kami berbicara secara singkat tentang ketika kita berada di Yale tentang menjadi mail sederhana 847 00:36:59,360 --> 00:37:00,110 protokol transfer. 848 00:37:00,110 --> 00:37:02,920 Ini protokol yang server yang digunakan untuk mengirim email, 849 00:37:02,920 --> 00:37:05,150 dan that's-- Gmail memiliki salah satu dari mereka. 850 00:37:05,150 --> 00:37:07,290 Port A, ini adalah nomor port TCP. 851 00:37:07,290 --> 00:37:09,630 Tidak apa-apa jika Anda belum melihat 587 sebelumnya. 852 00:37:09,630 --> 00:37:11,420 Hanya tahu bahwa dari dokumentasi. 853 00:37:11,420 --> 00:37:12,250 Berikut username saya. 854 00:37:12,250 --> 00:37:13,670 Aku akan menggunakan bot CF50. 855 00:37:13,670 --> 00:37:16,690 Dan sebentar, aku hanya akan mengetikkan password yang sebenarnya bot. 856 00:37:16,690 --> 00:37:18,690 Dan kemudian di sini, perhatikan apa yang tersisa. 857 00:37:18,690 --> 00:37:22,840 >> Aku mengatur saya dari alamat untuk bot di CS50.net. 858 00:37:22,840 --> 00:37:26,240 Saya pikir saya tidak akan menyesal mengirim pesan teks ke 800 orang yang 859 00:37:26,240 --> 00:37:30,590 mengatakan, merindukanmu, cinta CS50 bot, mungkin bagi mereka yang tidak bisa datang hari ini. 860 00:37:30,590 --> 00:37:33,160 Dan kemudian sejalan 76, apa yang harus saya lakukan? 861 00:37:33,160 --> 00:37:39,010 Semacam ini terlihat seperti C. Jadi untuk saya sama dengan 0, n equals-- sekarang menghitung baru. 862 00:37:39,010 --> 00:37:42,077 Ternyata bahwa jika Anda ingin mendapatkan jumlah hal dalam array, 863 00:37:42,077 --> 00:37:43,660 Anda tidak perlu mengingatnya lagi. 864 00:37:43,660 --> 00:37:45,370 Anda hanya dapat meminta fungsi yang disebut count, 865 00:37:45,370 --> 00:37:48,320 dan akan memberitahu Anda berapa banyak alamat berada di array. 866 00:37:48,320 --> 00:37:53,210 >> Dan kemudian aku akan menambahkan alamat email tersebut. 867 00:37:53,210 --> 00:37:55,090 Dan aku tahu ini dari menggunakan dokumentasi. 868 00:37:55,090 --> 00:37:56,900 Ada fungsi alamat add. 869 00:37:56,900 --> 00:37:58,980 Dan sekarang melihat ada adalah salah satu bagian dari sintaks. 870 00:37:58,980 --> 00:38:01,470 Kami telah melihat ini sebelumnya di C. serupa dalam roh. 871 00:38:01,470 --> 00:38:04,100 Anda bisa memikirkan tanda dolar surat sebagai variabel, yang itu. 872 00:38:04,100 --> 00:38:08,100 Tapi itu struct dalam yang tidak hanya properti, 873 00:38:08,100 --> 00:38:09,400 variabel jika Anda mau. 874 00:38:09,400 --> 00:38:13,480 Tapi ternyata di PHP, yang adalah pemrograman berorientasi objek 875 00:38:13,480 --> 00:38:16,520 bahasa, seperti Jawa jika Anda mengambil APCS. 876 00:38:16,520 --> 00:38:21,420 >> Dolar tanda mail, jika Anda ingin to-- juga memiliki fungsi di dalamnya, 877 00:38:21,420 --> 00:38:22,380 atau metode. 878 00:38:22,380 --> 00:38:24,720 Jadi ini adalah untuk mengatakan bahwa PHP mailer khusus 879 00:38:24,720 --> 00:38:29,280 perpustakaan, jika saya punya variabel daripadanya, jika saya ingin memanggil fungsi yang 880 00:38:29,280 --> 00:38:31,559 dilengkapi dengan perpustakaan itu, untuk tujuan hari ini, 881 00:38:31,559 --> 00:38:33,100 hanya tahu Anda menggunakan notasi panah. 882 00:38:33,100 --> 00:38:34,150 Tidak ada notasi titik. 883 00:38:34,150 --> 00:38:35,220 Hanya saja panah. 884 00:38:35,220 --> 00:38:36,380 Tapi itu bukan pointer. 885 00:38:36,380 --> 00:38:38,680 Itu hanya dipinjam dari sintaks C. 886 00:38:38,680 --> 00:38:43,620 Begitu panggilan tambahkan alamat dalam objek ini perpustakaan atau variabel. 887 00:38:43,620 --> 00:38:44,440 >> Baiklah. 888 00:38:44,440 --> 00:38:45,570 Ini adalah garis magis. 889 00:38:45,570 --> 00:38:46,740 Begitulah cara saya mengirim email. 890 00:38:46,740 --> 00:38:50,040 Itu adalah setara dengan membuka Gmail, mengetik itu, dan memukul kirim. 891 00:38:50,040 --> 00:38:54,870 Tapi itu akan sebaliknya mengirim email ke alamat ini, dengan tubuh ini, 892 00:38:54,870 --> 00:38:57,120 dari bot CS50. 893 00:38:57,120 --> 00:38:58,710 Dan sekarang baris kunci. 894 00:38:58,710 --> 00:39:03,130 Baris ini absen di 2011 seperti ketika saya pikir saya terakhir mencoba ini. 895 00:39:03,130 --> 00:39:05,640 Garis yang ada, tentu saja, membersihkan alamat. 896 00:39:05,640 --> 00:39:07,920 Jadi secara logika, jika saya tidak jelas alamat 897 00:39:07,920 --> 00:39:11,740 setelah setiap iterasi, yang pertama email atau pesan teks masuk ke Alice, 898 00:39:11,740 --> 00:39:14,320 kedua pergi ke Alice dan Bob, yang ketiga 899 00:39:14,320 --> 00:39:17,870 pergi ke Alice dan Bob dan Charlie, maka kesalahan yang sangat mahal 900 00:39:17,870 --> 00:39:18,760 Saya membuat tahun itu. 901 00:39:18,760 --> 00:39:21,080 >> Jadi mari kita lihat. 902 00:39:21,080 --> 00:39:24,200 Apakah ada pertanyaan sebelum kami mengirimkan semua teks 903 00:39:24,200 --> 00:39:28,210 pesan dengan probabilitas 10 persen? 904 00:39:28,210 --> 00:39:28,940 Ada pertanyaan? 905 00:39:28,940 --> 00:39:30,330 Baiklah. 906 00:39:30,330 --> 00:39:36,100 Mari aku pergi di sini dan perubahan password untuk apa yang harus bekerja, 907 00:39:36,100 --> 00:39:37,780 kemungkinan akan mendapatkan daftar hitam oleh Gmail. 908 00:39:37,780 --> 00:39:39,821 Sehingga mereka mungkin tidak semua pergi keluar, karena mereka mungkin 909 00:39:39,821 --> 00:39:42,960 tidak suka kita mengirim 800 email dalam untuk loop sekaligus. 910 00:39:42,960 --> 00:39:45,140 Sejak itu tidak perilaku terutama manusia. 911 00:39:45,140 --> 00:39:47,460 >> Oh, aku akan mengubah satu hal lainnya. 912 00:39:47,460 --> 00:39:50,850 Sampai di atas, aku akan sent-- mengubah file ke siswa dot CSV. 913 00:39:50,850 --> 00:39:55,420 Dan aku tidak akan membuka ini, tapi ini adalah file CSV identik dengan tidak 100 staf, 914 00:39:55,420 --> 00:39:58,970 tapi 800 siswa, hanya dari Harvard, Yale karena 915 00:39:58,970 --> 00:40:00,207 memiliki istirahat Oktober minggu ini. 916 00:40:00,207 --> 00:40:03,290 Dan sepertinya semacam hal brengsek yang harus dilakukan untuk teks semua dari mereka mengapa 917 00:40:03,290 --> 00:40:04,750 mereka tidak di kelas pada hari libur. 918 00:40:04,750 --> 00:40:05,250 Tidak apa-apa. 919 00:40:05,250 --> 00:40:08,310 Hanya siswa Harvard hari ini dalam file itu. 920 00:40:08,310 --> 00:40:12,320 Dan sekarang mari kita kembali ke jendela terminal saya. 921 00:40:12,320 --> 00:40:13,710 Aku agak gugup. 922 00:40:13,710 --> 00:40:22,000 >> OK jadi sekarang aku akan pergi ke direktori, dan teks PHP dot PHP. 923 00:40:22,000 --> 00:40:24,950 Bagaimana sekitar satu relawan berani? 924 00:40:24,950 --> 00:40:26,690 Jadi saya tidak ingin ini pada saya. 925 00:40:26,690 --> 00:40:28,410 OK, datang ke atas. 926 00:40:28,410 --> 00:40:29,162 Siapa namamu? 927 00:40:29,162 --> 00:40:29,662 MAYA: Maya. 928 00:40:29,662 --> 00:40:30,328 SPEAKER 1: Maya. 929 00:40:30,328 --> 00:40:31,610 Ayo up, Maya. 930 00:40:31,610 --> 00:40:34,120 Baiklah. 931 00:40:34,120 --> 00:40:35,389 Mari kita lihat apakah ini bekerja. 932 00:40:35,389 --> 00:40:38,430 Aku memasukkan alamat email saya sendiri di file-- nomor telepon saya sendiri dalam file, 933 00:40:38,430 --> 00:40:40,110 sehingga mudah-mudahan saya akan mendapatkan satu juga. 934 00:40:40,110 --> 00:40:40,819 Senang berjumpa dengan mu. 935 00:40:40,819 --> 00:40:41,443 MAYA: Demikian juga. 936 00:40:41,443 --> 00:40:44,510 SPEAKER 1: Jadi yang harus Anda lakukan adalah tekan Enter untuk mengirim 800 pesan teks, 937 00:40:44,510 --> 00:40:45,466 jika saya tidak mengacaukan. 938 00:40:45,466 --> 00:40:51,106 939 00:40:51,106 --> 00:40:51,606 Bagus. 940 00:40:51,606 --> 00:40:55,556 941 00:40:55,556 --> 00:40:58,430 Bisa memakan waktu cukup lama, statistik, sampai kita mendapatkan email address-- 942 00:40:58,430 --> 00:41:00,573 pesan teks yang di kamar sekarang. 943 00:41:00,573 --> 00:41:03,880 944 00:41:03,880 --> 00:41:05,390 Mari kita berlama-lama dan melihat. 945 00:41:05,390 --> 00:41:06,940 >> AUDIENCE: [bersiul] 946 00:41:06,940 --> 00:41:08,270 >> SPEAKER 1: Oh, ya. 947 00:41:08,270 --> 00:41:09,230 >> AUDIENCE: Oh, Gotcha. 948 00:41:09,230 --> 00:41:16,720 949 00:41:16,720 --> 00:41:19,180 >> SPEAKER 1: Untuk loop are-- ini tidak lambat karena PHP. 950 00:41:19,180 --> 00:41:21,810 Hal ini lambat karena Gmail throttling kita dan tidak 951 00:41:21,810 --> 00:41:25,170 membiarkan kita mengirim lebih dari seperti email per detik. 952 00:41:25,170 --> 00:41:26,300 Sesuatu? 953 00:41:26,300 --> 00:41:29,990 Ini adalah hal yang sulit bagi saya untuk menguji di rumah dengan hanya saya dan telepon saya satu, jadi. 954 00:41:29,990 --> 00:41:37,630 955 00:41:37,630 --> 00:41:41,111 Apakah yang diharapkan dari bot? 956 00:41:41,111 --> 00:41:41,610 Iya nih? 957 00:41:41,610 --> 00:41:42,110 Tidak? 958 00:41:42,110 --> 00:41:44,760 959 00:41:44,760 --> 00:41:46,620 Bilang iya. 960 00:41:46,620 --> 00:41:47,479 Tidak? 961 00:41:47,479 --> 00:41:49,374 Ini dari teman? 962 00:41:49,374 --> 00:41:49,874 Canggung. 963 00:41:49,874 --> 00:41:50,374 OKE. 964 00:41:50,374 --> 00:41:56,580 965 00:41:56,580 --> 00:42:00,090 Cukup yakin itu bekerja sekalipun. 966 00:42:00,090 --> 00:42:00,910 Uh oh. 967 00:42:00,910 --> 00:42:03,190 Mereka black-- oh, tunggu sebentar. 968 00:42:03,190 --> 00:42:04,280 Oh, kau tahu apa? 969 00:42:04,280 --> 00:42:06,100 Tolong tunggu sebentar. 970 00:42:06,100 --> 00:42:07,802 Hanya Maya dan aku-- Mia, apakah itu? 971 00:42:07,802 --> 00:42:08,301 MAYA: Maya. 972 00:42:08,301 --> 00:42:12,110 SPEAKER 1: Maya, akan tahu apa yang saya lakukan salah di sini. 973 00:42:12,110 --> 00:42:14,890 Oh, tunggu sebentar. 974 00:42:14,890 --> 00:42:23,320 Saya pikir saya hanya mengirim 100 pesan teks ke 555-1212. 975 00:42:23,320 --> 00:42:24,346 Bersiaga. 976 00:42:24,346 --> 00:42:28,080 977 00:42:28,080 --> 00:42:29,270 Saya tidak bisa menang setiap tahun. 978 00:42:29,270 --> 00:42:30,180 OKE. 979 00:42:30,180 --> 00:42:30,680 Maya? 980 00:42:30,680 --> 00:42:33,530 981 00:42:33,530 --> 00:42:36,219 Memperbaikinya di pos produksi. 982 00:42:36,219 --> 00:42:36,718 Sialan! 983 00:42:36,718 --> 00:42:39,430 984 00:42:39,430 --> 00:42:40,390 Berikut dari alamat. 985 00:42:40,390 --> 00:42:41,301 OK, berdiri. 986 00:42:41,301 --> 00:42:41,800 Maaf. 987 00:42:41,800 --> 00:42:44,550 988 00:42:44,550 --> 00:42:47,080 Itu menyakitkan setiap tahun. 989 00:42:47,080 --> 00:42:48,640 OK, satu saat. 990 00:42:48,640 --> 00:42:50,530 Ini bagus. 991 00:42:50,530 --> 00:42:54,010 Saya bukannya akan melakukan hal ini. 992 00:42:54,010 --> 00:42:55,470 Alamat cetak. 993 00:42:55,470 --> 00:42:56,030 OK, berdiri. 994 00:42:56,030 --> 00:43:01,340 Alamat cetak, braket i. 995 00:43:01,340 --> 00:43:02,710 Ya, aku seperti itu. 996 00:43:02,710 --> 00:43:10,220 Dollar sign-- OK saya akan menjelaskan apa yang saya melakukan suatu saat, setelah aku menjalankan ini. 997 00:43:10,220 --> 00:43:11,670 Setiap tahun. 998 00:43:11,670 --> 00:43:13,125 OK, di sini kita pergi. 999 00:43:13,125 --> 00:43:15,750 Saya memiliki hanya-- dan saya tidak ingin untuk menampilkan nomor telepon semua orang, 1000 00:43:15,750 --> 00:43:17,740 tapi Maya dapat mengkonfirmasi dengan anggukan kepala, 1001 00:43:17,740 --> 00:43:20,800 bahwa ia melihat semua orang nomor telepon di kelas 1002 00:43:20,800 --> 00:43:26,750 bahwa aku akan menyalin ke sebuah program yang disebut Gmail. 1003 00:43:26,750 --> 00:43:30,860 Dan jika di Gmail, apa yang ingin kita katakan? 1004 00:43:30,860 --> 00:43:32,137 Kangen kamu. 1005 00:43:32,137 --> 00:43:33,220 Love-- itu bukan dari saya. 1006 00:43:33,220 --> 00:43:35,230 Aku bahkan tidak memukul kirim belum. 1007 00:43:35,230 --> 00:43:39,450 Jadi mari kita pergi ke depan dan melakukan ini, jika saya dapat memperbesar. 1008 00:43:39,450 --> 00:43:40,300 OKE. 1009 00:43:40,300 --> 00:43:42,480 Jadi saya menggunakan sebuah program bernama Gmail sekarang. 1010 00:43:42,480 --> 00:43:44,490 Jika Maya, Anda ingin klik tombol Send, 1011 00:43:44,490 --> 00:43:46,970 kita akan mensimulasikan apa yang Kode harus dilakukan. 1012 00:43:46,970 --> 00:43:54,630 1013 00:43:54,630 --> 00:43:55,254 >> Sesuatu? 1014 00:43:55,254 --> 00:43:56,062 >> [BERBUNYI] 1015 00:43:56,062 --> 00:43:56,870 >> AUDIENCE: Yep. 1016 00:43:56,870 --> 00:43:58,030 >> SPEAKER 1: Ya? 1017 00:43:58,030 --> 00:43:59,210 Keselamatan? 1018 00:43:59,210 --> 00:44:00,427 >> AUDIENCE: Yep. 1019 00:44:00,427 --> 00:44:01,260 SPEAKER 1: Miss you. 1020 00:44:01,260 --> 00:44:02,718 Dan aku akan mengirimkan sisanya. 1021 00:44:02,718 --> 00:44:06,060 Saya mengirimkan setengah karena saya tidak berpikir Gmail akan membiarkan mereka pergi melalui. 1022 00:44:06,060 --> 00:44:12,410 Jadi hanya ingat, hari ini adalah hari Anda belajar bahwa saya dapat menggunakan Gmail. 1023 00:44:12,410 --> 00:44:14,977 1024 00:44:14,977 --> 00:44:15,810 Itu mengerikan. 1025 00:44:15,810 --> 00:44:17,140 Sebuah tepuk tangan besar untuk Maya. 1026 00:44:17,140 --> 00:44:18,980 Terima kasih. 1027 00:44:18,980 --> 00:44:21,280 Baiklah, jadi. 1028 00:44:21,280 --> 00:44:22,210 apa 1029 00:44:22,210 --> 00:44:23,140 >> [BERBUNYI] 1030 00:44:23,140 --> 00:44:25,010 1031 00:44:25,010 --> 00:44:26,580 >> Kami punya beberapa beep, ya? 1032 00:44:26,580 --> 00:44:27,080 Baiklah. 1033 00:44:27,080 --> 00:44:30,590 Sekarang aku akan mendapatkan 700 benar-benar email bahagia kembali dari teman-teman sekelasnya. 1034 00:44:30,590 --> 00:44:32,400 Jadi setidaknya kita akan melihat apakah itu layak. 1035 00:44:32,400 --> 00:44:33,300 Jadi apa yang salah? 1036 00:44:33,300 --> 00:44:35,300 Aku akan mencari tahu apa yang salah setelah fakta, 1037 00:44:35,300 --> 00:44:38,340 tapi hanya melihat betapa mudahnya itu untuk melakukan itu di PHP. 1038 00:44:38,340 --> 00:44:44,598 Jadi apa yang bisa kita lakukan sekarang yang benar-benar kita memiliki ekspresi ini PHP. 1039 00:44:44,598 --> 00:44:45,970 Was-- bahwa itu mengerikan. 1040 00:44:45,970 --> 00:44:46,480 Baiklah. 1041 00:44:46,480 --> 00:44:48,430 Jadi itulah yang harus pergi keluar. 1042 00:44:48,430 --> 00:44:52,770 Ini saya menguji pagi ini pada saya telepon, screenshot sebenarnya dari ponsel saya. 1043 00:44:52,770 --> 00:44:56,180 >> Tapi sekarang mari kita mempertimbangkan mengapa kita benar-benar memperkenalkan 1044 00:44:56,180 --> 00:44:57,840 semua hal ini di tempat pertama. 1045 00:44:57,840 --> 00:45:01,625 Jadi tujuannya adalah untuk tidak menulis program-program yang 1046 00:45:01,625 --> 00:45:03,250 ditulis pada baris perintah, kan? 1047 00:45:03,250 --> 00:45:05,000 Jadi saya menulis sederhana halo Program, saya menulis 1048 00:45:05,000 --> 00:45:09,155 sebuah program kecil yang melakukan conditional, dan digunakan garis membaca dan sebagainya. 1049 00:45:09,155 --> 00:45:11,530 Dan dalam teori, saya hanya menulis sebuah program yang dikirim 1050 00:45:11,530 --> 00:45:14,290 800 pesan teks, memberi atau mengambil 800. 1051 00:45:14,290 --> 00:45:16,830 Dan program yang semua masih berjalan di baris perintah. 1052 00:45:16,830 --> 00:45:18,538 Dan itu tentu saja adalah tidak web, kan? 1053 00:45:18,538 --> 00:45:22,160 Tujuannya sekarang adalah untuk mulai menggunakan apa yang saya klaim adalah lebih mudah digunakan 1054 00:45:22,160 --> 00:45:24,720 bahasa, berani mengatakan lebih bahasa yang kuat dalam hal 1055 00:45:24,720 --> 00:45:27,104 fitur yang datang dengan itu, untuk memulai 1056 00:45:27,104 --> 00:45:29,850 menulis kode yang menghasilkan halaman web. 1057 00:45:29,850 --> 00:45:33,248 >> Jadi terakhir kali dan minggu lalu, kita berbicara tentang HTTP dan HTML. 1058 00:45:33,248 --> 00:45:36,350 Dan apa yang baik tentang HTML adalah bahwa itu hanya teks murni. 1059 00:45:36,350 --> 00:45:38,220 Dan teks tentu sesuatu yang Anda bisa 1060 00:45:38,220 --> 00:45:42,040 mencetak dengan benar memanggil cetak fungsi f, atau fungsi cetak. 1061 00:45:42,040 --> 00:45:46,160 Dan memang, itulah yang PHP sekarang akan memungkinkan kita untuk melakukan. 1062 00:45:46,160 --> 00:45:48,610 Jadi di antara contoh kita ada di kode sumber saat ini, 1063 00:45:48,610 --> 00:45:51,610 di samping beberapa kode bahwa saya memasang ada beberapa saat yang lalu, 1064 00:45:51,610 --> 00:45:55,440 kami memiliki program seperti ini misalnya. 1065 00:45:55,440 --> 00:45:58,760 Froshims, atau Freshman Intramural Olahraga, sebenarnya 1066 00:45:58,760 --> 00:46:01,500 salah satu ekstrakurikuler pertama Saya terlibat dengan tahun lalu. 1067 00:46:01,500 --> 00:46:03,750 Dan teman sekamar saya dan saya, dengan beberapa anak-anak lain di kampus, 1068 00:46:03,750 --> 00:46:05,280 digunakan untuk menjalankan program froshims. 1069 00:46:05,280 --> 00:46:07,420 Saya mendapatkan pesan teks saya sekarang. 1070 00:46:07,420 --> 00:46:14,030 >> Sekarang jadi kita, kembali pada hari, jadi ini adalah 1996 atau lebih, ada internet, 1071 00:46:14,030 --> 00:46:17,395 tapi tidak ada process-- ada tidak ada website untuk froshims. 1072 00:46:17,395 --> 00:46:20,270 Dan jadi jika Anda ingin mendaftar untuk sepak bola atau voli atau apa pun, 1073 00:46:20,270 --> 00:46:22,240 Anda akan mengisi hal ini disebut selembar kertas, 1074 00:46:22,240 --> 00:46:25,060 dan Anda akan berjalan di Harvard halaman, dan Anda akan geser 1075 00:46:25,060 --> 00:46:29,230 ke dalam slot mail pengawas, yang berada di Wigglesworth, salah satu asrama. 1076 00:46:29,230 --> 00:46:31,270 Dan ini adalah Anda terdaftar. 1077 00:46:31,270 --> 00:46:33,570 Dan dia kemudian akan menulis email kepada Anda 1078 00:46:33,570 --> 00:46:36,514 manual, seperti saya hanya melakukan di sini dengan Maya, 1079 00:46:36,514 --> 00:46:38,930 dan kemudian Anda akan dikonfirmasikan sebagai telah terdaftar. 1080 00:46:38,930 --> 00:46:40,840 >> Jadi ini seperti rendah menggantung buah, sehingga untuk berbicara. 1081 00:46:40,840 --> 00:46:42,930 Itu jenis bodoh yang kami menggunakan kertas untuk ini. 1082 00:46:42,930 --> 00:46:45,024 Saya ingin kita bisa untuk hanya pergi pada sebuah situs web, 1083 00:46:45,024 --> 00:46:47,440 atau memiliki mahasiswa baru pergi pada website, mendaftar untuk olahraga, 1084 00:46:47,440 --> 00:46:50,398 dan hanya mengotomatisasi banyak hal ini dengan menempatkan nama dan email mereka 1085 00:46:50,398 --> 00:46:51,850 dan sebagainya ke dalam database. 1086 00:46:51,850 --> 00:46:56,510 Dan pada kenyataannya, versi pertama website, menggunakan HTML yang super jelek, 1087 00:46:56,510 --> 00:46:58,195 mungkin terlihat seperti ini. 1088 00:46:58,195 --> 00:47:01,070 Itu benar-benar, ironisnya, lebih memalukan melihat dari belakang ini 1089 00:47:01,070 --> 00:47:01,460 kemudian. 1090 00:47:01,460 --> 00:47:02,890 Tapi saya menggunakan bahasa pemrograman. 1091 00:47:02,890 --> 00:47:06,060 Tidak PHP, melainkan disebut Perl, yang merupakan bahasa yang lebih tua, 1092 00:47:06,060 --> 00:47:07,251 tapi sangat mirip dalam roh. 1093 00:47:07,251 --> 00:47:09,000 Dan aku hanya benar-benar diajarkan untuk diri sendiri. 1094 00:47:09,000 --> 00:47:12,208 Dan butuh beberapa saat untuk mencari tahu, mengajukan banyak pertanyaan dari teman-teman. 1095 00:47:12,208 --> 00:47:14,080 Tapi ide ada yang persis sama. 1096 00:47:14,080 --> 00:47:18,050 Karena apa PHP benar-benar dirancang adalah bukan barang baris perintah 1097 00:47:18,050 --> 00:47:20,450 kami hanya bermain dengan, tapi untuk pemrograman web. 1098 00:47:20,450 --> 00:47:24,960 >> Itu benar-benar terikat dalam fitur-fiturnya set ke web, sebagai berikut. 1099 00:47:24,960 --> 00:47:26,370 Ini adalah froshims. 1100 00:47:26,370 --> 00:47:28,720 Dan jika saya ingin mendaftar di formulir ini, 1101 00:47:28,720 --> 00:47:30,930 ini cukup jelek, tentu, tapi biarkan aku pergi ke depan 1102 00:47:30,930 --> 00:47:34,440 dan menjadi mahasiswa kurang nyaman, dan apa pun olahraga untuk Matthews, 1103 00:47:34,440 --> 00:47:35,630 klik Daftar. 1104 00:47:35,630 --> 00:47:39,780 Apa yang saya ingin bisa lakukan adalah mengirimkan informasi dari formulir, 1105 00:47:39,780 --> 00:47:42,400 tidak ke server Google seperti kami lakukan terakhir kali, benar-benar 1106 00:47:42,400 --> 00:47:47,100 kecurangan dengan menggunakan backend mereka, saya ingin menerapkan kode backend saya sendiri. 1107 00:47:47,100 --> 00:47:51,410 Yang berarti menulis PHP Kode yang hidup di sebuah URL 1108 00:47:51,410 --> 00:47:54,180 bahwa data formulir dapat disampaikan kepada. 1109 00:47:54,180 --> 00:47:57,510 >> Dan kemudian kode Anda, yang ditulis dalam PHP pada server, 1110 00:47:57,510 --> 00:47:59,400 kemudian dapat merespon bahwa input pengguna. 1111 00:47:59,400 --> 00:48:03,287 Seperti namanya, atau tingkat kenyamanan, atau asrama, dan kemudian melakukan sesuatu dengan itu. 1112 00:48:03,287 --> 00:48:05,120 Dalam hal ini, saya hanya bodoh mencetaknya 1113 00:48:05,120 --> 00:48:06,750 sebagai teks, yang tidak semua yang cantik. 1114 00:48:06,750 --> 00:48:09,590 Tapi Anda bisa pasti bayangkan, jika Anda tahu HTML, 1115 00:48:09,590 --> 00:48:13,010 dan Anda akan segera tahu bagaimana untuk menghasilkan HTML dengan cetak f, dan cetak, 1116 00:48:13,010 --> 00:48:16,500 dan fungsi yang sama, Anda pasti bisa menghasilkan halaman web cantik yang mengatakan, 1117 00:48:16,500 --> 00:48:17,929 hey David, Anda sekarang terdaftar. 1118 00:48:17,929 --> 00:48:20,220 Anda kurang nyaman mahasiswa dari Matthews, kan? 1119 00:48:20,220 --> 00:48:23,880 >> Anda hanya dapat menggunakan sejumlah besar% ses, atau kurung kurawal dan tanda dollar 1120 00:48:23,880 --> 00:48:27,750 notasi Saya menggunakan beberapa saat yang lalu, untuk menghasilkan teks yang lebih user friendly 1121 00:48:27,750 --> 00:48:28,567 dari ini. 1122 00:48:28,567 --> 00:48:30,150 Jadi mari kita lihat satu file ini. 1123 00:48:30,150 --> 00:48:34,666 Froshim nol dot PHP terlihat seperti ini. 1124 00:48:34,666 --> 00:48:37,860 1125 00:48:37,860 --> 00:48:43,500 Ketika saya reload CS50 IDE, nol froshim terlihat seperti ini. 1126 00:48:43,500 --> 00:48:45,700 Ini adalah froshim nol dot PHP. 1127 00:48:45,700 --> 00:48:47,730 Dan apa yang Anda perhatikan tentang file ini? 1128 00:48:47,730 --> 00:48:49,506 >> AUDIENCE: [tidak terdengar] 1129 00:48:49,506 --> 00:48:50,922 SPEAKER 1: Maaf, sedikit lebih keras? 1130 00:48:50,922 --> 00:48:53,250 AUDIENCE: [tidak terdengar] Ini semua dalam HTML. 1131 00:48:53,250 --> 00:48:57,130 Dan pada kenyataannya, itu adalah, karena apa yang menarik tentang PHP 1132 00:48:57,130 --> 00:48:58,880 adalah bahwa itu dirancang menjadi, untuk lebih baik 1133 00:48:58,880 --> 00:49:02,110 atau buruk, bercampur dengan kode HTML. 1134 00:49:02,110 --> 00:49:05,850 Dan pada kenyataannya, meskipun ini File, froshim nol dot PHP, 1135 00:49:05,850 --> 00:49:11,470 memiliki komentar PHP di atas itu, itu semua hanya HTML. 1136 00:49:11,470 --> 00:49:17,655 Tapi sebaliknya, jika saya membuka, mari kita katakanlah, daftar nol dot PHP, yang 1137 00:49:17,655 --> 00:49:19,550 hanya memiliki komentar besar di bagian atas. 1138 00:49:19,550 --> 00:49:26,500 Hal ini juga terlihat hampir seluruhnya seperti HTML, kecuali untuk apa? 1139 00:49:26,500 --> 00:49:29,350 Line, apa, 21 tampak sedikit aneh. 1140 00:49:29,350 --> 00:49:32,739 >> Tapi perhatikan aku memasuki modus PHP dengan braket terbuka tanda tanya PHP. 1141 00:49:32,739 --> 00:49:33,780 Kemudian saya punya beberapa hal. 1142 00:49:33,780 --> 00:49:36,724 Dan kemudian di akhir baris yang hampir saya miliki, mempertanyakan tanda PHP. 1143 00:49:36,724 --> 00:49:38,390 Dan ini adalah apa yang saya maksud dengan bercampur. 1144 00:49:38,390 --> 00:49:41,910 Anda dapat menulis HTML bahwa Anda hanya ingin server untuk meludahkan. 1145 00:49:41,910 --> 00:49:45,090 Tetapi jika Anda ingin melakukan sesuatu setengah jalan dinamis melalui halaman, 1146 00:49:45,090 --> 00:49:47,699 seperti memasukkan nama saya atau asrama atau tingkat kenyamanan, 1147 00:49:47,699 --> 00:49:49,490 Saya bisa menggunakan fungsi seperti cetak r, yang merupakan 1148 00:49:49,490 --> 00:49:52,492 mencetak rekursif, yang hanya berarti mencetak variabel ini, format itu 1149 00:49:52,492 --> 00:49:53,200 namun Anda inginkan. 1150 00:49:53,200 --> 00:49:55,880 Ini benar-benar bukan untuk tujuan manusia, itu hanya 1151 00:49:55,880 --> 00:49:58,290 untuk debugging atau tujuan diagnostik. 1152 00:49:58,290 --> 00:49:59,460 Jadi itulah bagaimana saya melakukan itu. 1153 00:49:59,460 --> 00:50:06,100 >> Jika saya bukannya pergi froshims dua titik PHP, melihat bahwa aksi formulir ini 1154 00:50:06,100 --> 00:50:09,680 tidak terdaftar nol dot PHP sebagai old-- yang sebelumnya sebenarnya. 1155 00:50:09,680 --> 00:50:11,222 Tapi itu terdaftar dua titik PHP. 1156 00:50:11,222 --> 00:50:13,680 Jadi mari kita lihat bagaimana satu ini berperilaku sedikit berbeda. 1157 00:50:13,680 --> 00:50:15,140 Jika saya pergi ke versi dua. 1158 00:50:15,140 --> 00:50:20,430 Jika di sini, jika saya mendaftar sebagai David, kurang nyaman, dari asrama dari Mathews, 1159 00:50:20,430 --> 00:50:21,480 mendaftar. 1160 00:50:21,480 --> 00:50:23,770 Jadi kali ini mengatakan, Anda terdaftar, tidak benar-benar. 1161 00:50:23,770 --> 00:50:25,370 Mari kita lihat apa yang saya lakukan di sini. 1162 00:50:25,370 --> 00:50:29,760 Jika saya melihat daftar dua titik PHP, ini memiliki beberapa kode PHP lagi. 1163 00:50:29,760 --> 00:50:35,410 Ini sedikit lebih bersih, meskipun masih membungkus agak panjang pada baris ini. 1164 00:50:35,410 --> 00:50:36,260 Perhatikan di sini. 1165 00:50:36,260 --> 00:50:40,300 Saya mencetak tag HTML saya, tag kepala saya, tag saya judul, kepala, tubuh. 1166 00:50:40,300 --> 00:50:45,410 >> Dan kemudian saya mulai mengatakan hal-hal seperti masuk ke mode PHP. 1167 00:50:45,410 --> 00:50:48,540 Dan tag itu, terbuka braket Tanda tanya PHP-- PHP mengatakan, 1168 00:50:48,540 --> 00:50:53,460 hey, Server, execute-- menafsirkan hal-hal berikut sebagai PHP 1169 00:50:53,460 --> 00:50:55,030 sampai Anda melihat tag akhir. 1170 00:50:55,030 --> 00:50:58,590 Dan meskipun Anda mungkin tidak tahu PHP selain Anda telah melihat sejauh ini, 1171 00:50:58,590 --> 00:51:01,290 Anda dapat membaca jenis itu cukup intuitif. 1172 00:51:01,290 --> 00:51:10,670 Jika nama kosong, atau kenyamanan kosong, atau asrama kosong, apa yang harus saya lakukan? 1173 00:51:10,670 --> 00:51:12,830 Apa yang harus saya katakan kepada pengguna? 1174 00:51:12,830 --> 00:51:15,330 Anda harus memberikan nama, kenyamanan, dan asrama, dan lain sebagainya. 1175 00:51:15,330 --> 00:51:17,750 Lain, saya mengatakan Anda terdaftar, juga tidak benar-benar. 1176 00:51:17,750 --> 00:51:19,190 >> Dan saya katakan tidak benar-benar karena tidak ada basis data. 1177 00:51:19,190 --> 00:51:20,200 Aku tidak melakukan apa-apa dengan data. 1178 00:51:20,200 --> 00:51:22,408 Aku hanya membuang itu untuk tujuan demonstrasi. 1179 00:51:22,408 --> 00:51:24,320 Sekarang aku jenis skimped melewati garis 22. 1180 00:51:24,320 --> 00:51:26,400 Ada lebih sintaks ada, tapi tanda dolar 1181 00:51:26,400 --> 00:51:28,320 menggarisbawahi posting adalah jenis yang menarik. 1182 00:51:28,320 --> 00:51:30,300 Dan ini adalah apa yang baik tentang PHP. 1183 00:51:30,300 --> 00:51:35,610 Dalam PHP, Anda memiliki apa yang disebut sebuah variabel global yang super sedikit. 1184 00:51:35,610 --> 00:51:38,430 Mereka adalah semacam bahkan lebih penting daripada variabel global. 1185 00:51:38,430 --> 00:51:41,370 Dan ini, semua dikapitalisasi dengan demikian, datang dengan PHP. 1186 00:51:41,370 --> 00:51:44,550 Jadi jika Anda memiliki sebuah server yang memiliki web server terinstal, seperti Apache, 1187 00:51:44,550 --> 00:51:49,390 dan Anda menginstal bahasa dukungan untuk PHP, tiba-tiba Anda 1188 00:51:49,390 --> 00:51:52,250 dapat mulai menggunakan Super ini variabel global dalam kode Anda. 1189 00:51:52,250 --> 00:51:54,330 >> Dan apa yang baik tentang PHP adalah bahwa jika Anda hanya 1190 00:51:54,330 --> 00:51:57,540 menulis sebuah file yang berakhir di titik PHP, meletakkannya di web server, 1191 00:51:57,540 --> 00:52:01,260 dan kemudian Anda mengirimkan formulir untuk itu melalui tag tindakan dan tag bentuk, 1192 00:52:01,260 --> 00:52:05,110 bahwa atribut aksi di tag form, PHP dan web 1193 00:52:05,110 --> 00:52:09,360 benar-benar angka keluar bagaimana untuk mengambil semua orang pasangan nilai kunci keluar 1194 00:52:09,360 --> 00:52:11,633 URL seperti pertanyaan mark q sama kucing, 1195 00:52:11,633 --> 00:52:14,782 itu akan mencari cara untuk q dan kucing. 1196 00:52:14,782 --> 00:52:17,710 Jika Anda mengirimkan foto, atau nama pengguna, atau password seperti Facebook, 1197 00:52:17,710 --> 00:52:21,360 PHP akan mencari tahu untuk Anda di mana semua data yang. 1198 00:52:21,360 --> 00:52:23,821 Dan itu hanya akan menyerahkan Anda array asosiatif 1199 00:52:23,821 --> 00:52:27,560 disebut dolar pasca tanda garis bawah, atau tanda dolar menggarisbawahi mendapatkan, 1200 00:52:27,560 --> 00:52:30,590 tergantung pada apakah Anda menggunakan get atau post kiriman. 1201 00:52:30,590 --> 00:52:32,950 Dan itu hanya akan menyerahkan variabel global super, 1202 00:52:32,950 --> 00:52:37,254 sehingga jika Anda ingin mendapatkan nama bahwa pengguna disampaikan melalui web yang 1203 00:52:37,254 --> 00:52:41,894 bentuk, Anda benar-benar hanya mengatakan nama dari variabel global super, kutipan, 1204 00:52:41,894 --> 00:52:43,380 tanda kutip, nama. 1205 00:52:43,380 --> 00:52:46,144 Dan kutipan, kenyamanan tanda kutip, dan kutipan, asrama tanda kutip. 1206 00:52:46,144 --> 00:52:48,810 Dan kita akan dapat melakukan ini dan banyak lagi dengan PHP. 1207 00:52:48,810 --> 00:52:50,540 Dan meskipun ini adalah sekilas angin puyuh itu, 1208 00:52:50,540 --> 00:52:51,980 kami akan menyelam di lebih minggu depan. 1209 00:52:51,980 --> 00:52:54,247 Kami akan memperkenalkan database sehingga Anda benar-benar 1210 00:52:54,247 --> 00:52:56,816 akan mulai menerapkan sendiri based-- e-trade Anda 1211 00:52:56,816 --> 00:52:59,150 seperti situs web hanya dalam waktu satu minggu. 1212 00:52:59,150 --> 00:53:02,750 Jadi kita akan melihat Anda waktu berikutnya, dan harap Anda mendapat pesan teks. 1213 00:53:02,750 --> 00:53:05,450 Bye. 1214 00:53:05,450 --> 00:53:06,950 >> [MUSIC PLAYING] 1215 00:53:06,950 --> 00:53:11,450 1216 00:53:11,450 --> 00:53:12,950 >> [DOOR PEMBUKAAN] 1217 00:53:12,950 --> 00:53:14,475 >> SPEAKER 2: Hey. 1218 00:53:14,475 --> 00:53:15,350 SPEAKER 3: Apa yang terjadi? 1219 00:53:15,350 --> 00:53:17,750 SPEAKER 2: Apa yang kamu lakukan? 1220 00:53:17,750 --> 00:53:19,850 SPEAKER 3: Bekerja pada satu set masalah. 1221 00:53:19,850 --> 00:53:21,050 SPEAKER 2: Nice. 1222 00:53:21,050 --> 00:53:22,550 Tinggi lima. 1223 00:53:22,550 --> 00:53:23,150 >> [HIGH FIVE] 1224 00:53:23,150 --> 00:53:25,584 >> Apa are-- eh, apa yang kau lakukan di sini? 1225 00:53:25,584 --> 00:53:26,750 SPEAKER 3: Hanya nongkrong. 1226 00:53:26,750 --> 00:53:28,134 Baru saja kembali dari gym. 1227 00:53:28,134 --> 00:53:30,050 Aku tidak bisa membantu tetapi perhatikan ketika kita tinggi-five, 1228 00:53:30,050 --> 00:53:32,450 Anda memiliki tangan yang cukup kasar. 1229 00:53:32,450 --> 00:53:33,950 Apakah Anda pergi ke gym? 1230 00:53:33,950 --> 00:53:35,150 >> SPEAKER 2: No. 1231 00:53:35,150 --> 00:53:36,650 Tidak. 1232 00:53:36,650 --> 00:53:38,450 >> SPEAKER 3: Dude, Anda melihat cukup besar. 1233 00:53:38,450 --> 00:53:45,950 Yang buruk, karena semua orang tahu 8-bola adalah pria besar di kampus. 1234 00:53:45,950 --> 00:53:48,050 Tinggi lima. 1235 00:53:48,050 --> 00:53:49,550 >> SPEAKER 2: Uh, tidak ada. 1236 00:53:49,550 --> 00:53:50,450 Tidak, aku pikir aku baik. 1237 00:53:50,450 --> 00:53:52,300 Aku pikir aku baik. 1238 00:53:52,300 --> 00:53:54,097