1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Seksyen 8] [Kurang Selesa] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Universiti Harvard] 3 00:00:04,000 --> 00:00:08,000 [Ini adalah CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Selamat datang ke kedua untuk seksyen terakhir kami. 5 00:00:11,000 --> 00:00:13,000 Pada minggu ini, kita akan bercakap tentang PHP, dan kemudian minggu depan 6 00:00:13,000 --> 00:00:17,000 kami akan melakukan kajian sedikit untuk Kuiz 1. 7 00:00:17,000 --> 00:00:20,000 Kami akan bermula pada 3 halaman masalah set pek, 8 00:00:20,000 --> 00:00:28,000 dan kita akan bekerja melalui seksyen soalan agak cepat. 9 00:00:28,000 --> 00:00:34,000 Pada halaman 3, kita mula bercakap tentang perbezaan ini antara C dan PHP 10 00:00:34,000 --> 00:00:38,000 dalam erti kata bahawa PHP adalah bahasa dinamik ditaip, 11 00:00:38,000 --> 00:00:42,000 manakala C statik ditaip, 12 00:00:42,000 --> 00:00:46,000 dan sesiapa yang benar-benar cepat melakukan apa-apa kod dalam sesuatu seperti PHP 13 00:00:46,000 --> 00:00:51,000 atau Python atau Ruby sebelum ini, menutup? 14 00:00:51,000 --> 00:00:53,000 Yang sama sekali baru? Okay. 15 00:00:53,000 --> 00:00:56,000 >> Semua bahasa ini bahawa saya hanya disebutkan 16 00:00:56,000 --> 00:01:01,000 adalah sangat berbeza dari bahasa seperti C dan C + + dan Java 17 00:01:01,000 --> 00:01:04,000 dalam erti kata bahawa apabila anda mengisytiharkan pembolehubah anda tidak perlu mengisytiharkan 18 00:01:04,000 --> 00:01:09,000 apa jenis pembolehubah ia adalah, jadi dalam C kita telah terjebak perlu untuk sentiasa berkata 19 00:01:09,000 --> 00:01:13,000 ini akan menjadi pembolehubah int, atau ini akan menjadi satu pemboleh ubah * char, 20 00:01:13,000 --> 00:01:16,000 sedangkan dengan PHP, dengan Python, dengan Ruby, 21 00:01:16,000 --> 00:01:20,000 dengan banyak bahasa yang lebih moden ini anda tidak perlu berbuat demikian pada semua. 22 00:01:20,000 --> 00:01:24,000 Anda hanya mengisytiharkan pembolehubah anda, dan dalam kes PHP 23 00:01:24,000 --> 00:01:28,000 anda mengaku bahawa ia adalah pembolehubah dengan awalan dengan tanda $, 24 00:01:28,000 --> 00:01:35,000 dan kemudian jenis pembolehubah adalah ditentukan oleh apa-apa nilai ia memegang, 25 00:01:35,000 --> 00:01:38,000 yang adalah jenis sejuk. 26 00:01:38,000 --> 00:01:44,000 Untuk bermain-main dengan sedikit ini sedikit, kita mempunyai sampel kod PHP di sini 27 00:01:44,000 --> 00:01:47,000 di antara tag permulaan dan akhir. 28 00:01:47,000 --> 00:01:53,000 Kami menggunakan jenis ini seperti HTML dalam erti kata bahawa 29 00:01:53,000 --> 00:01:56,000 kami telah mendapat kurungan sudut sini untuk membuka dan menutup. 30 00:01:56,000 --> 00:01:58,000 Anda akan melihat ini dengan HTML. 31 00:01:58,000 --> 00:02:03,000 Anda akan melihat perkara yang sama sintaks dengan XML juga. 32 00:02:03,000 --> 00:02:06,000 >> Ini menunjukkan permulaan blok PHP. 33 00:02:06,000 --> 00:02:09,000 Ini php? Adalah khusus untuk PHP. 34 00:02:09,000 --> 00:02:16,000 Kami menutup segala-galanya dengan?> Serta. 35 00:02:16,000 --> 00:02:22,000 Mari kita membuka fail dalam perkakas kita menggunakan apa sahaja yang anda ingin. 36 00:02:22,000 --> 00:02:25,000 Dalam paket ini ia mengatakan untuk memanggil dynamic.php. 37 00:02:25,000 --> 00:02:29,000 Sebenarnya, anda boleh memanggil ia apa sahaja yang anda ingin, tetapi nama fail akan tampil 38 00:02:29,000 --> 00:02:34,000 dan menjadi penting kemudian, jadi hanya ingat apa sahaja yang anda memanggilnya. 39 00:02:34,000 --> 00:02:36,000 Saya akan beralih ke perkakas, 40 00:02:36,000 --> 00:02:43,000 dan saya akan membuat sebuah direktori untuk 41 00:02:43,000 --> 00:02:48,000 seksyen 9 Saya percaya kita berada di sekarang. 42 00:02:48,000 --> 00:02:51,000 Dan kita akan pergi ke seksyen 9, 43 00:02:51,000 --> 00:02:54,000 dan saya akan menggunakan gedit. 44 00:02:54,000 --> 00:02:59,000 Mari kita lihat, gedit, dan saya akan memanggil dynamic.php lombong. 45 00:02:59,000 --> 00:03:03,000 Ledakan. 46 00:03:03,000 --> 00:03:06,000 Di Dalam dynamic.php, kerana ini adalah fail PHP 47 00:03:06,000 --> 00:03:09,000 dan saya mahu menjalankan ini melalui jurubahasa PHP 48 00:03:09,000 --> 00:03:12,000 Saya perlu untuk memulakan segala-galanya bermula dengan orang-orang tags terbuka, 49 00:03:12,000 --> 00:03:17,000 jadi saya akan untuk memulakan hak mereka jauh, 50 00:03:17,000 --> 00:03:23,000 memberikan saya sedikit ruang di antara tag, 51 00:03:23,000 --> 00:03:26,000 dan kemudian titik latihan ini adalah untuk bermain-main dengan 52 00:03:26,000 --> 00:03:34,000 fungsi ini dipanggil gettype, jadi gettype, fungsi ini di sini. 53 00:03:34,000 --> 00:03:38,000 >> Perhatikan bahawa ada tidak menekankan atau ruang atau sempang atau apa-apa seperti itu 54 00:03:38,000 --> 00:03:42,000 memisahkan 2 perkataan, dapatkan dan taip, hanya satu perkataan sama sekali. 55 00:03:42,000 --> 00:03:46,000 Tetapi apa yang ini akan lakukan jika saya lulus dalam pembolehubah untuk gettype, 56 00:03:46,000 --> 00:03:51,000 katakan $ var atau $ x, 57 00:03:51,000 --> 00:03:55,000 ini akan memberitahu saya jenis dalam format debugging 58 00:03:55,000 --> 00:03:59,000 apa nama jenis itu. 59 00:03:59,000 --> 00:04:03,000 Kami akan mencuba di sini. 60 00:04:03,000 --> 00:04:07,000 Khususnya, jika anda melihat kembali pada spec pset 61 00:04:07,000 --> 00:04:11,000 kami telah mendapat beberapa baris yang berbeza kod di sini. 62 00:04:11,000 --> 00:04:16,000 Dalam baris pertama kod kita memulakan variabel ini, $ var, 63 00:04:16,000 --> 00:04:21,000 menjadi sama ke 7, dan kemudian kita mempunyai ini selaras printf 64 00:04:21,000 --> 00:04:25,000 mengatakan hey, var printf adalah kosong. 65 00:04:25,000 --> 00:04:29,000 Printf adalah salah satu daripada banyak cara kita boleh mencetak perkara dalam PHP. 66 00:04:29,000 --> 00:04:33,000 Selalunya anda akan melihat fungsi echo bukannya printf digunakan, 67 00:04:33,000 --> 00:04:40,000 tetapi printf kita semua biasa dengan telah pengekodan dalam C untuk seketika. 68 00:04:40,000 --> 00:04:42,000 Apa yang anda sebenarnya boleh lakukan mari kita lihat jika kerja-kerja salinan dan tampal. 69 00:04:42,000 --> 00:04:46,000 Saya akan memberikan ini cuba. 70 00:04:46,000 --> 00:04:52,000 Kami akan kembali ke perkakas. 71 00:04:52,000 --> 00:05:00,000 Okay, dan di sana kita pergi. 72 00:05:00,000 --> 00:05:05,000 Dan jarak adalah funky, tetapi di sini kita pergi. 73 00:05:05,000 --> 00:05:08,000 Kami telah mendapat kod ini di sini. 74 00:05:08,000 --> 00:05:11,000 >> [Pelajar] Apakah ia gaya yang tidak baik ke tab ia? 75 00:05:11,000 --> 00:05:13,000 Maaf? 76 00:05:13,000 --> 00:05:15,000 [Pelajar] Adakah ia konvensional ke tab ia? 77 00:05:15,000 --> 00:05:21,000 Betul, jadi Sam bertanya jika ia adalah konvensyen ke tab atau tidak. 78 00:05:21,000 --> 00:05:23,000 Biasanya ya. 79 00:05:23,000 --> 00:05:26,000 Dalam kes ini, saya telah memilih untuk tidak. 80 00:05:26,000 --> 00:05:33,000 Secara jujur, anda akan melihat perkara-perkara yang berbeza di kalangan pengaturcara berbeza. 81 00:05:33,000 --> 00:05:40,000 PHP biasanya sering digunakan dalam kombinasi dengan HTML 82 00:05:40,000 --> 00:05:45,000 dan bahasa-bahasa lain, dan sebagainya kadang-kadang percetakan akan kelihatan funky 83 00:05:45,000 --> 00:05:50,000 jika anda inden dalam permulaan PHP dan tag akhir. 84 00:05:50,000 --> 00:05:53,000 Ia benar-benar bergantung. 85 00:05:53,000 --> 00:05:56,000 Dalam kes ini, copy dan paste tidak tampal tab untuk saya, 86 00:05:56,000 --> 00:06:02,000 tetapi ia pasti tidak, seperti yang anda kata, membuat ia jelas. 87 00:06:02,000 --> 00:06:06,000 Baiklah, jika anda menyimpan kod ini di dynamic.php 88 00:06:06,000 --> 00:06:10,000 maka apa yang anda boleh lakukan ialah datang ke tetingkap terminal anda di mana saya sampai di sini 89 00:06:10,000 --> 00:06:17,000 dalam gedit, dan untuk melakukan bersamaan menyusun 90 00:06:17,000 --> 00:06:20,000 menggunakan membuat dan kemudian berjalan kod anda dalam C 91 00:06:20,000 --> 00:06:25,000 semua yang anda perlu lakukan dengan fail PHP adalah memulakan jurubahasa PHP, 92 00:06:25,000 --> 00:06:30,000 yang merupakan satu program kecil yang dipanggil PHP, 93 00:06:30,000 --> 00:06:35,000 dan hujah yang anda berikan kepada jurubahasa adalah fail yang anda mahu untuk mentafsir. 94 00:06:35,000 --> 00:06:40,000 Dalam kes ini, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Oop, di mana saya meletakkan ia? 96 00:06:43,000 --> 00:06:52,000 Oh, saya meletakkan ia dalam seksyen 9, dan di sini saya. Itulah sebabnya. 97 00:06:52,000 --> 00:06:57,000 >> Sekarang, jika saya berjalan itu lagi 98 00:06:57,000 --> 00:07:02,000 kita lihat bahawa dalam gettype fungsi panggilan pertama saya 99 00:07:02,000 --> 00:07:04,000 var adalah integer. 100 00:07:04,000 --> 00:07:12,000 Dalam var datang adalah rentetan, dan kemudian dalam var satu pertiga adalah boolean. 101 00:07:12,000 --> 00:07:15,000 Apa yang menarik tentang perkara ini ialah jika kita tatal kembali kita lihat bahawa 102 00:07:15,000 --> 00:07:18,000 ini adalah jenis yang sama dengan orang-orang yang kita telah dalam C. 103 00:07:18,000 --> 00:07:22,000 Kami mempunyai ints dalam C. 104 00:07:22,000 --> 00:07:26,000 Kami jenis mempunyai rentetan dalam C, 105 00:07:26,000 --> 00:07:31,000 jadi rentetan tidak adalah jenis yang benar-benar legit dalam erti kata bahawa 106 00:07:31,000 --> 00:07:37,000 rentetan CS50 kami adalah benar-benar apa? 107 00:07:37,000 --> 00:07:39,000 Maaf? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Ya, ia adalah ini * char kita digunakan. 110 00:07:43,000 --> 00:07:47,000 Pada awal-awal semester kita telah menggunakan jenis tali, 111 00:07:47,000 --> 00:07:52,000 tetapi ia adalah benar-benar * char bawah hood. 112 00:07:52,000 --> 00:07:58,000 Kita hanya jenis yang ditakrifkan, sedangkan dalam PHP rentetan ini adalah satu jenis sebenar. 113 00:07:58,000 --> 00:08:07,000 Terdapat tidak lebih daripada ini * char jenis barangan. 114 00:08:07,000 --> 00:08:10,000 >> Anda akan melihat bahawa kita boleh melakukan banyak perkara lagi dengan rentetan 115 00:08:10,000 --> 00:08:14,000 lebih mudah dalam PHP daripada kita boleh dalam C, 116 00:08:14,000 --> 00:08:17,000 dan akhirnya, kita mempunyai jenis ini boolean, dan perbezaan yang besar di sini adalah bahawa 117 00:08:17,000 --> 00:08:21,000 jika kita tatal kembali ke bawah kita lihat bahawa nama jenis ini 118 00:08:21,000 --> 00:08:28,000 kini integer, tali, dan boolean bukannya int dan bool, 119 00:08:28,000 --> 00:08:31,000 dan sebagai anda memilih bahasa pengaturcaraan yang berbeza, 120 00:08:31,000 --> 00:08:36,000 menganggap bahawa pada satu ketika dalam hidup anda, anda akan bersentuhan dengan 121 00:08:36,000 --> 00:08:40,000 yang berbeza, anda akan notis sedikit sifat-sifat seperti ini 122 00:08:40,000 --> 00:08:44,000 di mana C panggilan integer ints. 123 00:08:44,000 --> 00:08:46,000 Sesetengah memanggilnya integer. 124 00:08:46,000 --> 00:08:51,000 Terdapat istilah lain yang anda akan menghadapi. 125 00:08:51,000 --> 00:08:55,000 Int Besar yang kita lihat hari ini dalam SQL. 126 00:08:55,000 --> 00:08:59,000 Terdapat juga nombor dan kemudian bool, boolean, 127 00:08:59,000 --> 00:09:03,000 segala macam perbezaan di sana. 128 00:09:03,000 --> 00:09:07,000 >> Ini tidak terlalu menarik tetapi sekarang saya akan memberikan anda sedikit masa- 129 00:09:07,000 --> 00:09:13,000 jika kita zum keluar untuk bekerja melalui senaman ini di bahagian bawah halaman 3 130 00:09:13,000 --> 00:09:20,000 di mana ia meminta apa jenis sesuai dengan nilai-nilai ini di sini di bawah. 131 00:09:20,000 --> 00:09:24,000 Kami mempunyai 3.50. 132 00:09:24,000 --> 00:09:28,000 Kami mempunyai perkara ini di sini, yang menarik. 133 00:09:28,000 --> 00:09:32,000 Kami tidak pernah melihat bahawa sebelum ini, walaupun begitu, jika anda telah mengikuti bersama-sama dalam kuliah 134 00:09:32,000 --> 00:09:35,000 anda mungkin sudah tahu apa yang. 135 00:09:35,000 --> 00:09:40,000 Kemudian kita mempunyai ini, yang ini adalah jenis funky. 136 00:09:40,000 --> 00:09:42,000 Kamu kenal siapa ini. 137 00:09:42,000 --> 00:09:46,000 Apakah ini dalam C? 138 00:09:46,000 --> 00:09:50,000 Sam? Apakah ini akan memberikan anda di C? 139 00:09:50,000 --> 00:09:54,000 Ia akan membuka fail yang dipanggil dynamic.php dan membuat ia boleh dibaca. 140 00:09:54,000 --> 00:09:58,000 Ya, dan apa yang akan menjadi jenis pembolehubah yang kita akan menetapkan ini? >> File bintang. 141 00:09:58,000 --> 00:10:02,000 Tepat sekali, kita akan memberikan ini kepada bintang fail. 142 00:10:02,000 --> 00:10:08,000 Ini adalah PHP sah juga. 143 00:10:08,000 --> 00:10:12,000 Main. Lihat apa yang berlaku apabila anda lulus yang menjadi gettype. 144 00:10:12,000 --> 00:10:19,000 Dan kemudian juga menyemak apa nol ialah, apa yang mungkin dalam PHP. 145 00:10:19,000 --> 00:10:21,000 Saya akan memberikan anda beberapa minit. 146 00:10:21,000 --> 00:10:24,000 Anda benar-benar boleh menyalin dan tampal nilai-nilai, 147 00:10:24,000 --> 00:10:29,000 dan kemudian kita akan melakukan panggilan rawak sedikit kepada anda 148 00:10:29,000 --> 00:10:34,000 dan lihat apa yang anda mendapat. 149 00:10:34,000 --> 00:10:36,000 >> [Pelajar] Saya mempunyai satu soalan. << Yeah. 150 00:10:36,000 --> 00:10:40,000 Dalam salah satu kuliah Daud berkata ada sesuatu yang anda boleh meletakkan di atas fail anda 151 00:10:40,000 --> 00:10:43,000 supaya anda tidak perlu menaip dalam PHP setiap masa. 152 00:10:43,000 --> 00:10:45,000 Apa itu? 153 00:10:45,000 --> 00:10:50,000 Beliau mungkin bercakap tentang paun bang, bang hash. 154 00:10:50,000 --> 00:10:57,000 Ia adalah arahan bahawa jika anda menandakan fail anda sebagai laku 155 00:10:57,000 --> 00:11:01,000 maka apa yang ia adalah apabila anda melaksanakan fail 156 00:11:01,000 --> 00:11:06,000 ia akan memberitahu program shell 157 00:11:06,000 --> 00:11:12,000 untuk menggunakan jurubahasa PHP untuk mentafsir kandungan fail. 158 00:11:12,000 --> 00:11:16,000 Soalan apakah ini selaras khas 159 00:11:16,000 --> 00:11:20,000 bahawa kita boleh termasuk di bahagian atas fail PHP kita untuk tidak perlu termasuk 160 00:11:20,000 --> 00:11:26,000 ini selaras PHP atau perintah ini PHP apabila kita mahu untuk melaksanakan fail? 161 00:11:26,000 --> 00:11:31,000 Dan anda sebenarnya boleh melakukan ini dengan sekumpulan fail yang berbeza. 162 00:11:31,000 --> 00:11:37,000 Saya percaya ia bergantung di mana perduaan PHP disimpan, 163 00:11:37,000 --> 00:11:43,000 tetapi sering usr / bin / php adalah tempat yang baik untuk memulakan. 164 00:11:43,000 --> 00:11:45,000 Anda boleh memahami ini keluar tepat dengan akan kembali ke perkakas anda 165 00:11:45,000 --> 00:11:50,000 dan menaip yang php. 166 00:11:50,000 --> 00:11:55,000 Arahan yang angka keluar apabila anda melaksanakan binari 167 00:11:55,000 --> 00:12:01,000 atau perintah mana fail yang sepadan. 168 00:12:01,000 --> 00:12:06,000 Ini memberitahu saya bahawa PHP adalah benar-benar aliasing fail ini binari 169 00:12:06,000 --> 00:12:13,000 yang disimpan dalam usr / bin, yang mana banyak daripada binari sistem dipasang. 170 00:12:13,000 --> 00:12:21,000 Sebagai contoh, jika saya menatal sehingga ke atas, sekarang bahawa saya telah meletakkan ini #! selaras di sini 171 00:12:21,000 --> 00:12:27,000 Saya boleh tatal ke bawah, dan saya boleh cuba untuk menjalankan 172 00:12:27,000 --> 00:12:35,000 dynamic.php, tetapi saya mendapat kesilapan ini tentang kebenaran dinafikan, 173 00:12:35,000 --> 00:12:42,000 dan apa yang bermakna adalah bahawa fail ini kini tidak memberi keizinan laku. 174 00:12:42,000 --> 00:12:46,000 Ia tidak ditandakan sebagai fail bahawa seseorang boleh menjalankan. 175 00:12:46,000 --> 00:12:52,000 >> Apabila anda berlari Buat atau dilafaz dan anda mendapat laksana dari ia 176 00:12:52,000 --> 00:12:56,000 pengkompil adalah bijak untuk mengetahui bahawa hey, saya membina laksana. 177 00:12:56,000 --> 00:13:00,000 Anda mungkin mahu untuk melaksanakan, jadi ia secara automatik akan mengkonfigurasi 178 00:13:00,000 --> 00:13:02,000 kebenaran untuk anda. 179 00:13:02,000 --> 00:13:06,000 Ini tidak berlaku, walaupun, apabila anda mencipta fail biasa dari awal, 180 00:13:06,000 --> 00:13:13,000 sebab yang biasanya anda tidak mahu mempunyai apa-apa fail pada sistem anda menjadi laku, 181 00:13:13,000 --> 00:13:15,000 jadi anda sebenarnya perlu pergi dalam dan manual melakukannya. 182 00:13:15,000 --> 00:13:22,000 Cara yang paling mudah untuk melakukannya adalah dengan arahan chmod, 183 00:13:22,000 --> 00:13:28,000 dan chmod + x mengatakan menambah bit executable 184 00:13:28,000 --> 00:13:31,000 kerana ada sedikit baca, sedikit menulis dan bit executable, 185 00:13:31,000 --> 00:13:35,000 r, w dan x, 186 00:13:35,000 --> 00:13:39,000 dan mengatakan chmod + x akan bertukar pada bit executable 187 00:13:39,000 --> 00:13:46,000 maka fail yang kita tentukan, yang dalam kes ini akan dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Pelajar] Adakah yang dihidupkan untuk semua orang? 189 00:13:49,000 --> 00:13:52,000 Mari kita lihat ini, jadi bagaimana saya akan memeriksa untuk melihat kebenaran? 190 00:13:52,000 --> 00:13:54,000 Adakah anda tahu bagaimana saya hendak memeriksa untuk melihat kebenaran fail? 191 00:13:54,000 --> 00:13:56,000 [Sambutan pelajar didengar] 192 00:13:56,000 --> 00:13:58,000 Maaf? >> [Pelajar] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD memberikan kita fail dalam hacks. 194 00:14:03,000 --> 00:14:09,000 Menyenaraikan semua fail,-l, akan menunjukkan saya semua fail dalam direktori saya 195 00:14:09,000 --> 00:14:13,000 jenis panjang mereka, lantung penyenaraian, dan sebagainya di sini kita lihat bahawa 196 00:14:13,000 --> 00:14:17,000 fail ini dynamic.php 197 00:14:17,000 --> 00:14:23,000 diubah buat kali terakhir 5 Nov di 04:21 PM. 198 00:14:23,000 --> 00:14:26,000 Pemilik fail ini jharvard. 199 00:14:26,000 --> 00:14:28,000 Itulah pengguna yang log masuk 200 00:14:28,000 --> 00:14:31,000 Itulah pengguna Saya bekerja sebagai, 201 00:14:31,000 --> 00:14:36,000 dan jika anda juga di dalam perkakas anda juga bekerja sebagai jharvard pengguna. 202 00:14:36,000 --> 00:14:38,000 Anda berada dalam kumpulan pelajar, 203 00:14:38,000 --> 00:14:44,000 dan ini adalah perkara-perkara yang anda akan lihat sering cukup. 204 00:14:44,000 --> 00:14:47,000 >> Kita boleh pergi ke banyak terperinci di sini, 205 00:14:47,000 --> 00:14:50,000 tetapi bagi sebahagian besar apa yang anda mahu melihat apabila anda sedang mencari untuk melihat 206 00:14:50,000 --> 00:14:55,000 sama ada atau tidak fail boleh laksana terutamanya 207 00:14:55,000 --> 00:14:58,000 pengguna yang memiliki fail, pemilik, 208 00:14:58,000 --> 00:15:03,000 jadi ini jharvard, dan kemudian kita mempunyai 209 00:15:03,000 --> 00:15:07,000 bit kebenaran di sini di sebelah kiri, 210 00:15:07,000 --> 00:15:13,000 dan cara untuk membaca ini adalah bahawa bit terakhir 211 00:15:13,000 --> 00:15:18,000 biasanya digunakan untuk menandakan sama ada atau tidak sekurang-kurangnya dalam kes ini 212 00:15:18,000 --> 00:15:21,000 ini sedikit terakhir selalunya akan bersedia untuk iklan untuk menunjukkan 213 00:15:21,000 --> 00:15:24,000 bahawa fail adalah direktori dan tidak hanya fail biasa. 214 00:15:24,000 --> 00:15:28,000 Kemudian berikut 3 bit di sini 215 00:15:28,000 --> 00:15:34,000 menentukan kebenaran bahawa pemilik fail telah, 216 00:15:34,000 --> 00:15:38,000 demikian dalam jharvard kes ini, sebagai pemilik fail, boleh membaca dan menulis fail ini, 217 00:15:38,000 --> 00:15:42,000 tetapi ada melontarkan mengatakan bahawa jharvard tidak boleh melaksanakan fail ini. 218 00:15:42,000 --> 00:15:46,000 Seterusnya 3 bit adalah bagi kumpulan itu, jadi ini adalah kumpulan pelajar, 219 00:15:46,000 --> 00:15:49,000 jadi jika terdapat pengguna berganda pada perkakas saya, 220 00:15:49,000 --> 00:15:52,000 dan kami mempunyai beberapa pengguna sebagai sebahagian daripada kumpulan pelajar, 221 00:15:52,000 --> 00:15:55,000 maka mereka semua boleh membaca fail ini, tetapi mereka tidak boleh menulis, 222 00:15:55,000 --> 00:15:59,000 dan begitu juga orang lain, dunia 223 00:15:59,000 --> 00:16:01,000 hanya dapat membaca fail ini juga. 224 00:16:01,000 --> 00:16:03,000 Ada yang baik, writeup panjang tentang perkara ini, 225 00:16:03,000 --> 00:16:05,000 jadi anda boleh membaca dalam talian. 226 00:16:05,000 --> 00:16:10,000 Dalam set spec masalah kita pergi ke ini dengan lebih terperinci. 227 00:16:10,000 --> 00:16:12,000 >> [Pelajar] Apakah 218 merujuk kepada dunia? 228 00:16:12,000 --> 00:16:17,000 218-off atas kepala saya saya lupa, 229 00:16:17,000 --> 00:16:20,000 tetapi tidak. 230 00:16:20,000 --> 00:16:29,000 Mari kita lihat. Saya blanking bahawa sekarang. 231 00:16:29,000 --> 00:16:32,000 Kembali ke apa yang kita kira-kira untuk melakukan dengan ini chmod + x 232 00:16:32,000 --> 00:16:37,000 di mana kita mahu untuk memberi kebenaran laku dynamic.php, 233 00:16:37,000 --> 00:16:40,000 dan soalan adalah sama ada atau tidak ini akan memberikan kebenaran laku kepada semua orang 234 00:16:40,000 --> 00:16:44,000 atau hanya jharvard, dan kita boleh melihat perkara ini dengan 235 00:16:44,000 --> 00:16:48,000 menjalankan arahan dan menaip ls-l, 236 00:16:48,000 --> 00:16:51,000 dan sekarang kita lihat bahawa ia ditandakan sebagai laku. 237 00:16:51,000 --> 00:16:54,000 Anda lihat bahawa terdapat perubahan warna. 238 00:16:54,000 --> 00:16:57,000 Sekarang dynamic.php disenaraikan dalam warna hijau, 239 00:16:57,000 --> 00:17:01,000 dan ia kelihatan seperti jawapan kepada soalan apa, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Hanya jharvard. >> Hanya jharvard, yeah. 241 00:17:04,000 --> 00:17:08,000 >> Jika kita mahu menghidupkan sedikit laksana untuk semua orang 242 00:17:08,000 --> 00:17:10,000 bagaimana kita boleh berbuat demikian? 243 00:17:10,000 --> 00:17:13,000 Mana-mana pemikiran? >> A + x? 244 00:17:13,000 --> 00:17:15,000 Ya, sebenarnya. 245 00:17:15,000 --> 00:17:23,000 Charlotte berkata kita boleh lakukan chmod x + dynamic.php, 246 00:17:23,000 --> 00:17:26,000 dan kini jika kita menjalankan ls-l kita lihat bahawa bit laku 247 00:17:26,000 --> 00:17:30,000 sememangnya dihidupkan untuk semua orang. 248 00:17:30,000 --> 00:17:37,000 Dan anda sebenarnya boleh melakukan perkara yang terbalik ini, jadi anda boleh menghidupkan ia dimatikan untuk semua orang 249 00:17:37,000 --> 00:17:41,000 menggunakan tolak. 250 00:17:41,000 --> 00:17:46,000 Kini ia dimatikan, dan kini kita boleh menghidupkan kembali untuk jharvard 251 00:17:46,000 --> 00:17:52,000 supaya kita sebenarnya boleh menjalankan ia kini, 252 00:17:52,000 --> 00:17:58,000 dan sekarang anda lihat apabila kita menjalankan kod khas ini #! baris di bahagian atas, 253 00:17:58,000 --> 00:18:04,000 #! talian, memberitahu shell, 254 00:18:04,000 --> 00:18:08,000 memberitahu terminal kami hey, apabila fail ini dijalankan, 255 00:18:08,000 --> 00:18:14,000 menggunakan / usr / bin / php untuk mentafsir fail ini 256 00:18:14,000 --> 00:18:20,000 dan kemudian mencetak output. 257 00:18:20,000 --> 00:18:22,000 [Soalan pelajar didengar] 258 00:18:22,000 --> 00:18:25,000 Pasti, izinkan saya skrol kembali. Sama seperti ini. 259 00:18:25,000 --> 00:18:36,000 Anda akan melihat semua ini arahan bermula dengan pound ini dan kemudian tanda seru, 260 00:18:36,000 --> 00:18:39,000 kadang-kadang dipanggil shebang, bang hash. 261 00:18:39,000 --> 00:18:48,000 >> [Pelajar] Bagaimana kita boleh berjalan dengan php dynamic.php sebelum kita membuat ia laksana? 262 00:18:48,000 --> 00:18:55,000 Persoalannya ialah bagaimana kita boleh menjalankan ini menggunakan binari PHP 263 00:18:55,000 --> 00:18:58,000 manakala dynamic.php tidak boleh laksana? 264 00:18:58,000 --> 00:19:01,000 Ini adalah sangat penting kerana ini adalah bagaimana 265 00:19:01,000 --> 00:19:06,000 ia akan berfungsi apabila anda menulis set masalah 7. 266 00:19:06,000 --> 00:19:09,000 Kebanyakan masa PHP fail tidak langsung laku. 267 00:19:09,000 --> 00:19:14,000 Cara yang bekerja adalah kerana ia adalah binari PHP itulah laku. 268 00:19:14,000 --> 00:19:16,000 Jurubahasa adalah perkara yang sedang dilaksanakan, 269 00:19:16,000 --> 00:19:20,000 dan sebagainya apa yang ia melakukan secara literal slurping dalam keseluruhan kandungan 270 00:19:20,000 --> 00:19:25,000 fail dynamic.php kami dan barisan akan demi baris 271 00:19:25,000 --> 00:19:29,000 dan melaksanakan arahan mereka, jadi ia menggunakan fail PHP kita 272 00:19:29,000 --> 00:19:31,000 sebagai satu senarai arahan. 273 00:19:31,000 --> 00:19:36,000 Ia tidak langsung menyempurnakannya. 274 00:19:36,000 --> 00:19:40,000 Itulah di mana kita mengatakan bahawa fail-fail ini ditafsirkan pada masa jangka. 275 00:19:40,000 --> 00:19:46,000 Ia adalah bahasa masa tayangan bukan sesuatu yang ditentukan pada masa kompil, 276 00:19:46,000 --> 00:19:49,000 bukan bahasa yang disusun seperti C. 277 00:19:49,000 --> 00:19:54,000 >> Adakah terdapat cara untuk mendapatkan bahasa jangka masa untuk bertindak seolah-olah ia adalah bahasa menyusun masa, 278 00:19:54,000 --> 00:19:58,000 seperti jika anda mempunyai semua berjalan yang dilakukan pada pelayan 279 00:19:58,000 --> 00:20:00,000 bukannya anda tahu apa yang saya maksudkan? 280 00:20:00,000 --> 00:20:04,000 Ya, jadi persoalannya ialah 281 00:20:04,000 --> 00:20:11,000 ada satu cara untuk mendapatkan bahasa masa yang dijalankan untuk bertindak lebih seperti masa kompil jenis bahasa? 282 00:20:11,000 --> 00:20:18,000 Dan ada, maksud saya, yang merupakan kawasan aktif penyelidikan bagi banyak syarikat-syarikat ini. 283 00:20:18,000 --> 00:20:22,000 Saya percaya Facebook telah dilakukan banyak kerja dengan PHP 284 00:20:22,000 --> 00:20:25,000 dan menyusun ke bawah, menjadikan ia lebih cepat, mengoptimumkan 285 00:20:25,000 --> 00:20:29,000 sejak laman mereka dibina pada PHP. 286 00:20:29,000 --> 00:20:34,000 Jika anda telah mengikuti node.js pada semua, 287 00:20:34,000 --> 00:20:40,000 yang adalah jenis jurubahasa JavaScript 288 00:20:40,000 --> 00:20:44,000 menjadi mampu untuk menjalankan JavaScript luar pelayar, di luar pelayar web anda, 289 00:20:44,000 --> 00:20:47,000 kerana tradisinya JavaScript hanya akan berjalan di dalam Firefox atau Chrome, 290 00:20:47,000 --> 00:20:52,000 dan ia akan digunakan untuk membuat animasi sejuk berlaku pada laman web 291 00:20:52,000 --> 00:20:55,000 dan membuat laman web anda dinamik. 292 00:20:55,000 --> 00:20:59,000 Itu telah dibina di atas banyak kerja bahawa Google telah dilakukan 293 00:20:59,000 --> 00:21:03,000 untuk membuat JavaScript dan C + + 294 00:21:03,000 --> 00:21:09,000 mengikat bersama-sama, jadi terdapat banyak penyelidikan aktif untuk 295 00:21:09,000 --> 00:21:13,000 mendapatkan bahasa ini untuk berinteraksi dan mengoptimumkan mereka, 296 00:21:13,000 --> 00:21:17,000 terutamanya kerana begitu ramai orang boleh kod dalam PHP dan JavaScript 297 00:21:17,000 --> 00:21:19,000 kerana ia adalah lebih mudah. 298 00:21:19,000 --> 00:21:21,000 Ia banyak lebih bagus. Anda tidak mempunyai petunjuk. 299 00:21:21,000 --> 00:21:27,000 Anda tidak mempunyai jenis yang terapung di sekeliling. 300 00:21:27,000 --> 00:21:31,000 Mereka mahu mendapat manfaat daripada bahasa ini masa kompil 301 00:21:31,000 --> 00:21:36,000 dengan semua penyemakan jenis dan kelajuan dan penggunaan memori yang lebih rendah dan semua itu 302 00:21:36,000 --> 00:21:42,000 sementara masih mengekalkan fleksibiliti dan kemudahan penggunaan ini yang baru. 303 00:21:42,000 --> 00:21:46,000 >> Kembali ke rancangan asal kami serangan. 304 00:21:46,000 --> 00:21:50,000 Kami telah mendapat beberapa soalan-soalan ini di sini dalam spec set masalah kita. 305 00:21:50,000 --> 00:21:54,000 Mari kita pergi melalui mereka benar-benar cepat, dan kita akan pergi di sekitar bilik. 306 00:21:54,000 --> 00:21:59,000 Charlotte, apa jenis ialah RM3.50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] Itulah double. >> Ia adalah double. 308 00:22:01,000 --> 00:22:03,000 Jimmy, apakah yang satu ini datang? >> Satu pelbagai. 309 00:22:03,000 --> 00:22:09,000 Pelbagai, hebat, dan Jared, apakah fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] Ia adalah sumber. >> Ia adalah sumber. 311 00:22:11,000 --> 00:22:15,000 Itulah jenis yang baru, bukan bintang fail, bukan fail. 312 00:22:15,000 --> 00:22:19,000 Ia adalah sumber adalah jenis dalam PHP, 313 00:22:19,000 --> 00:22:24,000 dan saya minta maaf, Ella, batal terakhir adalah apa? 314 00:22:24,000 --> 00:22:26,000 Menyeimbangkan. 315 00:22:26,000 --> 00:22:28,000 Nol, bagaimana ia dieja dalam PHP? >> Cara yang sama. 316 00:22:28,000 --> 00:22:30,000 Cara yang sama, ibu? >> Yeah. 317 00:22:30,000 --> 00:22:33,000 Ya, semua hak. 318 00:22:33,000 --> 00:22:35,000 Di sini kita pergi, kita telah mendapat dua, kita telah mendapat pelbagai, 319 00:22:35,000 --> 00:22:41,000 kami telah mendapat sumber, dan kemudian kami telah mendapat null. 320 00:22:41,000 --> 00:22:48,000 Mari kita lihat sekarang anda dilihat 321 00:22:48,000 --> 00:22:51,000 mari kita lihat, jadi sekarang saya rasa apa yang saya juga mahu lakukan adalah tarik sehingga 322 00:22:51,000 --> 00:22:56,000 ini laman web di sini, ini php.net / manual, 323 00:22:56,000 --> 00:23:01,000 jadi jika anda semua salinan itu dan membuka pelayar web. 324 00:23:01,000 --> 00:23:07,000 Saya akan tarik sehingga Chrome, meletakkan bahawa masuk 325 00:23:07,000 --> 00:23:10,000 Saya mahu menunjukkan kepada anda ini bukan sahaja kerana 326 00:23:10,000 --> 00:23:13,000 kita boleh bercakap sepanjang hari tentang jenis dan semua bahawa barangan yang menyeronokkan 327 00:23:13,000 --> 00:23:19,000 tetapi kerana ini adalah manual PHP, 328 00:23:19,000 --> 00:23:23,000 dan terdapat banyak pengaturcara PHP di luar sana. 329 00:23:23,000 --> 00:23:26,000 Terdapat banyak laman web PHP di luar sana, 330 00:23:26,000 --> 00:23:31,000 dan hasilnya, terdapat banyak dokumentasi di PHP, 331 00:23:31,000 --> 00:23:36,000 dan manual, php.net ini, adalah tempat yang benar-benar baik untuk pergi 332 00:23:36,000 --> 00:23:43,000 apabila anda mempunyai soalan tentang apa cara terbaik untuk melakukan X dalam PHP 333 00:23:43,000 --> 00:23:45,000 atau apakah fungsi kelihatan seperti? 334 00:23:45,000 --> 00:23:49,000 Hanya jenis semakin biasa dengan apa ini kelihatan seperti kerana 335 00:23:49,000 --> 00:23:54,000 anda akan datang ke sini sering, sedikit untuk masalah menetapkan 7. 336 00:23:54,000 --> 00:23:57,000 >> Jika anda akhirnya melakukan projek akhir yang menggunakan PHP 337 00:23:57,000 --> 00:24:04,000 ini akan menjadi satu tempat yang anda akan menjadi sangat baik berkenalan dengan. 338 00:24:04,000 --> 00:24:09,000 Selalunya cara orang melakukan ini adalah mereka menggunakan Google untuk mencari laman web, 339 00:24:09,000 --> 00:24:16,000 dan mereka tidak menggunakan kotak carian itu di sini di sebelah kanan atas, yang adalah jenis kecil. 340 00:24:16,000 --> 00:24:19,000 Jika anda Googling sekitar untuk melakukan sesuatu dengan PHP dan anda lihat 341 00:24:19,000 --> 00:24:24,000 salah satu pautan manual pop up anda biasanya boleh bergantung pada itu 342 00:24:24,000 --> 00:24:31,000 sebagai sumber yang agak baik. 343 00:24:31,000 --> 00:24:34,000 Awesome, begitu daripada jenis ini, hanya keluar dari rasa ingin tahu, 344 00:24:34,000 --> 00:24:37,000 yang mana tidak kita melihat? 345 00:24:37,000 --> 00:24:40,000 Apa sahaja yang kita tidak pernah dilihat di sini? 346 00:24:40,000 --> 00:24:44,000 [Pelajar] Sumber. >> Kami melihat sumber dengan panggilan fopen. 347 00:24:44,000 --> 00:24:48,000 [Pelajar] Objek Objek >> kita tidak pernah melihat pasti. 348 00:24:48,000 --> 00:24:51,000 Callback yang kita tidak pernah melihat. 349 00:24:51,000 --> 00:24:54,000 Terdapat beberapa ini pseudo-jenis. 350 00:24:54,000 --> 00:24:57,000 Kami pasti hanya melihat integer dan double. 351 00:24:57,000 --> 00:25:01,000 Kami tidak melihat beberapa orang lain, jadi jika kita klik pada integer 352 00:25:01,000 --> 00:25:08,000 kita boleh melihat terdapat sebarang integer lain bahawa mereka mempunyai di sini? 353 00:25:08,000 --> 00:25:11,000 Adakah mereka semua begitu integer, integer, integer. 354 00:25:11,000 --> 00:25:14,000 Sesetengah bahasa lebih besar jenis integer, 355 00:25:14,000 --> 00:25:23,000 seperti yang kita lihat pada hari ini MySQL terdapat int dan kemudian int besar. 356 00:25:23,000 --> 00:25:25,000 Sejuk. 357 00:25:25,000 --> 00:25:28,000 >> Jadi, PHP manual. 358 00:25:28,000 --> 00:25:37,000 Mari kita kembali kepada spec set masalah kita, dan kita sekarang akan tatal ke bawah ke halaman 4. 359 00:25:37,000 --> 00:25:41,000 Salah satu perkara yang berlaku apabila anda mendapat bahasa ini 360 00:25:41,000 --> 00:25:49,000 yang tidak mempunyai ini menaip statik, jadi bahasa ini di mana anda perlu untuk mengisytiharkan 361 00:25:49,000 --> 00:25:52,000 jenis depan sehingga pembolehubah 362 00:25:52,000 --> 00:26:00,000 anda mendapat kes-kes di mana anda mungkin mula mempunyai pembolehubah jenis yang berbeza 363 00:26:00,000 --> 00:26:04,000 berinteraksi antara satu sama lain, 364 00:26:04,000 --> 00:26:09,000 dan PHP melakukan perkara ini di mana ia cuba untuk melakukan 365 00:26:09,000 --> 00:26:13,000 apa yang dianggapnya perkara yang paling wajar untuk berbuat 366 00:26:13,000 --> 00:26:18,000 apabila anda mempunyai 2 jenis yang berbeza berinteraksi dengan satu sama lain. 367 00:26:18,000 --> 00:26:24,000 Sebagai contoh, jika kita melihat baris kod yang betul di sini 368 00:26:24,000 --> 00:26:29,000 anda melihat bahawa kita telah mendapat apa yang berlaku apabila 369 00:26:29,000 --> 00:26:38,000 kita cuba dan menambah rentetan 1 ke 2 integer. 370 00:26:38,000 --> 00:26:41,000 Apakah yang akan berlaku jika kita cuba dan menambah rentetan yang tidak nilai berangka 371 00:26:41,000 --> 00:26:48,000 tetapi watak-watak yang agak sebenar, CS kepada bilangan 50? 372 00:26:48,000 --> 00:26:51,000 Kemudian kita akan melihat ada apa-apa yang berbeza yang berlaku di mana 373 00:26:51,000 --> 00:26:56,000 bukannya menambah rentetan kepada bilangan kami menambah nombor kepada rentetan, 374 00:26:56,000 --> 00:27:00,000 dan sebagainya dan sebagainya ke titik di mana kita mendapat 375 00:27:00,000 --> 00:27:05,000 beberapa jenis barangan pelik betul di sini di mana kita telah mendapat 7 + benar. 376 00:27:05,000 --> 00:27:09,000 Apa palang pintu itu adakah itu bermakna? 377 00:27:09,000 --> 00:27:19,000 >> Jika anda semua pergi ke hadapan dan tampal beberapa kod ini ke dalam perkakas anda. 378 00:27:19,000 --> 00:27:27,000 Anda boleh menyimpan dalam dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Kita akan lihat apa yang berlaku. 380 00:27:41,000 --> 00:27:43,000 [Pelajar] Hanya menggunakan cetak, tidak printf? 381 00:27:43,000 --> 00:27:52,000 Ya, jadi anda akan mendapati bahawa cetak adalah juga fungsi yang sah untuk mencetak dalam PHP. 382 00:27:52,000 --> 00:27:54,000 Terdapat banyak cara yang berbeza untuk melakukannya. 383 00:27:54,000 --> 00:27:58,000 Kita akan melihat dengan beberapa contoh kemudian sekali kita mula bercakap 384 00:27:58,000 --> 00:28:02,000 tentang masalah yang unik yang kita pergi untuk menulis 385 00:28:02,000 --> 00:28:06,000 dan kemudian masalah kepekatan yang kita pergi untuk menulis 386 00:28:06,000 --> 00:28:09,000 bahawa walaupun kita mempunyai fopen dan fclose 387 00:28:09,000 --> 00:28:15,000 yang sering tidak cara yang paling mudah untuk membaca dalam kandungan fail. 388 00:28:15,000 --> 00:28:21,000 PHP mempunyai banyak ini holdovers C seperti. 389 00:28:21,000 --> 00:28:28,000 [Pelajar] Apabila saya meletakkan dalam semua 6 perkara-perkara yang saya hanya mendapat satu nombor sebagai output. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Apabila anda meletakkan dalam semua 6 perkara-perkara ini. 391 00:28:36,000 --> 00:28:39,000 Mari kita lihat adalah kerana ia adalah mungkin- 392 00:28:39,000 --> 00:28:46,000 satu perkara adalah bahawa panggilan cetak tidak ditamatkan pada akhir dengan garisan baru. 393 00:28:46,000 --> 00:28:49,000 Ada tiada baris baru memisahkan setiap panggilan cetak, 394 00:28:49,000 --> 00:28:51,000 jadi mungkin anda mendapat satu nombor yang besar, 395 00:28:51,000 --> 00:28:58,000 dan ia adalah benar-benar hanya amalgam aksara baris baru. 396 00:28:58,000 --> 00:29:00,000 [Pelajar] Okay, bagaimana saya membuat pasti- 397 00:29:00,000 --> 00:29:03,000 Nah, terdapat sekumpulan cara yang berbeza. 398 00:29:03,000 --> 00:29:06,000 Anda secara manual boleh dimasukkan ke dalam cetak aksara baris baru, 399 00:29:06,000 --> 00:29:09,000 gema aksara baris baru, 400 00:29:09,000 --> 00:29:12,000 mencetak baris baru. 401 00:29:12,000 --> 00:29:16,000 [Pelajar] Jadi echo adalah perkara yang sama seperti printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf adalah seperti C printf 403 00:29:21,000 --> 00:29:24,000 ke mana anda hendak mencetak rentetan diformat. 404 00:29:24,000 --> 00:29:32,000 Anda membekalkan format string dan kemudian semua placeholder pembolehubah. 405 00:29:32,000 --> 00:29:39,000 Ia sering sesuatu yang tidak digunakan 406 00:29:39,000 --> 00:29:42,000 mari kita lihat, seperti penafian, 407 00:29:42,000 --> 00:29:48,000 Saya kurang biasa dengan PHP daripada saya dengan bahasa web yang lain, 408 00:29:48,000 --> 00:29:53,000 dan apabila saya telah diprogramkan dalam PHP, saya biasanya tidak menggunakan printf 409 00:29:53,000 --> 00:29:59,000 kerana saya mendapati ia lebih cepat untuk menggunakan keupayaan interpolasi rentetan bahawa ia mempunyai, 410 00:29:59,000 --> 00:30:04,000 yang kita akan pergi ke dalam dan saya akan menunjukkan kepada anda dalam hanya sesaat, 411 00:30:04,000 --> 00:30:08,000 sedangkan dalam C kita jenis mempunyai untuk melakukan perkara ini hacky untuk mendapatkan ia untuk mencetak dengan betul. 412 00:30:08,000 --> 00:30:16,000 Anda sebenarnya boleh meletakkan pembolehubah langsung kepada rentetan dalam PHP. 413 00:30:16,000 --> 00:30:22,000 Printf adalah jenis terlalu lama untuk apa yang saya lakukan biasanya. Ya, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] Secara umumnya jika anda mendapat ralat menghuraikan maksudnya- 415 00:30:25,000 --> 00:30:30,000 seperti di C ia tidak memberitahu anda dengan tepat di mana kesilapan dan apa yang ia adalah, 416 00:30:30,000 --> 00:30:34,000 jadi adakah itu bermakna melihat melalui kod keseluruhan anda dan angka ia keluar? 417 00:30:34,000 --> 00:30:39,000 Ia biasanya lebih disasarkan daripada itu. 418 00:30:39,000 --> 00:30:48,000 Saya fikir dalam kes itu, ia adalah di luar sedikit, 419 00:30:48,000 --> 00:30:51,000 jadi saya fikir dalam hal yang kita telah hilang dengan koma bernoktah. 420 00:30:51,000 --> 00:30:54,000 Ia telah cuba untuk membuat rasa segala-galanya, 421 00:30:54,000 --> 00:30:57,000 jadi seperti bahasa ini ditafsirkan, jurubahasa akan cuba 422 00:30:57,000 --> 00:31:01,000 dan melakukan yang terbaik untuk membuat semua kerja-kerja yang sesuai. 423 00:31:01,000 --> 00:31:04,000 >> Anda akan lihat, sebagai contoh, dalam menutup 424 00:31:04,000 --> 00:31:10,000 anda akan sering-line penyata akhir dengan semicolon hanya seperti yang mereka lakukan dalam PHP, 425 00:31:10,000 --> 00:31:13,000 sama seperti yang mereka lakukan di C. 426 00:31:13,000 --> 00:31:15,000 Dalam menutup beberapa penterjemah JavaScript 427 00:31:15,000 --> 00:31:20,000 dalam banyak pelayar akan dimasukkan ke dalam koma bertitik untuk anda 428 00:31:20,000 --> 00:31:23,000 jika anda berlaku untuk hilang mereka. 429 00:31:23,000 --> 00:31:29,000 Mereka akan cuba dan menampung untuk sloppiness beberapa di pihak anda. 430 00:31:29,000 --> 00:31:34,000 Itulah di mana ia mungkin cuba dan cuba dan cuba untuk membuat perkara yang kerja, 431 00:31:34,000 --> 00:31:36,000 dan akhirnya ia akan sampai ke titik di mana ia berkata okay, 432 00:31:36,000 --> 00:31:38,000 Saya tidak boleh membuat perkara yang bekerja pada menyelamatkan, dan itulah di mana anda akan mendapat nombor talian 433 00:31:38,000 --> 00:31:44,000 yang mungkin kelihatan luar sedikit dari tempat yang tepat. 434 00:31:44,000 --> 00:31:47,000 Okay, jadi mari kita pergi melalui ini benar-benar cepat. 435 00:31:47,000 --> 00:31:50,000 Kami berhenti dengan Ella, jadi mari kita pergi ke Missy, 436 00:31:50,000 --> 00:31:54,000 dan Missy, apakah cetakan 1 rentetan ditambah nombor 2 memberikan anda? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Adakah yang masuk akal? Susun? 439 00:31:59,000 --> 00:32:02,000 Adakah ia memberi anda nombor? Adakah ia memberi anda rentetan? 440 00:32:02,000 --> 00:32:05,000 [Missy] nombor. >> Ia adalah nombor satu. 441 00:32:05,000 --> 00:32:09,000 Tetapi ia percetakan, jadi ia akan memberikan anda beberapa jenis tali. 442 00:32:09,000 --> 00:32:12,000 >> Satu perkara yang kita boleh lakukan untuk menyemak ini 443 00:32:12,000 --> 00:32:21,000 jika kita lakukan $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 dan kemudian kita katakan Gema gettype, 445 00:32:28,000 --> 00:32:33,000 jadi kita menggunakan sejenis ketiga percetakan di sini. 446 00:32:33,000 --> 00:32:39,000 Sekarang kita boleh melihat apa yang berlaku di sini. 447 00:32:39,000 --> 00:32:42,000 Di sini apa yang kita telah mendapat adalah kita mendapat integer daripada ini. 448 00:32:42,000 --> 00:32:45,000 Walaupun kita telah menambah rentetan ini kepada beberapa, 449 00:32:45,000 --> 00:32:48,000 kita tidak mendapatkan rentetan daripada itu, seperti Missy berkata. 450 00:32:48,000 --> 00:32:52,000 Kami telah mendapat integer. 451 00:32:52,000 --> 00:32:57,000 Okay, jadi mari kita lihat, bersebelahan sehingga, Kevin. 452 00:32:57,000 --> 00:32:59,000 CS + 50? >> [Kevin] 50. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Adakah yang masuk akal? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Yeah. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Mengapa? Mengapa ia masuk akal untuk anda? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Kerana ia hanya mempunyai tali, yang mempunyai nilai sifar nombor. 457 00:33:11,000 --> 00:33:16,000 Ya, hebat. 458 00:33:16,000 --> 00:33:20,000 Jenis situasi samar-samar, tetapi ia adalah baik untuk mengetahui apa yang berlaku. 459 00:33:20,000 --> 00:33:25,000 Stella, apa yang berlaku seterusnya dengan nombor 1 + string 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3. >> 3 lagi. 461 00:33:27,000 --> 00:33:30,000 Dan dalam kes ini, adakah kita mendapatkan rentetan atau nombor? 462 00:33:30,000 --> 00:33:36,000 >> Mari kita memberikan ini cuba. 463 00:33:36,000 --> 00:33:43,000 Sesiapa yang lebih cepat daripada saya mendapat jawapannya? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, saya didn't-okay, mari kita lihat, kita akan melakukan perkara yang sama perkara 465 00:33:46,000 --> 00:33:49,000 di mana kita telah mendapat beberapa campur rentetan, dan kita akan echo jenis, 466 00:33:49,000 --> 00:33:51,000 lihat apa yang kita dapat. 467 00:33:51,000 --> 00:33:55,000 Kami juga mendapat integer. 468 00:33:55,000 --> 00:33:58,000 Ia tidak kira yang mana satu adalah rentetan, yang mana satu adalah nombor. 469 00:33:58,000 --> 00:34:00,000 Kami masih akan mendapat integer. 470 00:34:00,000 --> 00:34:04,000 Ia masih akan melakukan apa yang kita boleh harapkan. 471 00:34:04,000 --> 00:34:09,000 Baiklah, jadi Sam, apa yang kira-kira 90 + 9 botol bir di dinding? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Tiada botol bir di dinding, walaupun. 474 00:34:15,000 --> 00:34:17,000 Ia memberikan kita lebih sedikit maklumat tentang apa yang berlaku. 475 00:34:17,000 --> 00:34:21,000 [Sam] Jika anda telah menulis 9 dalam surat 476 00:34:21,000 --> 00:34:23,000 maka anda akan mempunyai 90, betul-betul? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Yeah. 478 00:34:26,000 --> 00:34:30,000 Persoalannya ialah jika kita hendak ditulis 9 sebagai N-I-N-E 479 00:34:30,000 --> 00:34:34,000 kita akan mendapat 99 atau 90? 480 00:34:34,000 --> 00:34:38,000 Kami ingin mendapatkan 90. 481 00:34:38,000 --> 00:34:42,000 Ia benar-benar hanya mencari aksara angka. 482 00:34:42,000 --> 00:34:46,000 Ia tidak bijak untuk mengiktiraf perkataan bilangan dan barangan yang. Ya. 483 00:34:46,000 --> 00:34:48,000 >> [Pelajar] Adakah terdapat perkara yang sedemikian sebagai typecasting dalam PHP? 484 00:34:48,000 --> 00:34:54,000 Terdapat, dan ia betul-betul cara bagaimana anda akan melakukannya dalam C. 485 00:34:54,000 --> 00:34:56,000 Bagaimana kira-kira 10/7, Charlotte? 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1,4285. 487 00:34:58,000 --> 00:35:01,000 [Nate H.] Yeah, jadi apa yang mungkin mengejutkan tentang perkara ini? 488 00:35:01,000 --> 00:35:04,000 Apa yang akan berlaku jika anda melakukan ini jenis yang sama perkara dalam C, 489 00:35:04,000 --> 00:35:06,000 jika anda lakukan 10/7 dalam C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Ia hanya akan memberikan anda bergantung kepada bagaimana anda typecasted Saya rasa 491 00:35:08,000 --> 00:35:12,000 ia akan memberi anda hanya bilangan yang terhad digit selepas perpuluhan. 492 00:35:12,000 --> 00:35:16,000 Ya, jadi bilangan yang terhad digit selepas perpuluhan. 493 00:35:16,000 --> 00:35:21,000 Apa lagi yang mungkin akan ia memberi anda apa-apa digit selepas perpuluhan? 494 00:35:21,000 --> 00:35:28,000 Selalunya tidak, jadi lagi, bergantung kepada bagaimana anda typecasting 495 00:35:28,000 --> 00:35:31,000 ia boleh atau tidak boleh menukar nombor titik terapung. 496 00:35:31,000 --> 00:35:35,000 Berikut adalah jenis baik bahawa ia tidak. 497 00:35:35,000 --> 00:35:40,000 Kalaulah kami menunjukkan anda kembali ini apabila kita mula melakukan ini jenis barangan dalam C 498 00:35:40,000 --> 00:35:44,000 ia mungkin akan membuat rasa lebih sedikit 499 00:35:44,000 --> 00:35:48,000 bahawa ia tidak hanya pergi ke 1. 500 00:35:48,000 --> 00:35:51,000 Dan kemudian akhirnya, Jamie, apa yang kira-kira 7 + benar? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Apa maksudnya? 503 00:35:56,000 --> 00:35:58,000 Saya rasa ia hanya memberikan benar nilai 1. 504 00:35:58,000 --> 00:36:01,000 Yeah. Apakah yang akan berlaku jika kita menukar bahawa untuk palsu? 505 00:36:01,000 --> 00:36:04,000 [Pelajar] 7. 506 00:36:04,000 --> 00:36:09,000 Ya, jadi ingat di mana kita bercakap tentang nilai-nilai binari, 507 00:36:09,000 --> 00:36:12,000 1 berada di, 0 menjadi luar? 508 00:36:12,000 --> 00:36:17,000 Sekarang kita perlu benar adalah 1, 0 adalah palsu, 509 00:36:17,000 --> 00:36:21,000 dan anda mungkin tidak melihat ini dalam contoh C yang kita lakukan semester ini yang lalu, 510 00:36:21,000 --> 00:36:27,000 tetapi sejarah jenis bool dalam C tidak menjadi sejenis sebenar, 511 00:36:27,000 --> 00:36:32,000 jadi orang telah menggunakan 0 dan 1 di tempat yang benar dan palsu. 512 00:36:32,000 --> 00:36:35,000 Ini adalah manifestasi itu. 513 00:36:35,000 --> 00:36:39,000 >> Okay, jadi salah satu bahagian penting tentang semua ini 514 00:36:39,000 --> 00:36:41,000 adalah bahawa kita mempunyai jenis yang berbeza. 515 00:36:41,000 --> 00:36:43,000 Mereka boleh berinteraksi antara satu sama lain. 516 00:36:43,000 --> 00:36:49,000 Mereka sering boleh berinteraksi antara satu sama lain dengan cara yang baik, seperti yang kita telah melihat di sini. 517 00:36:49,000 --> 00:36:53,000 Ia adalah baik untuk dapat mempunyai rentetan 1 dan nombor 2, menambah mereka bersama-sama dan mendapatkan 3. 518 00:36:53,000 --> 00:36:55,000 Yang masuk akal. 519 00:36:55,000 --> 00:36:59,000 Walau bagaimanapun, apabila anda menulis laman web, dan terutamanya apabila anda memproses 520 00:36:59,000 --> 00:37:04,000 input pengguna, jadi katakan anda telah menulis satu bentuk web 521 00:37:04,000 --> 00:37:09,000 yang mengumpul maklumat dari pengguna dan kemudian pergi untuk memproses 522 00:37:09,000 --> 00:37:13,000 pada akhir belakang, di sebelah pelayan dalam kod PHP anda 523 00:37:13,000 --> 00:37:18,000 jika anda menjangkakan bahawa nilai yang pengguna ditaip dan diserahkan 524 00:37:18,000 --> 00:37:23,000 untuk membentuk anda untuk menjadi integer atau untuk menjadi nombor titik apung atau sesuatu seperti itu 525 00:37:23,000 --> 00:37:29,000 anda perlu untuk membuang ia jelas 526 00:37:29,000 --> 00:37:34,000 dan kemudian melakukan beberapa penyemakan jenis. 527 00:37:34,000 --> 00:37:41,000 >> Anda tidak mahu hanya bergantung kepada sistem ini menjugel jenis untuk membuat perkara yang bekerja keluar, 528 00:37:41,000 --> 00:37:48,000 terutamanya atas sebab-sebab keselamatan dan hanya untuk ketegapan laman web anda. 529 00:37:48,000 --> 00:37:51,000 Hanya sesuatu yang perlu diingat bahawa apabila anda mengendalikan data borang, 530 00:37:51,000 --> 00:37:57,000 apa-apa yang datang dalam jawatan itu atau pada superglobals get 531 00:37:57,000 --> 00:38:01,000 pastikan bahawa anda sentiasa mengesahkannya dan menukar ia dan cuma sesuai ia. 532 00:38:01,000 --> 00:38:04,000 Dan seperti kita bercakap tentang masa lalu bahawa typecasting 533 00:38:04,000 --> 00:38:08,000 dalam PHP adalah sama seperti dalam C di mana anda mempunyai kurungan 534 00:38:08,000 --> 00:38:14,000 dan kemudian jenis. 535 00:38:14,000 --> 00:38:16,000 Menyimpan bahawa dalam fikiran. 536 00:38:16,000 --> 00:38:19,000 Salah satu fungsi yang akan datang dalam berguna apabila anda lakukan ini 537 00:38:19,000 --> 00:38:22,000 kita telah menggunakan dan ini adalah jenis sebagai selain- 538 00:38:22,000 --> 00:38:27,000 kita telah menggunakan fungsi ini gettype di sini 539 00:38:27,000 --> 00:38:30,000 untuk memikirkan jenis pembolehubah, 540 00:38:30,000 --> 00:38:37,000 dan ketika ini adalah berguna untuk debugging dan untuk melihat apa jenis pembolehubah 541 00:38:37,000 --> 00:38:42,000 anda tidak mahu untuk menggunakan ini, sebagai contoh, dalam keadaan di mana 542 00:38:42,000 --> 00:38:57,000 anda memeriksa untuk melihat jika gettype $ var = integer melakukan sesuatu. 543 00:38:57,000 --> 00:39:01,000 Ini adalah buruk, buruk, buruk. 544 00:39:01,000 --> 00:39:09,000 Sebaliknya terdapat fungsi-fungsi yang dipanggil ialah integer, tali, 545 00:39:09,000 --> 00:39:14,000 adalah pelbagai yang anda mahu untuk menggunakan sebaliknya, jadi dalam kes ini 546 00:39:14,000 --> 00:39:18,000 apa yang saya mahu lakukan dan bukannya lelaki ini di sini 547 00:39:18,000 --> 00:39:31,000 menggunakan var integer. 548 00:39:31,000 --> 00:39:37,000 Dan mereka sering dirujuk adalah * is_ dalam erti kata bahawa anda boleh menggantikan * dengan integer, 549 00:39:37,000 --> 00:39:43,000 tali, dan sebagainya, dan hanya untuk memastikan benar-benar cepat 550 00:39:43,000 --> 00:39:50,000 ini adalah int php. 551 00:39:50,000 --> 00:39:59,000 Kelihatan seperti anda boleh lakukan sama ada int atau ada ialah integer serta? 552 00:39:59,000 --> 00:40:06,000 Ya, alias, begitu int alias integer. 553 00:40:06,000 --> 00:40:08,000 Sejuk. 554 00:40:14,000 --> 00:40:17,000 >> Bagaimana kita lakukan? 555 00:40:17,000 --> 00:40:20,000 Mari kita mengambil kadar sedikit. 556 00:40:20,000 --> 00:40:24,000 Sekarang kita akan bercakap tentang tatasusunan, jadi seperti yang anda boleh lihat 557 00:40:24,000 --> 00:40:28,000 dalam bahagian seterusnya spesifikasi kita bercakap tentang bagaimana array dalam PHP 558 00:40:28,000 --> 00:40:31,000 adalah sedikit berbeza daripada mereka berada dalam C. 559 00:40:31,000 --> 00:40:34,000 Sebenarnya, mereka jenis amalgam 560 00:40:34,000 --> 00:40:36,000 tatasusunan bahawa anda telah datang ke tahu dan cinta dalam C 561 00:40:36,000 --> 00:40:40,000 di mana segala-galanya adalah dari jenis yang sama 562 00:40:40,000 --> 00:40:43,000 berturut-turut dan contiguously disimpan dalam ingatan, 563 00:40:43,000 --> 00:40:46,000 dan anda mempunyai indeks ini angka. 564 00:40:46,000 --> 00:40:49,000 Anda mempunyai indeks 0, index 1, indeks 2, 565 00:40:49,000 --> 00:40:53,000 dan anda menyimpan nilai pada mereka indeks. 566 00:40:53,000 --> 00:40:57,000 Anda juga di C, apabila anda menulis Speller, banyak anda 567 00:40:57,000 --> 00:41:00,000 melakukan pendekatan jadual hash, dan anda melihat bahawa di sana kami terpaksa 568 00:41:00,000 --> 00:41:03,000 pelbagai jenis penyimpanan, di mana kita telah pemetaan 569 00:41:03,000 --> 00:41:07,000 kunci kepada nilai, jadi apabila anda cuba untuk menyimpan sesuatu dalam jadual hash 570 00:41:07,000 --> 00:41:11,000 anda mempunyai untuk menentukan bahawa anda mahu untuk menyimpan ia dengan kunci tertentu, 571 00:41:11,000 --> 00:41:17,000 utama yang menentukan lokasi nilai dan di mana ia akan disimpan. 572 00:41:17,000 --> 00:41:22,000 Anda telah jenis mendapat kedua-dua mereka konsep yang berlaku pada masa yang sama dalam pelbagai PHP, 573 00:41:22,000 --> 00:41:27,000 dan hasilnya, kita sering menyeru ini array bersekutu 574 00:41:27,000 --> 00:41:33,000 di mana kita mengaitkan kunci dalam nilai. 575 00:41:33,000 --> 00:41:39,000 Dalam bahagian ini seterusnya kita bercakap tentang tatasusunan PHP mudah 576 00:41:39,000 --> 00:41:45,000 di mana kita mempunyai kekunci a, b, dan c, 577 00:41:45,000 --> 00:41:53,000 semua tali, pemetaan untuk integer 1, 2, dan 3. 578 00:41:53,000 --> 00:41:57,000 Dan anda boleh mempunyai kunci jenis yang berbeza. 579 00:41:57,000 --> 00:42:00,000 >> Anda boleh mempunyai beberapa kunci yang tali, beberapa kunci yang adalah integer. 580 00:42:00,000 --> 00:42:03,000 Anda boleh mempunyai nilai-nilai yang jenis yang berbeza. 581 00:42:03,000 --> 00:42:06,000 Anda boleh mempunyai nilai yang rentetan, nilai yang integer, 582 00:42:06,000 --> 00:42:11,000 nilai itulah objek atau pelbagai yang lain, sebagai contoh, 583 00:42:11,000 --> 00:42:16,000 semua objek pelbagai yang sama, yang merupakan jenis pelik. 584 00:42:16,000 --> 00:42:20,000 Anda tidak perlu untuk mempunyai pelbagai yang hanya mendapat satu jenis unsur di dalamnya. 585 00:42:20,000 --> 00:42:26,000 Anda boleh mempunyai banyak perkara yang berbeza berlaku di sana. 586 00:42:26,000 --> 00:42:33,000 Perkara lain yang perlu diperhatikan adalah bahawa apabila anda melihat sesuatu seperti ini dalam kod anda, 587 00:42:33,000 --> 00:42:38,000 yang merupakan PHP sah untuk mengisytiharkan pelbagai seperti ini, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 yang akan mengisytiharkan dimulakan $ arr menjadi array ini. 589 00:42:43,000 --> 00:42:48,000 Tetapi apa yang anda sebenarnya mendapat di bawah hood ini jenis tersirat 590 00:42:48,000 --> 00:42:55,000 generasi kunci di mana kita telah mendapat 0-0, 1-1, 2-2, 3 hingga 3. 591 00:42:55,000 --> 00:42:59,000 Dan ternyata bahawa walaupun anda lakukan mempunyai pelbagai seperti lelaki ini di sini 592 00:42:59,000 --> 00:43:03,000 di mana anda mempunyai a, b dan c sebagai kunci 593 00:43:03,000 --> 00:43:09,000 dan kemudian anda mula menggunakan kaedah array menolak untuk mula menggunakan array ini seperti timbunan, 594 00:43:09,000 --> 00:43:12,000 supaya anda boleh melihat bahawa objek ini pelbagai, pelbagai ini adalah benar-benar menjadi beban. 595 00:43:12,000 --> 00:43:15,000 Kita boleh menggunakan ia sebagai array. Kita boleh menggunakan ia sebagai sebuah jadual hash. 596 00:43:15,000 --> 00:43:19,000 Kita boleh menggunakan ia sebagai timbunan. 597 00:43:19,000 --> 00:43:22,000 Apabila anda mula menolak perkara-perkara ke array ini 598 00:43:22,000 --> 00:43:30,000 perkara pertama yang anda menolak ke ini akan menjadi indeks 0 dan kemudian index 1 dan indeks 2. 599 00:43:30,000 --> 00:43:33,000 Anda boleh mendapatkan ini jenis generasi tersirat kunci 600 00:43:33,000 --> 00:43:38,000 melainkan anda tentukan mereka jelas. 601 00:43:38,000 --> 00:43:43,000 Cara anda menentukan kunci jelas, sudah tentu, adalah dengan menggunakan tatatanda kurungan, 602 00:43:43,000 --> 00:43:48,000 yang serupa dengan array kecuali bukannya hanya membenarkan 603 00:43:48,000 --> 00:43:54,000 indeks integer di sini, kini kita membenarkan apa-apa. 604 00:43:54,000 --> 00:43:57,000 Jika anda mahu kunci anda untuk menjadi rentetan, anda akan menentukan ia seperti ini. 605 00:43:57,000 --> 00:44:06,000 Jika anda mahu ia menjadi satu int, anda tentukan dengan int yang anda mahu gunakan. 606 00:44:06,000 --> 00:44:13,000 >> Soalan bahawa setakat ini? 607 00:44:13,000 --> 00:44:18,000 Salah satu perkara yang baik mengenai idea ini 608 00:44:18,000 --> 00:44:26,000 adalah bahawa anda hanya boleh mempunyai satu nilai yang disimpan dengan kunci tertentu. 609 00:44:26,000 --> 00:44:32,000 Jika kita kembali kepada kami perkakas-mari saya padam beberapa barangan ini. 610 00:44:32,000 --> 00:44:47,000 Dan mari kita katakan saya memulakan pelbagai untuk menjadi 0, 1, 2, dilakukan. 611 00:44:47,000 --> 00:44:55,000 Jika saya kini tahu bahawa, sebagai contoh, jika saya echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Saya akan mendapatkan 0 nilai yang dicetak keluar, 613 00:44:59,000 --> 00:45:05,000 dan sejak ada boleh hanya pernah menjadi salah satu nilai yang disimpan untuk kunci tertentu 614 00:45:05,000 --> 00:45:11,000 jika saya menyimpan sesuatu pada $ arr [0], mengatakan, 615 00:45:11,000 --> 00:45:16,000 maka saya tahu apabila saya echo $ arr [0] sekali lagi 616 00:45:16,000 --> 00:45:19,000 Saya tidak akan untuk mendapatkan 0 dicetak seperti sebelum ini. 617 00:45:19,000 --> 00:45:24,000 Saya hanya akan mendapat. 618 00:45:24,000 --> 00:45:30,000 Jadi ini pada dasarnya mengatakan bahawa saya tidak boleh mempunyai $ arr [0] menyimpan 2 nilai-nilai yang berbeza. 619 00:45:30,000 --> 00:45:34,000 Ia tidak boleh menyimpan kedua-dua 0 dan rentetan, seperti ini benar-benar menggantikan 620 00:45:34,000 --> 00:45:38,000 apa yang berada di $ arr [0] sebelumnya. 621 00:45:38,000 --> 00:45:43,000 Sebab saya membawa sehingga ini menjalankan ia, lihat apa yang berlaku. 622 00:45:43,000 --> 00:45:47,000 Lihat di sini bahawa saya mendapat 0 dicetak dan kemudian turun di sini. 623 00:45:47,000 --> 00:45:51,000 Tiada baris baru di sana kerana saya adalah malas dan tidak meletakkan bahawa masuk 624 00:45:51,000 --> 00:45:54,000 Apa yang sejuk kira-kira ini adalah kita boleh gunakan ini sebagai satu cara 625 00:45:54,000 --> 00:46:00,000 untuk menangkap idea ini set 626 00:46:00,000 --> 00:46:07,000 di mana kita tidak boleh mempunyai kunci berganda dalam array. 627 00:46:07,000 --> 00:46:10,000 Kita tidak boleh mempunyai kunci yang sama dalam array. 628 00:46:10,000 --> 00:46:17,000 Saya tidak boleh mempunyai 0 utama dan nilai 1 dan 0 utama dan nilai 629 00:46:17,000 --> 00:46:21,000 atau 0 utama dan nilai sebenar. 630 00:46:21,000 --> 00:46:27,000 Kekunci semua ada hanya 1 utama dalam array. 631 00:46:27,000 --> 00:46:32,000 Walaupun anda boleh mempunyai nilai yang sama yang disimpan 632 00:46:32,000 --> 00:46:35,000 beberapa kali dalam array bawah kunci yang berbeza 633 00:46:35,000 --> 00:46:42,000 ia tidak mustahil untuk mempunyai kunci yang sama beberapa kali dalam pelbagai PHP anda. 634 00:46:42,000 --> 00:46:47,000 >> Jika kita melihat masalah ini seterusnya, unique.php, 635 00:46:47,000 --> 00:46:51,000 di mana kita mahu membuka fail PHP 636 00:46:51,000 --> 00:46:54,000 mengandungi senarai rentetan, satu rentetan setiap baris, 637 00:46:54,000 --> 00:47:01,000 dan kita mahu untuk mencari semua rentetan yang unik dalam fail yang 638 00:47:01,000 --> 00:47:06,000 semua yang perlu kita lakukan adalah menggunakan salah satu tatasusunan PHP 639 00:47:06,000 --> 00:47:12,000 dan menggunakan tali dalam fail sebagai kunci kepada pelbagai ini 640 00:47:12,000 --> 00:47:17,000 dan menyimpan mengemaskini pelbagai kami kerana kami menyimpan kekunci ini baru. 641 00:47:17,000 --> 00:47:22,000 Seperti yang kita baca setiap baris fail kita boleh menyimpan dalam array, 642 00:47:22,000 --> 00:47:28,000 dan pada akhir kita akan mempunyai sebagai kunci kami dalam pelbagai kami 643 00:47:28,000 --> 00:47:34,000 semua rentetan unik dalam fail. 644 00:47:34,000 --> 00:47:37,000 Adakah yang masuk akal? 645 00:47:37,000 --> 00:47:41,000 Mari kita lihat bagaimana kerja-kerja ini. 646 00:47:41,000 --> 00:47:49,000 Kami akan membuka, mengikut spesifikasi, fail baru yang dipanggil unique.php. 647 00:47:49,000 --> 00:47:58,000 Buka. Alamak, maaf, fail baru. 648 00:47:58,000 --> 00:48:03,000 Kami akan bermula dengan tag permulaan dan akhir yang sama. 649 00:48:03,000 --> 00:48:17,000 Kami akan menyimpannya dalam seksyen 9, dan kita akan memanggil ia unique.php. 650 00:48:17,000 --> 00:48:25,000 Okay, sekarang zum masuk 651 00:48:25,000 --> 00:48:32,000 Idea di sini adalah membuka fail, 652 00:48:32,000 --> 00:48:38,000 membaca file selaras dengan garis. 653 00:48:38,000 --> 00:48:46,000 Bagi setiap baris dalam fail 654 00:48:46,000 --> 00:48:51,000 kita akan mempunyai array di mana kita mempunyai 655 00:48:51,000 --> 00:49:03,000  garis sebagai kunci kami. 656 00:49:03,000 --> 00:49:09,000 Dan kemudian apabila kita sampai ke akhir di sini 657 00:49:09,000 --> 00:49:17,000 Kunci $ arr garis unik 658 00:49:17,000 --> 00:49:25,000 dari fail kerana kita tahu bahawa jika saya meletakkan garis ke dalam array ini 659 00:49:25,000 --> 00:49:33,000 beberapa kali ia hanya akan menyimpan mengatasi nilai lama, 660 00:49:33,000 --> 00:49:46,000 dan kita sebenarnya boleh meletakkan garis pelbagai seperti dirinya seperti itu. 661 00:49:46,000 --> 00:49:48,000 >> Ini adalah jenis pelik. 662 00:49:48,000 --> 00:49:52,000 Kami menyimpan sepasang nilai yang sama penting lebih dan lebih dan lebih lagi, 663 00:49:52,000 --> 00:50:00,000 tetapi sejak kita dijamin bahawa akan ada hanya 1 utama dipanggil garis 664 00:50:00,000 --> 00:50:05,000 jadi jika kita mempunyai fail yang mengatakan fail bunyi haiwan dan ia mempunyai CBC, CBC, 665 00:50:05,000 --> 00:50:11,000 Meow, Meow, moo, moo, dan setiap kali kita membaca bunyi haiwan keluar 666 00:50:11,000 --> 00:50:15,000 seperti CBC dan kita menyimpannya dalam pelbagai kami, kami mendapat CBC, dan kemudian kali kedua 667 00:50:15,000 --> 00:50:20,000 kami menyimpan CBC ia akan menimpa kali pertama bahawa kita disimpan. 668 00:50:20,000 --> 00:50:25,000 Pada akhirnya kita hanya akan mempunyai satu catatan dalam array 669 00:50:25,000 --> 00:50:33,000 bagi setiap bunyi haiwan dalam fail bunyi haiwan kami. 670 00:50:33,000 --> 00:50:41,000 Adakah anda semua berasa yakin bahawa anda boleh menangani pembukaan fail dalam PHP? 671 00:50:41,000 --> 00:50:45,000 Salah satu cara untuk melakukannya-mari kita pergi melalui cara ini cepat-satu untuk melakukannya 672 00:50:45,000 --> 00:50:50,000 dengan fopen, seperti yang kita lihat sebelum ini. 673 00:50:50,000 --> 00:50:55,000 Anda boleh fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Anda bisa buka di dalam mod membaca, seperti dalam C. 675 00:50:59,000 --> 00:51:02,000 Itulah salah satu cara yang sempurna baik untuk melakukannya. 676 00:51:02,000 --> 00:51:05,000 Anda juga maka untuk membaca dalam garis fail demi baris 677 00:51:05,000 --> 00:51:12,000 mempunyai fungsi yang sama, ramai di antara mereka, yang anda telah lakukan dalam C. 678 00:51:12,000 --> 00:51:14,000 Anda mempunyai fgets. 679 00:51:14,000 --> 00:51:17,000 Anda mempunyai feof, walaupun kita tidak suka menggunakan yang 680 00:51:17,000 --> 00:51:22,000 kerana, ingat, yang tidak besar dalam C. 681 00:51:22,000 --> 00:51:25,000 Anda boleh melakukannya dengan cara yang sama, 682 00:51:25,000 --> 00:51:34,000 tetapi di sini adalah satu perkara yang benar-benar sejuk. 683 00:51:34,000 --> 00:51:41,000 Maaf, saya tidak mahu lakukan $ file, tetapi terdapat fungsi dipanggil fail dalam PHP, 684 00:51:41,000 --> 00:51:47,000 dan fungsi ini di sini adalah sejuk kerana ia membaca keseluruhan kandungan 685 00:51:47,000 --> 00:51:52,000 fail yang anda tetapkan, jadi some_file.txt, 686 00:51:52,000 --> 00:51:56,000 membaca keseluruhan kandungan fail ini ke dalam array 687 00:51:56,000 --> 00:52:03,000 dan kemudian membolehkan anda melelar ke atasnya, yang cukup bagus. 688 00:52:03,000 --> 00:52:07,000 >> Jika kita pergi, sebagai contoh, kepada pelayar web kami 689 00:52:07,000 --> 00:52:14,000 dan kita melihat Google untuk fail PHP 690 00:52:14,000 --> 00:52:23,000 anda boleh lihat di sini bahawa pengguna kami mengatakan fail yang membaca seluruh fail ke array, 691 00:52:23,000 --> 00:52:27,000 dan kita boleh file_get_contents untuk kembali kandungan fail sebagai rentetan, 692 00:52:27,000 --> 00:52:30,000 tetapi biasanya hanya mendapat ia sebagai array adalah benar-benar baik kerana apa yang ia 693 00:52:30,000 --> 00:52:33,000 ia pecah ia sehingga supaya setiap elemen 694 00:52:33,000 --> 00:52:37,000 dalam array adalah salah satu garis fail, 695 00:52:37,000 --> 00:52:41,000 jadi jika kita melihat pada 0 fail, itulah baris pertama fail. 696 00:52:41,000 --> 00:52:46,000 Fail 1, baris kedua, Fail 2, ketiga baris, dan sebagainya dan sebagainya. 697 00:52:46,000 --> 00:52:50,000 Ia tidak akan menjadi baik jika itu semua anda terpaksa lakukan dalam C? 698 00:52:50,000 --> 00:52:53,000 Cukup bagus. 699 00:52:53,000 --> 00:52:59,000 David menunjukkan ini dalam kuliah, dan ungkapan beliau menunjukkan 700 00:52:59,000 --> 00:53:03,000 bahawa di samping kepada standard kami untuk gelung-dalam PHP kita terpaksa 701 00:53:03,000 --> 00:53:09,000 ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 dan anda boleh melakukan ini dalam PHP juga, perkara yang sama- 703 00:53:16,000 --> 00:53:27,000 kita juga mempunyai ini membina sejuk dipanggil foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach adalah benar-benar berguna apabila iterating atas tatasusunan atau struktur data 705 00:53:32,000 --> 00:53:36,000 kerana ia membolehkan anda untuk tarik keluar setiap elemen array 706 00:53:36,000 --> 00:53:42,000 tanpa perlu untuk manual melakukan pengindeksan sendiri, 707 00:53:42,000 --> 00:53:46,000 tanpa perlu manual mewujudkan pembolehubah indeks, kenaikan ia, 708 00:53:46,000 --> 00:53:51,000 tarik keluar nilai dalam array pada ketika itu, kerana itulah satu perkara yang sangat biasa lakukan. 709 00:53:51,000 --> 00:53:54,000 >> Anda mungkin telah dilakukan bahawa tan kali apabila anda telah melakukan barangan C 710 00:53:54,000 --> 00:54:00,000 sepanjang semester, jadi dengan ini foreach 711 00:54:00,000 --> 00:54:06,000 kita boleh gelung lebih pelbagai fail ini, 712 00:54:06,000 --> 00:54:12,000 dan sintaksis adalah bahawa kita mahu gelung kini lebih pelbagai ini 713 00:54:12,000 --> 00:54:18,000 dan menyatakan bahawa pembolehubah yang kita akan gunakan untuk menyimpan 714 00:54:18,000 --> 00:54:27,000 elemen array ini tempatan, tempatan untuk skop gelung foreach ini, 715 00:54:27,000 --> 00:54:32,000 kita akan memanggilnya garis. 716 00:54:32,000 --> 00:54:38,000 Jika ia merupakan satu fail perkataan sahaja dan ada satu perkataan dalam satu barisan 717 00:54:38,000 --> 00:54:43,000 kita boleh memanggil ia perkataan juga, benar-benar hanya anda memberikan nama ini, 718 00:54:43,000 --> 00:54:49,000 apa sahaja yang anda mahu panggil ia, 719 00:54:49,000 --> 00:55:02,000 dan kemudian di dalam gelung anda boleh melakukan apa sahaja yang anda mahu dengan baris ini berubah-ubah. 720 00:55:02,000 --> 00:55:08,000 Jika ia tidak cukup untuk mendapatkan nilai array dan anda juga mahu mendapatkan 721 00:55:08,000 --> 00:55:17,000 indeks bersama-sama dengan ia anda boleh menentukan nama bagi indeks 722 00:55:17,000 --> 00:55:22,000 serta nilai, dan kini anda mempunyai akses kepada 2 pembolehubah. 723 00:55:22,000 --> 00:55:26,000 Anda mempunyai $ i dan garis 724 00:55:26,000 --> 00:55:30,000 mana $ i ialah indeks dalam array, 725 00:55:30,000 --> 00:55:38,000 dan garis adalah garis yang anda diambil dari fail. 726 00:55:38,000 --> 00:55:49,000 Sebagai contoh, jika kita mahu untuk mencetak echo line 0 fail seperti ini, 727 00:55:49,000 --> 00:55:57,000 kita boleh melakukannya seperti ini, "Baris $ i fail adalah $ talian," 728 00:55:57,000 --> 00:56:02,000 dan di sini adalah sesuatu yang kita juga tidak pernah melihat lagi sama ada 729 00:56:02,000 --> 00:56:13,000 di mana saya hanya benar-benar dilangkau lebih keseluruhan ini% s% d perniagaan 730 00:56:13,000 --> 00:56:16,000 bahawa kita terpaksa berurusan dengan dalam C, dan sebaliknya saya telah pergi terus ke 731 00:56:16,000 --> 00:56:19,000 menulis pembolehubah selaras dalam rentetan saya. 732 00:56:19,000 --> 00:56:23,000 >> Ini dipanggil interpolasi yang berubah-ubah, tali interpolasi 733 00:56:23,000 --> 00:56:26,000 mana anda pemadat pembolehubah yang betul, dan jurubahasa PHP 734 00:56:26,000 --> 00:56:31,000 cukup pintar apabila ia membaca melalui rentetan yang bermula dengan dua petikan- 735 00:56:31,000 --> 00:56:34,000 tidak petikan tunggal, dengan rentetan dipetik tunggal anda tidak boleh melakukan ini- 736 00:56:34,000 --> 00:56:38,000 tetapi dengan tali yang dipetik kembar yang ia membaca melalui ia mencari pembolehubah. 737 00:56:38,000 --> 00:56:42,000 Ia memburu mereka ke bawah, dan jika ia melihat pembolehubah ia akan mengambil nilai pembolehubah 738 00:56:42,000 --> 00:56:47,000 dan barangan ke dalam tali jika ia boleh menukar ia ke dalam perwakilan rentetan, 739 00:56:47,000 --> 00:56:51,000 yang cukup bagus. 740 00:56:51,000 --> 00:56:56,000 Untuk sekarang, mari kita mengulas keluar rehat daripada segala-galanya, 741 00:56:56,000 --> 00:57:00,000 menyimpan ini, dan apa yang boleh kita lakukan sekarang adalah kita boleh membuka fail 742 00:57:00,000 --> 00:57:06,000 bahawa kita boleh memanggil some_file.txt-mari mencipta fail baru 743 00:57:06,000 --> 00:57:15,000 dan kita boleh dimasukkan ke dalam sekumpulan barangan karut di sini hanya untuk menguji semua keluar, 744 00:57:15,000 --> 00:57:25,000 simpan, hubungi ia some_file.txt, seperti yang saya lakukan di sini di atas, 745 00:57:25,000 --> 00:57:33,000 dan sekarang jika saya mengezum keluar hanya untuk memastikan segala-galanya adalah dalam sama direktori- 746 00:57:33,000 --> 00:57:36,000 ia kelihatan seperti saya mempunyai unique.php dan some_file.txt dalam direktori yang sama. 747 00:57:36,000 --> 00:57:42,000 Jika saya menjalankan unique.php php 748 00:57:42,000 --> 00:57:51,000 lihat bagaimana ia mencetak keluar setiap baris dalam fail saya dan apa garisan? 749 00:57:51,000 --> 00:57:56,000 >> Itu cukup kuat, betul-betul? 750 00:57:56,000 --> 00:58:03,000 Lihat, ia mengambil masa 3 baris kod untuk membuka fail. 751 00:58:03,000 --> 00:58:08,000 Nah, 4 baris kod. Saya tidak boleh dikira hari ini, jelas. 752 00:58:08,000 --> 00:58:13,000 Tetapi benar-benar hanya 2 baris menarik kod, kerana 2 yang lain adalah pendakap kerinting, 753 00:58:13,000 --> 00:58:17,000 tetapi dalam kod ini banyak kita dapat membuka fail, melelar melaluinya, 754 00:58:17,000 --> 00:58:20,000 tarik keluar nombor garis dan garis sendiri 755 00:58:20,000 --> 00:58:24,000 dan mencetak ia keluar. 756 00:58:24,000 --> 00:58:26,000 Barangan sejuk. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Saya mempunyai soalan tentang sintaks. 758 00:58:28,000 --> 00:58:33,000 Jadi foreach tawaran dengan setiap baris tunggal fail yang anda buka, 759 00:58:33,000 --> 00:58:37,000 dan kemudian apabila anda mahu melakukan perkara-perkara dengan setiap baris tunggal anda hanya melakukan ia sebagai 760 00:58:37,000 --> 00:58:39,000 dan kemudian mengaitkan nilai. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Apa yang boleh anda lakukan di sini-soalan adalah 762 00:58:41,000 --> 00:58:46,000 foreach mempunyai kaitan dengan array, jadi sintaks foreach 763 00:58:46,000 --> 00:58:51,000 adalah benar-benar foreach, dan notis bahawa terdapat ruang tidak 764 00:58:51,000 --> 00:58:53,000 atau apa-apa antara dan setiap. 765 00:58:53,000 --> 00:58:56,000 Mereka mempunyai untuk pergi betul-betul bersebelahan antara satu sama lain, 766 00:58:56,000 --> 00:59:00,000 dan kemudian ia mengambil masa dalam array, 767 00:59:00,000 --> 00:59:05,000 dan kemudian anda mempunyai kata kunci lain yang dipanggil sebagai yang telah berada di situ, 768 00:59:05,000 --> 00:59:11,000 dan kemudian selepas itu sebagai sama ada anda boleh meletakkan satu nama yang berubah-ubah, 769 00:59:11,000 --> 00:59:14,000 di mana anda akan menarik keluar nilai array, 770 00:59:14,000 --> 00:59:20,000 bukan indeks, atau jika anda melakukannya kerana kita telah ditulis di bawah 771 00:59:20,000 --> 00:59:24,000 anda mendapat kunci dan nilai-nilai. 772 00:59:24,000 --> 00:59:33,000 Anda mempunyai elemen foreach array atau sepasang array dimasukkan kepada nilai 773 00:59:33,000 --> 00:59:38,000 atau hanya sebagai nilai. 774 00:59:38,000 --> 00:59:40,000 Bergantung kepada apa yang anda perlukan, jika anda tidak perlu kunci, 775 00:59:40,000 --> 00:59:42,000 maka anda boleh pergi dengan nilai. 776 00:59:42,000 --> 00:59:45,000 Jika anda mahu kunci anda boleh pergi dengan mereka juga. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Saya juga menyedari bahawa kami tidak pernah mengisytiharkan i atau talian. 778 00:59:48,000 --> 00:59:51,000 Bagaimana ia tahu apa yang mereka? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Apa yang kamu maksudkan dengan mengisytiharkan? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Kami tidak pernah memberitahu mereka apa yang i atau talian cara. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Kami tidak pernah memberitahu komputer apa yang saya atau talian bermakna dari segi- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] Bahawa mereka sedang diindeks atau bahawa they're- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Kami tidak pernah memberitahu bahawa ini adalah sepatutnya menjadi indeks atau kunci dan nilai, 784 01:00:09,000 --> 01:00:13,000 dan itulah kerana itulah jurubahasa PHP. 785 01:00:13,000 --> 01:00:17,000 Ini berfungsi sebagai perisytiharan itu dan berkata okay, kunci akan menjadi 786 01:00:17,000 --> 01:00:20,000 pembolehubah yang dipanggil i disimpan dalam pembolehubah yang dipanggil i. 787 01:00:20,000 --> 01:00:24,000 Nilai tersebut akan disimpan di dalam garis ubah dipanggil, 788 01:00:24,000 --> 01:00:28,000 jadi ini berfungsi sebagai pengisytiharan pembolehubah ini 789 01:00:28,000 --> 01:00:35,000 dan mengatakan $ i adalah kunci, dan $ talian adalah nilai. 790 01:00:35,000 --> 01:00:37,000 Ya, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Jika kunci tidak dilakukan berangka 792 01:00:41,000 --> 01:00:44,000 bagaimana ia memutuskan apakah perintah ia akan mencetak segala-galanya? 793 01:00:44,000 --> 01:00:47,000 Adakah ia hanya seperti perintah yang ia dimasukkan ke dalam? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Mari kita mencuba. 795 01:00:51,000 --> 01:00:57,000 Mari kita mewujudkan pemboleh ubah yang dipanggil arr, 796 01:00:57,000 --> 01:01:06,000 dan boleh kita lakukan pergi ke 7. 797 01:01:06,000 --> 01:01:19,000 Katakan 0 pergi kepada pelbagai lain dengan 1, 2, atau epal. 798 01:01:19,000 --> 01:01:30,000 Mari kita mengatakan 7 pergi ke 1, b pergi ke 2, 799 01:01:30,000 --> 01:01:39,000 dan 3 pergi hingga 4. 800 01:01:39,000 --> 01:01:44,000 Ini adalah jenis contoh gila mencari kerana kita mencampurkan sehingga 801 01:01:44,000 --> 01:01:47,000 rentetan dan integer seluruh tempat. 802 01:01:47,000 --> 01:01:50,000 Tiada perintah yang sebenar kepada pelbagai ini. 803 01:01:50,000 --> 01:01:55,000 Maksud saya, kita boleh memerintahkan segala-galanya dalam susunan abjad oleh kunci. 804 01:01:55,000 --> 01:01:57,000 Kita boleh memerintahkan segala-galanya abjad oleh nilai. 805 01:01:57,000 --> 01:02:00,000 >> Kita boleh cuba dan mengambil kira bahawa beberapa rentetan, beberapa ints, 806 01:02:00,000 --> 01:02:03,000 dan kita boleh cuba dan menukar mereka semua jenis yang sama dan melihat apa yang berlaku, 807 01:02:03,000 --> 01:02:09,000 atau kita boleh menganggap mereka dalam nilai di mana kita sudah memasuki mereka 808 01:02:09,000 --> 01:02:14,000 di mana kita meletakkan lelaki ini dalam pertama, lelaki ini di tempat kedua, lelaki ini di tempat ketiga, 809 01:02:14,000 --> 01:02:19,000 lelaki ini dalam keempat, dan sebagainya et. 810 01:02:19,000 --> 01:02:23,000 Mari kita lihat apa yang berlaku apabila kita menjalankan kod ini. 811 01:02:23,000 --> 01:02:29,000 Jika kita tatal ke bawah dan melakukan perkara yang sama perkara, 812 01:02:29,000 --> 01:02:31,000 dan di sini ia bukan mencetak barisan baru. 813 01:02:31,000 --> 01:02:35,000 Apabila ia membaca perkara keluar fail ia termasuk barisan baru dalam nilai, 814 01:02:35,000 --> 01:02:38,000 yang mengapa ia dicetak dengan baik, sedangkan di sini ia tidak, 815 01:02:38,000 --> 01:02:40,000 jadi itulah mengapa segala-galanya smushed bersama-sama. 816 01:02:40,000 --> 01:02:44,000 Mari kita tambahkan baris yang baru hanya untuk membuat perkara-perkara yang baik. 817 01:02:44,000 --> 01:02:51,000 Mari kita jalankan lagi ia, dan sebagainya di sini 818 01:02:51,000 --> 01:02:54,000 melihat apa yang berlaku. 819 01:02:54,000 --> 01:03:00,000 Ia dicetak segala-galanya dalam perintah itu di mana kita meletakkan ia ke dalam array. 820 01:03:00,000 --> 01:03:10,000 Ia tidak memelihara perintah dalam erti kata itu. 821 01:03:10,000 --> 01:03:15,000 >> Akan kembali kepada masalah ini unik 822 01:03:15,000 --> 01:03:20,000 di mana kita mahu menjadi mampu untuk melelar lebih fail, 823 01:03:20,000 --> 01:03:24,000 dan kami akan memberikan some_file.txt, 824 01:03:24,000 --> 01:03:27,000 dan kita pergi untuk melelar lebih seperti ini. 825 01:03:27,000 --> 01:03:31,000 Kami berkata bahawa kita mahu menggunakan array untuk memastikan bahawa kita akan mendapat semua 826 01:03:31,000 --> 01:03:36,000 garis unik keluar dari sana, dan kita boleh melakukan yang benar-benar mudah 827 01:03:36,000 --> 01:03:49,000 dengan hanya menyimpan dalam pelbagai bahawa kita sudah tentu mengisytiharkan luar skop gelung, 828 01:03:49,000 --> 01:03:55,000 dan kita berkata bahawa jika kita menggunakan baris dalam fail sebagai kunci dalam pelbagai kami 829 01:03:55,000 --> 01:03:59,000 jika kita memasuki garis pendua kita akan mengatasi nilai sebelumnya. 830 01:03:59,000 --> 01:04:08,000 Ia tidak pernah mustahil untuk mempunyai 2 kunci yang sama dalam pelbagai sama. 831 01:04:08,000 --> 01:04:13,000 Kita boleh berbuat demikian. 832 01:04:13,000 --> 01:04:17,000 Kami akan menghilangkan kenyataan echo ini di sini. 833 01:04:17,000 --> 01:04:24,000 Di sini kita menyimpan baris dalam fail dalam pelbagai kami 834 01:04:24,000 --> 01:04:28,000 menggunakan dirinya sebagai kunci. 835 01:04:28,000 --> 01:04:32,000 Tiada apa-apa kepadanya, dan ia ternyata bahawa kita tidak perlu kunci ini. 836 01:04:32,000 --> 01:04:38,000 Kita tidak perlu bahawa saya berubah-ubah. 837 01:04:38,000 --> 01:04:43,000 Pada ketika ini, jika kita adalah untuk melakukan satu lagi gelung foreach 838 01:04:43,000 --> 01:04:48,000 dan kita gelung lebih arr setiap 839 01:04:48,000 --> 01:04:56,000 dan garis kini jika kita echo-oops, maaf. 840 01:04:56,000 --> 01:05:00,000 Kita tidak boleh menggunakan koma. Kita perlu menggunakan ini sebagai kata kunci. 841 01:05:00,000 --> 01:05:05,000 Sekarang jika kita echo garis kita harus mendapatkan semua perkataan yang unik dalam fail. 842 01:05:05,000 --> 01:05:10,000 Jika kita pergi sehingga some_file.txt, 843 01:05:10,000 --> 01:05:19,000 dan katakan kita lakukan epal, pisang, epal, epal, pisang, 844 01:05:19,000 --> 01:05:22,000 jika kita sedang mencetak semua perkataan yang unik dalam fail ini kita hanya perlu mendapatkan 845 01:05:22,000 --> 01:05:30,000 epal dan pisang untuk mencetak. 846 01:05:30,000 --> 01:05:36,000 Jika kita menyimpan ini, sekarang di sini kita akan zoom kembali dalam, 847 01:05:36,000 --> 01:05:44,000 unique.php php, dan ta-da. 848 01:05:44,000 --> 01:05:51,000 Kami telah berjaya uniqued fail. 849 01:05:51,000 --> 01:05:55,000 >> Bahagian akhir masalah ini meminta anda untuk menyelesaikan pelbagai ini sebelum anda dicetak keluar 850 01:05:55,000 --> 01:05:58,000 kerana dalam contoh mudah ini bahawa kita baru sahaja dilakukan 851 01:05:58,000 --> 01:06:04,000 kita bernasib baik dalam erti kata bahawa fail 852 01:06:04,000 --> 01:06:06,000 kita lakukan ini contoh yang tersusun dengan epal dan pisang. 853 01:06:06,000 --> 01:06:08,000 Ia telah disusun. 854 01:06:08,000 --> 01:06:19,000 Tetapi menggunakan fungsi apapun yang mudah anda boleh menyusun pelbagai, yang cukup bagus. 855 01:06:19,000 --> 01:06:24,000 Perkara terakhir yang saya mahu bercakap dengan anda semua tentang benar-benar cepat 856 01:06:24,000 --> 01:06:31,000 adalah bahawa ini jenis PHP adalah semua baik dan baik, dan ia sangat berguna 857 01:06:31,000 --> 01:06:43,000 untuk tahu bagaimana untuk melakukannya jika anda pernah perlu untuk melakukan sedikit, perkara yang cepat programatik. 858 01:06:43,000 --> 01:06:48,000 Sebagai contoh, jika saya perlu untuk menulis program itu, berkata, 859 01:06:48,000 --> 01:06:53,000 meletakkan semua orang kepada bahagian-bahagian yang saya tidak akan pergi dan menulis di C. 860 01:06:53,000 --> 01:06:55,000 Ia akan menjadi panjang. 861 01:06:55,000 --> 01:06:57,000 Ia akan menjadi jenis sakit, terutamanya jika terdapat fail yang terlibat, 862 01:06:57,000 --> 01:07:00,000 hanya kerana anda semua telah dilihat. 863 01:07:00,000 --> 01:07:05,000 Ia begitu baik bahawa hanya dengan kod ini banyak di sini 864 01:07:05,000 --> 01:07:08,000 kita mampu untuk merobek melalui fail, tarik keluar semua nilai-nilai yang unik 865 01:07:08,000 --> 01:07:11,000 dan mencetak mereka keluar. 866 01:07:11,000 --> 01:07:16,000 >> Walau bagaimanapun, bagi tugasan anda, untuk projek-projek anda, 867 01:07:16,000 --> 01:07:20,000 jika anda membina laman web dengan PHP kuasa adalah bahawa 868 01:07:20,000 --> 01:07:25,000 kita menjalankan fail PHP kita melalui penterjemah ini, 869 01:07:25,000 --> 01:07:29,000 dan jurubahasa memproses segala-galanya di dalam tag PHP, 870 01:07:29,000 --> 01:07:34,000 meninggalkan segala-galanya tidak disentuh dan meludah keluar keputusan. 871 01:07:34,000 --> 01:07:40,000 Kita boleh melakukan ini untuk membina HTML programatik. 872 01:07:40,000 --> 01:07:46,000 Sekarang, jika kita kembali kepada spesifikasi, masalah terakhir dalam spesifikasi 873 01:07:46,000 --> 01:07:56,000 bercakap tentang idea ini kepekatan 874 01:07:56,000 --> 01:08:01,000 dan mewujudkan menu drop-down, 875 01:08:01,000 --> 01:08:06,000 yang anda mungkin atau mungkin tidak mahu lakukan, bergantung kepada apa projek akhir anda lakukan, 876 01:08:06,000 --> 01:08:13,000 yang membolehkan pengguna untuk memilih dari senarai semua kepekatan yang mungkin 877 01:08:13,000 --> 01:08:15,000 kepekatan mereka. 878 01:08:15,000 --> 01:08:21,000 Sekarang, ini adalah jenis sakit untuk menaip keluar ini 879 01:08:21,000 --> 01:08:25,000 dan perlu melakukan semua ini secara manual, terutama apabila anda perlu memastikan 880 01:08:25,000 --> 01:08:28,000 bahawa anda mempunyai semua kurungan sudut di tempat yang betul dan semua petikan di tempat yang betul, 881 01:08:28,000 --> 01:08:34,000 jadi dengan PHP, anda boleh melakukan ini programatik, dan anda boleh melakukan ini benar-benar cepat. 882 01:08:34,000 --> 01:08:36,000 >> Mari kita lihat bagaimana untuk melakukan ini. 883 01:08:36,000 --> 01:08:42,000 Kami akan membuka fail baru. 884 01:08:42,000 --> 01:08:46,000 Kami akan meletakkan dalam tags PHP kita. 885 01:08:46,000 --> 01:08:53,000 Kami akan memanggilnya concentrations.php, 886 01:08:53,000 --> 01:08:58,000 dan kini apabila anda melakukan ini, jenis perkara yang baik untuk berfikir tentang 887 01:08:58,000 --> 01:09:02,000 apabila anda cuba untuk campuran dan perlawanan PHP dan HTML anda 888 01:09:02,000 --> 01:09:08,000 memikirkan, okay, apakah bahagian yang saya mahu programatik menjana? 889 01:09:08,000 --> 01:09:11,000 Apakah bahagian yang saya programatik boleh menjana? 890 01:09:11,000 --> 01:09:17,000 Ia adalah benar bahawa anda boleh melakukan semua HTML anda 891 01:09:17,000 --> 01:09:19,000 di dalam blok PHP. 892 01:09:19,000 --> 01:09:24,000 Anda boleh echo semua HTML sebagai rentetan. 893 01:09:24,000 --> 01:09:30,000 Sebagai contoh, jika saya mahu mula melakukan tag pilih dalam PHP 894 01:09:30,000 --> 01:09:46,000 Yang boleh saya katakan gema, mengatakan pilih nama kepekatan =, 895 01:09:46,000 --> 01:09:49,000 dan kemudian turun di bawah saya boleh mempunyai satu lagi tag gema 896 01:09:49,000 --> 01:09:57,000 atau gema lain dipanggil menutup pilih. 897 01:09:57,000 --> 01:10:00,000 Ini adalah satu cara untuk melakukannya kerana apa ini benar-benar akan melakukan 898 01:10:00,000 --> 01:10:09,000 mencetak rentetan ini apabila ia berjalan melalui jurubahasa PHP, 899 01:10:09,000 --> 01:10:12,000 jadi hasilnya akan HTML. 900 01:10:12,000 --> 01:10:18,000 Jika saya simpan fail ini kerana ia adalah sekarang 901 01:10:18,000 --> 01:10:24,000 dan saya menjalankan concentrations.php php 902 01:10:24,000 --> 01:10:26,000 melihat apa yang saya dapat. 903 01:10:26,000 --> 01:10:30,000 Saya mendapat tag ini terbuka pilih dekat. 904 01:10:30,000 --> 01:10:36,000 >> Jika saya adalah untuk melakukan ini dan saya adalah untuk menyelamatkan keputusan ini ke fail, 905 01:10:36,000 --> 01:10:45,000 berkata, concentrations.html-tunggu, ia kelihatan seperti l telah pergi ke sampingan yang lain- 906 01:10:45,000 --> 01:11:02,000 kini jika saya membuka sini concentrations.html anda lihat saya mempunyai fail HTML yang sah. 907 01:11:02,000 --> 01:11:05,000 Adakah yang jenis pelik? 908 01:11:05,000 --> 01:11:09,000 Kami menggunakan PHP untuk mencipta HTML, mewujudkan HTML yang sah. 909 01:11:09,000 --> 01:11:13,000 Cara kita lakukan ialah kita hanya mempunyai cetakan PHP 910 01:11:13,000 --> 01:11:16,000 HTML yang kita mahu ia untuk mencetak. 911 01:11:16,000 --> 01:11:20,000 Ini adalah benar-benar bagaimana laman web PHP bekerja. 912 01:11:20,000 --> 01:11:24,000 Apabila anda melawat sebuah laman web yang menghantar anda kepada sesuatu seperti 913 01:11:24,000 --> 01:11:30,000 sesuatu, sesuatu, sesuatu dot com slash index.php 914 01:11:30,000 --> 01:11:33,000 komputer benar-benar memanggil index.php, 915 01:11:33,000 --> 01:11:38,000 berjalan melalui jurubahasa PHP, dan apa-apa sampah keluar 916 01:11:38,000 --> 01:11:49,000 ia menghantar kembali ke penyemak imbas dan berkata hey, pelayar, mentafsirkan ini sebagai HTML. 917 01:11:49,000 --> 01:11:54,000 Perkara yang baik adalah bahawa ia boleh menjadi sakit untuk sentiasa menulis echo, echo, echo, echo 918 01:11:54,000 --> 01:11:59,000 dan sertakan segala-galanya dalam petikan seperti ini, jadi jika anda mahu menulis 919 01:11:59,000 --> 01:12:04,000 HTML yang akan menjadi statik diri anda boleh melakukannya seperti ini, 920 01:12:04,000 --> 01:12:16,000 meletakkan ia di luar, tutup, 921 01:12:16,000 --> 01:12:21,000 dan kemudian di sini anda hanya diletakkan di dalam tag PHP yang anda tahu 922 01:12:21,000 --> 01:12:26,000 anda mahu programatik menjana, dan dalam kes ini ia adalah orang-orang tags pilihan 923 01:12:26,000 --> 01:12:31,000 yang sakit untuk menjana. 924 01:12:31,000 --> 01:12:37,000 >> Sebagai contoh, kita boleh menjana tags pilihan seribu 925 01:12:37,000 --> 01:12:48,000 dengan melakukan sesuatu seperti ini, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 dan berkata nilai pilihan echo = $-Oop, saya tidak boleh berbuat demikian. 927 01:13:00,000 --> 01:13:03,000 Nah, mari kita mencubanya dan lihat apa yang berlaku. 928 01:13:03,000 --> 01:13:22,000 $ I dan kemudian mengatakan $ i 01:13:27,000 Bukannya perlu menaip bahawa tag pilihan seribu kali yang berbeza 930 01:13:27,000 --> 01:13:33,000 Saya menggunakan kod PHP untuk menjana secara automatik, programatik. 931 01:13:33,000 --> 01:13:38,000 Jenis bagus. Yeah. 932 01:13:38,000 --> 01:13:41,000 Saya ingat ini disebut sama ada dalam ceramah atau Walkthrough, 933 01:13:41,000 --> 01:13:43,000 tetapi apa perbezaan antara tanda petikan, 934 01:13:43,000 --> 01:13:45,000 orang-orang yang normal dan perkara-perkara yang tunggal? 935 01:13:45,000 --> 01:13:49,000 Itulah sebenarnya sesuatu yang saya lakukan salah di sini bahawa saya akan menunjukkan kepada anda. 936 01:13:49,000 --> 01:13:52,000 Petikan tunggal tidak membenarkan mana-mana aksara khas, 937 01:13:52,000 --> 01:13:57,000 jadi segala-galanya di dalam rentetan tunggal yang dipetik ditafsirkan secara literal. 938 01:13:57,000 --> 01:14:02,000 Jika saya terpaksa \ n dalam petikan tunggal dan saya menyimpan ini, sebagai contoh, 939 01:14:02,000 --> 01:14:07,000 dan sekarang saya pergi ke sini dan jalankan ia- 940 01:14:07,000 --> 01:14:12,000 oops, di mana saya hendak pergi? 941 01:14:12,000 --> 01:14:19,000 Oh, ia kerana saya terlupa $. 942 01:14:19,000 --> 01:14:25,000 >> Sekarang, jika saya membuka sebenarnya, di sini, kita akan menyingkirkan menaip ia ke fail. 943 01:14:25,000 --> 01:14:27,000 Kami hanya akan membaca. 944 01:14:27,000 --> 01:14:34,000 Di sini anda melihat bahawa saya telah mendapat ini literal \ n dalam string, seperti tidak sejajar baru yang sebenar, 945 01:14:34,000 --> 01:14:38,000 dan begitu juga, bukan sebenarnya penentudalaman nilai ini berubah-ubah 946 01:14:38,000 --> 01:14:42,000 ia memberikan saya $ i sendiri, yang merupakan jenis sakit. 947 01:14:42,000 --> 01:14:46,000 Cara sekitar ini adalah untuk menggunakan tanda petikan berganda, 948 01:14:46,000 --> 01:14:52,000 dan kemudian apabila anda menggunakan tanda petikan berganda ia akan sebenarnya 949 01:14:52,000 --> 01:14:56,000 betul menyisipkan nilai-nilai semua pembolehubah ini di sini 950 01:14:56,000 --> 01:14:59,000 dan juga mengiktiraf ini \ n untuk menjadi barisan baru bahawa ia adalah 951 01:14:59,000 --> 01:15:02,000 dan tidak \ n. 952 01:15:02,000 --> 01:15:07,000 Menggunakan yang tunggal adalah baik apabila anda mempunyai 953 01:15:07,000 --> 01:15:10,000 watak-watak yang mungkin ditafsirkan sebagai aksara khas kerana maka anda tidak perlu 954 01:15:10,000 --> 01:15:15,000 melarikan diri mereka sentiasa. 955 01:15:15,000 --> 01:15:18,000 Perkara yang boleh mendapatkan kotor, dan sering cara yang saya lakukan, 956 01:15:18,000 --> 01:15:24,000 hanya untuk membuat perkara yang mudah, adalah bahawa jika saya akan mempunyai apa-apa 957 01:15:24,000 --> 01:15:31,000 HTML seperti dalam kod saya saya akan termasuk edit dalam petikan tunggal 958 01:15:31,000 --> 01:15:36,000 dan kemudian menggunakan pengendali dinamika 959 01:15:36,000 --> 01:15:43,000 untuk menyatukan pembolehubah masuk 960 01:15:43,000 --> 01:15:47,000 Ini adalah satu lagi cara melakukannya 961 01:15:47,000 --> 01:15:52,000 di mana kita telah mendapat titik yang akan menyambung ini adalah rentetan 962 01:15:52,000 --> 01:15:56,000 dengan ini dengan ini dengan ini, 963 01:15:56,000 --> 01:15:59,000 dan sekarang saya tidak perlu untuk melarikan diri ini petikan berganda. 964 01:15:59,000 --> 01:16:02,000 Saya tidak mempunyai untuk menggunakan lelaki ini untuk melarikan diri. 965 01:16:02,000 --> 01:16:08,000 Mereka benar-benar akan dicetak sebagai tanda petikan berganda dan kemudian lelaki ini di sini. 966 01:16:08,000 --> 01:16:11,000 Ini merupakan satu lagi cara mencampurkan semua bersama-sama. 967 01:16:11,000 --> 01:16:14,000 >> [Pelajar] Juga, apabila anda bergema gettype terdapat tiada tanda petikan pada semua. 968 01:16:14,000 --> 01:16:22,000 Betul, jadi echo adalah jenis yang istimewa dalam erti kata bahawa anda tidak perlu kurungan. 969 01:16:22,000 --> 01:16:29,000 Anda tidak perlu mempunyai sebutharga menandakan semestinya sekitar pembolehubah, 970 01:16:29,000 --> 01:16:37,000 seperti ia adalah sah untuk mengatakan echo $ i, dan ia akan mentafsirkan ini sebagai rentetan. 971 01:16:37,000 --> 01:16:44,000 Ia akan melakukan pelakon, jadi kita boleh melakukan ini, dan itulah sah juga, tetapi kita tidak memerlukannya. 972 01:16:44,000 --> 01:16:48,000 Ia adalah pilihan. 973 01:16:48,000 --> 01:16:53,000 Dalam set masalah minggu ini melihat keluar untuk banyak jenis ini barangan 974 01:16:53,000 --> 01:16:58,000 di mana anda pergaulan dan padanan HTML dengan PHP 975 01:16:58,000 --> 01:17:08,000 seperti ini, dan sekarang jika kita skrol kembali dan kami menjalankan ini 976 01:17:08,000 --> 01:17:13,000 kita dapat melihat bahawa kita mempunyai sekumpulan keseluruhan nilai opsyen 977 01:17:13,000 --> 01:17:15,000 yang hanya mendapat dicetak. 978 01:17:15,000 --> 01:17:20,000 Kami mempunyai semua ini HTML yang mendapat dihasilkan benar-benar cepat untuk kita. 979 01:17:20,000 --> 01:17:22,000 Saya akan meninggalkan ia sebagai latihan. 980 01:17:22,000 --> 01:17:24,000 Ia adalah sangat serupa dengan membaca fail yang kita lakukan sebelum ini. 981 01:17:24,000 --> 01:17:31,000 >> Terdapat fail concentrations.txt yang anda boleh tarik turun dari CDN, 982 01:17:31,000 --> 01:17:34,000 dan anda boleh membukanya menggunakan helah yang sama foreach yang kita lakukan sebelum ini, 983 01:17:34,000 --> 01:17:39,000 dan foreach anda hanya perlu echo satu pilihan dan plug dalam 984 01:17:39,000 --> 01:17:44,000 nilai-nilai yang sesuai, kunci yang sesuai dan indeks, 985 01:17:44,000 --> 01:17:49,000 dan kemudian anda mendapatkan drop down yang benar-benar mencipta 986 01:17:49,000 --> 01:17:54,000 programatik untuk anda semua kepekatan yang berbeza di Harvard. 987 01:17:54,000 --> 01:17:57,000 Satu perkara yang berguna untuk memiliki. 988 01:17:57,000 --> 01:18:02,000 Terdapat banyak barangan tatarajah bagi tugasan ini. 989 01:18:02,000 --> 01:18:07,000 Jika anda telah tidak dilakukan ia sudah mengambil setengah jam seterusnya, jam, 990 01:18:07,000 --> 01:18:10,000 sedikit masa malam pasti pasti, 991 01:18:10,000 --> 01:18:14,000 berjalan melalui spec set masalah, 992 01:18:14,000 --> 01:18:20,000 lihat apa yang berlaku dengan menubuhkan vhosts, tuan rumah tempatan, semua barangan itu. 993 01:18:20,000 --> 01:18:24,000 Salah satu perkara yang menunjukkan sekarang adalah bahawa 994 01:18:24,000 --> 01:18:30,000 dalam set masalah yang paling kita telah pergi ke dalam folder Dropbox anda 995 01:18:30,000 --> 01:18:34,000 dan kemudian memuat turun fail zip set masalah dan unzipping ia. 996 01:18:34,000 --> 01:18:36,000 Untuk set masalah ini anda tidak mahu. 997 01:18:36,000 --> 01:18:40,000 Anda mahu pergi ke dalam direktori vhosts ini. 998 01:18:40,000 --> 01:18:45,000 Anda akan mahu pergi ke vhosts dan pergi ke dalam direktori tuan rumah tempatan di dalamnya, 999 01:18:45,000 --> 01:18:50,000 dan ini adalah di mana anda akan mahu untuk merobohkan fail zip, 1000 01:18:50,000 --> 01:18:55,000 unzip, dan bersedia untuk pergi. 1001 01:18:55,000 --> 01:18:57,000 Anda akan perlu mengikuti langkah-langkah rapat. 1002 01:18:57,000 --> 01:19:02,000 >> Jika anda mempunyai sebarang soalan, menghantar e-mel, pos Bincangkan, datang waktu pejabat. 1003 01:19:02,000 --> 01:19:08,000 Thanks guys. Minggu depan kita akan mempunyai sesi kajian untuk kuiz. 1004 01:19:08,000 --> 01:19:12,000 Nikmati set masalah terakhir anda. Saya berharap ia semua pergi benar-benar baik. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]