1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> Doug LLOYD: Jadi kita sudah melakukan banyak pekerjaan di C, 3 00:00:07,370 --> 00:00:09,536 dan C adalah benar-benar keren bahasa karena memberi Anda 4 00:00:09,536 --> 00:00:12,840 kemampuan untuk menyelam benar-benar tingkat rendah ke dalam program Anda. 5 00:00:12,840 --> 00:00:16,810 Kita bisa melakukan hal-hal sebagai benar-benar menit memanipulasi 6 00:00:16,810 --> 00:00:18,800 byte individu memori. 7 00:00:18,800 --> 00:00:21,420 Ingat bahwa pointer benar memungkinkan kita fleksibilitas itu. 8 00:00:21,420 --> 00:00:25,260 >> Tapi apakah kita selalu perlu memiliki tingkat fine-grain detail 9 00:00:25,260 --> 00:00:26,820 dalam program kita? 10 00:00:26,820 --> 00:00:28,210 Mungkin tidak, kan? 11 00:00:28,210 --> 00:00:30,376 Dan jika kita akan memiliki trade-off antara menjadi 12 00:00:30,376 --> 00:00:32,911 mampu melakukan benar-benar, benar-benar hal menit dan benar-benar, benar-benar 13 00:00:32,911 --> 00:00:35,910 hal-hal besar yang kita tidak perlu berpikir tentang, kita tidak harus melaksanakan 14 00:00:35,910 --> 00:00:40,290 ide-ide yang sangat besar jika mereka sudah dibangun di bagi kita, 15 00:00:40,290 --> 00:00:43,980 umumnya untuk membangun besar program atau proyek-proyek besar, 16 00:00:43,980 --> 00:00:49,130 kita mungkin akan berbuat salah di sisi karena telah lebih banyak barang bahasa dibangun di 17 00:00:49,130 --> 00:00:51,300 bagi kita, daripada harus hal-hal tingkat rendah. 18 00:00:51,300 --> 00:00:53,970 Dan di situlah PHP benar-benar datang di. 19 00:00:53,970 --> 00:00:58,200 >> Sekarang, salah satu alasan yang kami ajarkan PHP di CS50 20 00:00:58,200 --> 00:01:01,020 adalah bahwa hal itu sangat terinspirasi oleh C. Dan pada kenyataannya, menurut pendapat saya, 21 00:01:01,020 --> 00:01:05,140 sebenarnya ada dua bahasa progenitor yang 22 00:01:05,140 --> 00:01:08,200 sangat umum saat ini. 23 00:01:08,200 --> 00:01:10,110 C dan LISP. 24 00:01:10,110 --> 00:01:13,280 Dan mereka bahasa progenitor karena setiap pemrograman modern lainnya 25 00:01:13,280 --> 00:01:17,380 bahasa yang telah dikembangkan sejak itu terinspirasi 26 00:01:17,380 --> 00:01:20,330 oleh satu atau sintaksis lainnya. 27 00:01:20,330 --> 00:01:26,160 PHP sangat mirip sintaksis untuk C, sedangkan bahasa seperti Scheme, 28 00:01:26,160 --> 00:01:27,900 misalnya, yang Anda mungkin pernah mendengar tentang, 29 00:01:27,900 --> 00:01:32,070 yang sangat terinspirasi oleh bahasa disebut LISP, yang merupakan bahasa yang lebih tua. 30 00:01:32,070 --> 00:01:34,220 >> Jadi alasan kita ajarkan PHP di CS50 adalah bahwa, 31 00:01:34,220 --> 00:01:37,730 dengan mengetahui C sebagai fundamental seperti yang Anda lakukan pada saat ini, 32 00:01:37,730 --> 00:01:41,280 mengambil PHP, yang memberikan Anda kemampuan untuk melakukan hal-hal tingkat yang lebih tinggi 33 00:01:41,280 --> 00:01:44,710 dari C tidak, tidak yang banyak rintangan, 34 00:01:44,710 --> 00:01:48,230 karena Anda sudah memiliki Ide dasar dari sintaks. 35 00:01:48,230 --> 00:01:50,590 C telah sekitar selama hampir 45 tahun pada saat ini. 36 00:01:50,590 --> 00:01:52,780 PHP telah sekitar selama sekitar 20 tahun. 37 00:01:52,780 --> 00:01:57,080 Dan dalam 25 tahun di antara, programmer 38 00:01:57,080 --> 00:02:01,540 ditentukan bahwa mereka akan banyak suka memiliki kemampuan yang lebih tinggi, 39 00:02:01,540 --> 00:02:04,970 dan kesalahan dan perjuangan dari 20 tahun di antara 40 00:02:04,970 --> 00:02:08,210 menyebabkan PHP dan bahasa modern lainnya. 41 00:02:08,210 --> 00:02:11,039 >> PHP pilihan besar bahasa untuk perangkat lunak 42 00:02:11,039 --> 00:02:14,042 yang allow-- untuk software itu-- di mana Anda 43 00:02:14,042 --> 00:02:16,250 perlu melakukan hal-hal yang di C sebenarnya rumit. 44 00:02:16,250 --> 00:02:18,480 Jadi misalnya, bekerja dengan string di C 45 00:02:18,480 --> 00:02:21,709 sangat rumit, karena seperti yang kita tahu, string di C 46 00:02:21,709 --> 00:02:23,250 benar-benar hanya array karakter. 47 00:02:23,250 --> 00:02:25,230 Ini bukan tipe data built-in. 48 00:02:25,230 --> 00:02:28,220 Atau mungkin lebih mendasar, sesuatu yang kita bahkan tidak menutupi di C, 49 00:02:28,220 --> 00:02:30,360 bagaimana jika Anda perlu untuk melakukan beberapa jaringan komputer? 50 00:02:30,360 --> 00:02:30,860 Baiklah? 51 00:02:30,860 --> 00:02:34,920 >> C memiliki kemampuan untuk melakukannya, tapi begitu misterius dan sangat sulit untuk benar-benar melakukan. 52 00:02:34,920 --> 00:02:37,580 Bukankah lebih baik jika bahasa memiliki, cara mudah built-in 53 00:02:37,580 --> 00:02:38,910 untuk menerapkan jaringan? 54 00:02:38,910 --> 00:02:43,420 Dan PHP adalah bahasa yang membuat itu, atau memfasilitasi itu, agak sedikit lebih. 55 00:02:43,420 --> 00:02:47,740 Seperti yang saya katakan, PHP sangat terinspirasi berat oleh C. sintaks ini sangat mirip. 56 00:02:47,740 --> 00:02:51,760 Dan sehingga harus mudah-mudahan membuat transisi dari satu ke yang lain 57 00:02:51,760 --> 00:02:54,710 sedikit lebih lembut daripada beberapa bahasa lain mungkin. 58 00:02:54,710 --> 00:02:58,800 >> Untuk mulai menulis PHP, hanya membuka file dengan ekstensi file php. 59 00:02:58,800 --> 00:03:00,670 Secara teknis ini bukan sebenarnya diperlukan, 60 00:03:00,670 --> 00:03:04,495 tetapi jika Anda ingin hal-hal seperti sintaks menyoroti di IDE, sehingga jenis yang 61 00:03:04,495 --> 00:03:07,620 nama, atau nama variabel, fungsi, Anda tahu, kata kunci dari bahasa 62 00:03:07,620 --> 00:03:10,090 disorot dalam warna tertentu, biasanya Anda 63 00:03:10,090 --> 00:03:14,020 ingin nama file Anda dengan ekstensi file tertentu. 64 00:03:14,020 --> 00:03:18,430 Jadi kita sudah bernama file kita dengan .php sebuah ekstensi, tapi kemudian juga dengan PHP, 65 00:03:18,430 --> 00:03:23,310 semua kode PHP kita menulis dalam File harus tertutup dalam PHP ini 66 00:03:23,310 --> 00:03:25,190 pembatas yang kita lihat di sini di layar. 67 00:03:25,190 --> 00:03:27,910 Angle braket? Php untuk memulai. 68 00:03:27,910 --> 00:03:30,860 Kemudian kita menulis semua PHP kami kode yang kita inginkan di antara. 69 00:03:30,860 --> 00:03:32,260 Dan kemudian ? 70 00:03:32,260 --> 00:03:34,710 angle bracket untuk menutup. 71 00:03:34,710 --> 00:03:37,170 >> Jika kita tidak melakukan ini, maka apa yang akan terjadi? 72 00:03:37,170 --> 00:03:38,170 Itu tidak akan crash. 73 00:03:38,170 --> 00:03:39,410 Ini tidak akan benar-benar merusak program kami. 74 00:03:39,410 --> 00:03:41,440 Tapi itu tidak akan memiliki efek yang kita inginkan. 75 00:03:41,440 --> 00:03:44,540 Apa yang akan terjadi, benar-benar, adalah bahwa ketika kita mencoba dan menjalankan program ini, 76 00:03:44,540 --> 00:03:50,330 semuanya tidak antara pembatas akan dicetak verbatim. 77 00:03:50,330 --> 00:03:52,210 Ini tidak akan benar-benar melaksanakan kode, 78 00:03:52,210 --> 00:03:56,010 itu akan hanya mencetaknya verbatim. 79 00:03:56,010 --> 00:03:57,320 >> Sekarang mengapa ini terjadi? 80 00:03:57,320 --> 00:04:00,416 Jadi C adalah apa yang dikenal sebagai bahasa yang dikompilasi. 81 00:04:00,416 --> 00:04:03,040 Anda mungkin akrab dengan langkah pembuatan program Anda, 82 00:04:03,040 --> 00:04:07,820 memutar file c dan H file menjadi executable tunggal dengan make, 83 00:04:07,820 --> 00:04:11,130 khususnya menggunakan Dentang sebagai compiler kami. 84 00:04:11,130 --> 00:04:13,030 PHP, meskipun, tidak memiliki setara ini. 85 00:04:13,030 --> 00:04:15,600 PHP adalah apa yang disebut ditafsirkan bahasa. 86 00:04:15,600 --> 00:04:16,760 Dan apa artinya? 87 00:04:16,760 --> 00:04:20,680 >> Nah, itu berarti kita tidak perlu mengkonversi kode sumber untuk nol dan satu 88 00:04:20,680 --> 00:04:21,470 sebelumnya. 89 00:04:21,470 --> 00:04:23,900 Sebaliknya, ada sebuah program, yang juga disebut 90 00:04:23,900 --> 00:04:29,771 PHP, yang memahami PHP dan dapat semacam membuatnya dengan cepat. 91 00:04:29,771 --> 00:04:32,520 Itu tidak benar-benar persis akurat, tapi itu analogi yang cukup baik 92 00:04:32,520 --> 00:04:33,760 dari apa yang terjadi. 93 00:04:33,760 --> 00:04:37,230 Ini menafsirkan mereka nol dan orang-orang dengan cepat. 94 00:04:37,230 --> 00:04:40,160 Dan jika tidak tahu cara mengolah sesuatu, 95 00:04:40,160 --> 00:04:42,800 jika tidak tahu bagaimana Proses PHP, Anda mungkin 96 00:04:42,800 --> 00:04:44,680 ingin menempatkan teks yang di sana, kan? 97 00:04:44,680 --> 00:04:48,960 >> Anda mungkin ingin menempatkan kode di ada, bahkan jika itu bukan antara PHP-- 98 00:04:48,960 --> 00:04:50,035 pembatas PHP. 99 00:04:50,035 --> 00:04:51,910 Tapi-- sehingga tidak akan untuk menghapusnya untuk Anda, 100 00:04:51,910 --> 00:04:53,576 itu hanya akan dasarnya membuangnya. 101 00:04:53,576 --> 00:04:55,550 Jadi itu akan mencetak keluar ke layar. 102 00:04:55,550 --> 00:04:57,150 >> Hal ini tampaknya seperti itu adalah buruk hal, tapi sebenarnya ini 103 00:04:57,150 --> 00:04:58,220 akan menjadi benar-benar hal yang baik, seperti yang akan kita 104 00:04:58,220 --> 00:05:00,390 lihat ketika kita berbicara tentang Pengembangan web PHP, 105 00:05:00,390 --> 00:05:04,010 karena itu berarti kita bisa menyelingi PHP dan HTML. 106 00:05:04,010 --> 00:05:06,640 Kita bisa menggunakannya bersama-sama untuk membuat halaman web lebih dinamis. 107 00:05:06,640 --> 00:05:10,650 Tapi lebih pada bahwa dalam video di web PHP pengembangan. 108 00:05:10,650 --> 00:05:12,021 >> Jadi apa adalah sintaks dari PHP? 109 00:05:12,021 --> 00:05:13,520 Itulah yang video ini adalah semua tentang. 110 00:05:13,520 --> 00:05:14,850 Mari kita bicara tentang hal itu. 111 00:05:14,850 --> 00:05:16,490 >> Jadi untuk memulai, variabel. 112 00:05:16,490 --> 00:05:18,030 Variabel PHP ada. 113 00:05:18,030 --> 00:05:20,067 Hanya ada dua besar perbedaan dari C. 114 00:05:20,067 --> 00:05:21,900 Yang pertama adalah bahwa ada ada jenis specifier. 115 00:05:21,900 --> 00:05:24,245 Kami tidak harus mengatakan int, char, float, semua itu. 116 00:05:24,245 --> 00:05:25,620 Kami tidak perlu melakukan itu lagi. 117 00:05:25,620 --> 00:05:26,810 PHP adalah bahasa modern. 118 00:05:26,810 --> 00:05:28,910 Hal ini dapat mencari tahu apa yang Anda mencoba untuk melakukan atau membuat terbaik 119 00:05:28,910 --> 00:05:30,451 menebak untuk apa yang Anda coba lakukan. 120 00:05:30,451 --> 00:05:31,700 Jadi itu cukup bagus. 121 00:05:31,700 --> 00:05:35,330 >> Hal lain adalah bahwa semua variabel nama harus mulai dengan tanda dolar. 122 00:05:35,330 --> 00:05:36,940 Itu hanya sesuatu untuk membiasakan diri. 123 00:05:36,940 --> 00:05:39,496 Ini sedikit aneh, karena itu sehingga PHP dapat memahami 124 00:05:39,496 --> 00:05:40,870 apa variabel dan apa yang tidak. 125 00:05:40,870 --> 00:05:43,340 Jadi setiap nama variabel dimulai dengan tanda dolar. 126 00:05:43,340 --> 00:05:46,884 Jadi di C kita mungkin mengatakan sesuatu seperti ini, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Kami tidak perlu melakukan itu lagi di PHP. 128 00:05:48,550 --> 00:05:52,540 Kami hanya bisa mengatakan $ x = 54. 129 00:05:52,540 --> 00:05:55,920 Dan kita bisa mengatakan, misalnya, di C, jika kita pound-termasuk H CS50 130 00:05:55,920 --> 00:06:00,314 header file, kita bisa mengatakan String kalimat = "Ini adalah CS50." 131 00:06:00,314 --> 00:06:01,980 Kami tidak perlu melakukan itu di PHP, meskipun. 132 00:06:01,980 --> 00:06:04,865 Kami hanya bisa mengatakan $ kalimat = "Ini adalah CS50." 133 00:06:04,865 --> 00:06:08,760 Dan pada kenyataannya, string sekarang tipe data built-in PHP, 134 00:06:08,760 --> 00:06:10,950 atau lebih tepatnya PHP mengerti apa string adalah. 135 00:06:10,950 --> 00:06:15,612 Ini terpisah dari array karakter seperti itu di C. 136 00:06:15,612 --> 00:06:17,570 Semua favorit Anda pernyataan bersyarat dari C 137 00:06:17,570 --> 00:06:19,520 masih tersedia untuk Anda gunakan. 138 00:06:19,520 --> 00:06:21,140 Jadi ada transisi besar di sana. 139 00:06:21,140 --> 00:06:23,400 Kita bisa say-- kita dapat memiliki jika pernyataan seperti ini. 140 00:06:23,400 --> 00:06:28,210 jika $ y 43, atau $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Jadi itu cukup sederhana. 142 00:06:29,690 --> 00:06:31,980 Kita dapat memiliki jika dan lain. 143 00:06:31,980 --> 00:06:34,210 Kita dapat memiliki jika dan lain jika. 144 00:06:34,210 --> 00:06:36,430 >> Dan melihat sesuatu cukup bagus di sini, dan ini 145 00:06:36,430 --> 00:06:39,620 adalah semacam salah satu Keuntungan dari PHP vs C, pemberitahuan 146 00:06:39,620 --> 00:06:41,510 apa fungsi kita tidak menggunakan di sini? 147 00:06:41,510 --> 00:06:47,737 Kami menggunakan == untuk membandingkan variabel, $ nama, untuk string. 148 00:06:47,737 --> 00:06:49,070 Kita tidak bisa melakukan itu di C, kan? 149 00:06:49,070 --> 00:06:53,200 Kami harus menggunakan fungsi yang disebut StrComp atau StrEndComp atau 150 00:06:53,200 --> 00:06:54,840 sepupu terkait. 151 00:06:54,840 --> 00:06:56,980 >> Dan sudah kita lihat keuntungan ini. 152 00:06:56,980 --> 00:07:00,930 Kami tidak perlu melakukan sesuatu konyol atau mungkin unintuitive 153 00:07:00,930 --> 00:07:03,540 sebagai memanggil fungsi disebut StrComp jika saya hanya ingin menguji 154 00:07:03,540 --> 00:07:05,237 apakah suatu nilai sama dengan string. 155 00:07:05,237 --> 00:07:07,820 Aku hanya bisa menggunakan sama sederajat, seperti aku bisa melakukan hal lain. 156 00:07:07,820 --> 00:07:09,560 Jadi ada keuntungan. 157 00:07:09,560 --> 00:07:13,350 >> Kadang-kadang, dengan cara, Anda mungkin lihat lain jika sebagai satu kata, elseif. 158 00:07:13,350 --> 00:07:14,910 Dan itu OK di PHP juga. 159 00:07:14,910 --> 00:07:17,020 Jadi kadang-kadang Anda mungkin melihat bahwa. 160 00:07:17,020 --> 00:07:17,790 Ini bukan salah ketik. 161 00:07:17,790 --> 00:07:21,830 PHP benar-benar mengerti elseif. 162 00:07:21,830 --> 00:07:23,980 Saya tidak tahu mengapa mereka memutuskan untuk menerapkan itu, 163 00:07:23,980 --> 00:07:28,220 tapi seperti yang kita lihat berkali-kali seluruh video kami sejauh ini, 164 00:07:28,220 --> 00:07:30,460 kami programmer senang jika kita bisa melakukan hal-hal dengan cepat, 165 00:07:30,460 --> 00:07:33,660 sehingga menyingkirkan ruang yang tampaknya keuntungan besar. 166 00:07:33,660 --> 00:07:34,800 >> Jadi itu jika dan elseif. 167 00:07:34,800 --> 00:07:37,540 Kami juga memiliki operator terner, ingat tanda tanya usus, 168 00:07:37,540 --> 00:07:43,262 untuk formulir yang benar-benar singkat jika lain atau bersyarat bercabang. 169 00:07:43,262 --> 00:07:45,470 Dan tampaknya, dalam hal ini, apa yang kita coba lakukan di sini 170 00:07:45,470 --> 00:07:49,720 adalah menetapkan variabel $ surat benar atau salah, 171 00:07:49,720 --> 00:07:54,110 tergantung pada apakah $ var adalah karakter abjad. 172 00:07:54,110 --> 00:07:57,320 Jadi ini sangat mirip dengan isalpha bahwa kita akrab dengan dari C. 173 00:07:57,320 --> 00:07:59,010 Ini adalah semacam setara dalam PHP. 174 00:07:59,010 --> 00:08:01,550 Fungsi ini rupanya disebut ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 tapi itulah bagaimana kita melakukannya di PHP. 176 00:08:03,450 --> 00:08:08,560 Jadi semua ini akan menjadi yang, jika $ var merupakan surat, $ surat benar. 177 00:08:08,560 --> 00:08:13,820 Jika $ var tidak surat, $ surat palsu. 178 00:08:13,820 --> 00:08:15,820 >> Kami juga memiliki laporan beralih masih. 179 00:08:15,820 --> 00:08:17,870 Kita ingat mereka dari C juga. 180 00:08:17,870 --> 00:08:22,480 Di bagian paling atas ada, itu bagaimana kita lakukan sesuatu seperti get int atau mendapatkan tali. 181 00:08:22,480 --> 00:08:23,845 Jadi PHP memiliki yang dibangun di. 182 00:08:23,845 --> 00:08:25,470 Kita tidak perlu perpustakaan CS50 lagi. 183 00:08:25,470 --> 00:08:27,237 Kami hanya dapat menggunakan fungsi readline. 184 00:08:27,237 --> 00:08:29,820 Apa yang akan dilakukan adalah cetak keluar pesan, "negara Anda, 185 00:08:29,820 --> 00:08:33,820 silakan, "dan kemudian berkedip cepat menunggu pengguna untuk memasukkan 186 00:08:33,820 --> 00:08:34,739 beberapa informasi. 187 00:08:34,739 --> 00:08:36,530 Sekarang perhatikan apa lagi yang bisa kita lakukan dengan switch. 188 00:08:36,530 --> 00:08:39,105 Jika Anda telah menggunakannya sebelumnya, Anda mungkin ingat bahwa saklar 189 00:08:39,105 --> 00:08:44,960 terbatas cukup banyak untuk bilangan bulat dan karakter, tapi sekarang kita bisa menggunakan string. 190 00:08:44,960 --> 00:08:50,190 Dan pada kenyataannya, pernyataan switch di PHP cukup sedikit lebih fleksibel 191 00:08:50,190 --> 00:08:54,880 dari sepupunya dari C. 192 00:08:54,880 --> 00:08:55,380 Loops. 193 00:08:55,380 --> 00:08:58,130 Sama seperti conditional, semua favorit lama Anda masih ada. 194 00:08:58,130 --> 00:09:00,740 Kami memiliki sementara loop yang menghitung dari 1 sampai 100 dalam kasus ini. 195 00:09:00,740 --> 00:09:03,940 Kami telah melakukan sementara loop yang menghitung dari 1 sampai 100, 196 00:09:03,940 --> 00:09:06,200 dan kami memiliki untuk loop yang menghitung dari 1 sampai 100. 197 00:09:06,200 --> 00:09:07,220 Jadi tidak ada lompatan besar di sana. 198 00:09:07,220 --> 00:09:09,360 Sintaks ini cukup banyak persis sama, 199 00:09:09,360 --> 00:09:11,760 kecuali sekarang kita menggunakan variabel tanda dolar bukan 200 00:09:11,760 --> 00:09:17,260 mendeklarasikan variabel integer atau sesuatu seperti itu untuk counter kami. 201 00:09:17,260 --> 00:09:20,090 >> Di sinilah hal mendapatkan jauh lebih baik daripada C, meskipun. 202 00:09:20,090 --> 00:09:21,020 Array. 203 00:09:21,020 --> 00:09:23,020 Jadi ingat ketika kami berbicara tentang C, dalam rangka 204 00:09:23,020 --> 00:09:25,560 bagi kita untuk tumbuh dan menyusut set informasi, 205 00:09:25,560 --> 00:09:28,310 kita perlu memilah default ide ini dari sebuah linked list, 206 00:09:28,310 --> 00:09:30,780 karena array C yang tetap dalam ukuran. 207 00:09:30,780 --> 00:09:31,800 Kita tidak bisa mengecilkan mereka. 208 00:09:31,800 --> 00:09:32,930 Kami tidak bisa tumbuh mereka. 209 00:09:32,930 --> 00:09:36,074 Kami harus mengalokasikan memori dan melakukan semua kegilaan ini 210 00:09:36,074 --> 00:09:38,490 atau menggunakan daftar terkait, yang mengambil sedikit lebih banyak ruang. 211 00:09:38,490 --> 00:09:41,590 Tapi di PHP, array tidak tetap dalam ukuran lagi. 212 00:09:41,590 --> 00:09:43,240 Mereka dapat tumbuh dan mereka bisa menyusut. 213 00:09:43,240 --> 00:09:46,660 Jadi sekali lagi, ini 20 tahun yang ada antara rilis pertama dari C 214 00:09:46,660 --> 00:09:49,440 dan yang pertama rilis PHP, kami memutuskan bahwa, Anda tahu, 215 00:09:49,440 --> 00:09:51,670 itu akan benar-benar hebat jika kita bisa melakukan ini. 216 00:09:51,670 --> 00:09:54,100 Dan kami menerapkan ini. 217 00:09:54,100 --> 00:09:58,040 >> Jadi array PHP tidak tetap di ukuran, dan karena PHP tidak benar-benar 218 00:09:58,040 --> 00:10:03,090 memiliki programmer menghadap ke depan pengertian tentang jenis, 219 00:10:03,090 --> 00:10:05,110 kita dapat mencampur tipe data dalam array kita juga. 220 00:10:05,110 --> 00:10:08,100 Jadi kita bahkan tidak harus menggunakan semua bilangan bulat atau semua jalur mengambang, 221 00:10:08,100 --> 00:10:12,826 kita dapat memiliki campuran dari semua berbagai jenis dalam array tunggal. 222 00:10:12,826 --> 00:10:14,700 Mendeklarasikan array adalah cukup sederhana. 223 00:10:14,700 --> 00:10:16,116 Ini sama seperti variabel lainnya. 224 00:10:16,116 --> 00:10:20,020 $ nums = array (1, 2, 3, 4), array menjadi fungsi 225 00:10:20,020 --> 00:10:22,760 yang dibangun ke PHP yang akan membuat sebuah array untuk Anda. 226 00:10:22,760 --> 00:10:28,315 Hal ini menciptakan sebuah array dari empat nilai, angka dalam kasus ini, yang disebut $ nums. 227 00:10:28,315 --> 00:10:29,940 Dan ada lebih dari satu cara untuk melakukannya. 228 00:10:29,940 --> 00:10:32,420 Dan kita akan melihat ini banyak di PHP. 229 00:10:32,420 --> 00:10:36,380 PHP telah dikembangkan oleh banyak berbeda orang dan tumbuh dan tumbuh dan tumbuh. 230 00:10:36,380 --> 00:10:40,050 Ada biasanya tidak hanya dua atau tiga cara untuk melakukan sesuatu di PHP, 231 00:10:40,050 --> 00:10:42,170 biasanya ada seperti 10 atau 20. 232 00:10:42,170 --> 00:10:45,300 Berikut hanyalah umum cara untuk mendeklarasikan array. 233 00:10:45,300 --> 00:10:48,310 $ nums = persegi bracket 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Jadi ini semacam mirip dengan sudut C br-- notasi penjepit keriting, bukan. $ - 235 00:10:53,170 --> 00:10:58,525 atau akan int nums persegi kurung sama keriting brace 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 Dalam PHP itu $ nums = persegi kurung 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Namun kedua contoh ini di sini memberi saya array empat dalam hal ini bilangan bulat. 238 00:11:08,920 --> 00:11:10,920 >> Bagaimana jika saya ingin taktik sesuatu sekarang? 239 00:11:10,920 --> 00:11:14,760 Yah aku hanya bisa mengatakan $ nums 4, yang lagi, kami masih menghitung dari 0 sini 240 00:11:14,760 --> 00:11:17,800 PHP, akan menjadi yang kelima elemen dari array. 241 00:11:17,800 --> 00:11:18,990 Aku hanya bisa mengatakan bahwa. 242 00:11:18,990 --> 00:11:22,860 Aku tidak akan menderita seg sebuah kesalahan, karena array saya hanya 243 00:11:22,860 --> 00:11:24,337 akan tumbuh untuk mengakomodasi itu. 244 00:11:24,337 --> 00:11:25,420 Itu cukup bagus, kan? 245 00:11:25,420 --> 00:11:28,400 Dan pada kenyataannya, aku bahkan tidak perlu menentukan di mana saya ingin meletakkannya. 246 00:11:28,400 --> 00:11:31,220 Aku hanya bisa mengatakan ini dan hanya taktik itu tepat di akhir, 247 00:11:31,220 --> 00:11:34,099 atau aku bisa bahkan hanya mengatakan $ nums 20 atau 1000. 248 00:11:34,099 --> 00:11:35,140 Itu tidak terlalu penting. 249 00:11:35,140 --> 00:11:38,330 Ini masih hanya akan taktik itu tepat di sampai akhir. 250 00:11:38,330 --> 00:11:41,490 >> Jadi saya bisa tumbuh, dan as-- kami tidak akan menutupinya di sini, 251 00:11:41,490 --> 00:11:45,360 tapi saya bisa sambatan atau strip elemen dari array juga, 252 00:11:45,360 --> 00:11:50,064 dan array akan menyusut untuk mengakomodasi yang sekarang hilang atau ruang kosong. 253 00:11:50,064 --> 00:11:52,230 Ada cara lain untuk memakukan sesuatu ke array, 254 00:11:52,230 --> 00:11:54,330 yang merupakan fungsi yang disebut array_push. 255 00:11:54,330 --> 00:11:57,860 Jadi sekali lagi, hanya ini ide menjadi mampu melakukan hal-hal dengan berbagai cara. 256 00:11:57,860 --> 00:12:01,950 Jadi kita telah melihat tiga cara yang berbeda sekarang taktik unsur lain ke array. 257 00:12:01,950 --> 00:12:06,900 Jadi ini menambahkan elemen lain untuk akhir $ nums array. 258 00:12:06,900 --> 00:12:08,340 Dan kita bisa mencampur jenis data kami. 259 00:12:08,340 --> 00:12:13,110 Jadi saya bisa memiliki sebuah array tidak 1, 2, 3, 4, tapi 1, benar, 3, 4, 260 00:12:13,110 --> 00:12:16,420 mana yang benar adalah Boolean, dan kemudian jika saya ingin taktik pada elemen lain 261 00:12:16,420 --> 00:12:20,860 array itu, mungkin string, string "lima," Saya bisa melakukan itu. 262 00:12:20,860 --> 00:12:26,110 Dan sekarang saya akan Array menjadi 1, benar, 3, 4, lima. 263 00:12:26,110 --> 00:12:28,640 Kata lima, bukan integer 5. 264 00:12:28,640 --> 00:12:31,270 Jadi banyak fleksibilitas di sana. 265 00:12:31,270 --> 00:12:33,290 >> Fleksibilitas mendapat bahkan lebih baik, meskipun, 266 00:12:33,290 --> 00:12:37,530 karena PHP memiliki dukungan untuk sesuatu disebut array asosiatif. 267 00:12:37,530 --> 00:12:40,660 Dan kita semacam samar-samar berbicara array tentang asosiatif di C 268 00:12:40,660 --> 00:12:44,740 dalam konteks tabel hash, karena apa array asosiatif yang benar-benar semua 269 00:12:44,740 --> 00:12:48,950 tentang yang kunci membuat pemetaan nilai pasangan. 270 00:12:48,950 --> 00:12:53,410 Dan dalam hal ini, jika keys-- kita akrab dengan array dari C, 271 00:12:53,410 --> 00:12:55,440 tombol yang nomor indeks. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 Dan nilai-nilai adalah apa yang kita menemukan bahwa Array 0, deret 1, deret 2, dan seterusnya. 274 00:13:03,070 --> 00:13:06,310 Jadi tombol yang indeks, dan nilai-nilai yang 275 00:13:06,310 --> 00:13:10,060 apa yang ada di lokasi itu array, ditentukan oleh indeks itu. 276 00:13:10,060 --> 00:13:15,130 >> Tapi di PHP, kita tidak perlu melakukan hal ini Gagasan array 0, berbagai 1, 2 array yang 277 00:13:15,130 --> 00:13:15,830 lagi. 278 00:13:15,830 --> 00:13:21,025 Kita sekarang dapat menggunakan kata-kata yang sebenarnya untuk memetakan kunci untuk nilai-nilai. 279 00:13:21,025 --> 00:13:22,650 Dan jadi saya bisa mengatakan sesuatu seperti ini. 280 00:13:22,650 --> 00:13:26,710 Saya bisa menciptakan sebuah array menggunakan sintaks braket persegi sebagai berikut. 281 00:13:26,710 --> 00:13:30,685 $ pizza = braket persegi "keju" dan kemudian 282 00:13:30,685 --> 00:13:37,210 semacam ini notasi panah ganda, 8,99, "pepperoni," panah 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 dan sebagainya. 284 00:13:37,880 --> 00:13:39,060 Dan jadi apa yang terjadi di sini? 285 00:13:39,060 --> 00:13:41,040 Apa yang saya benar-benar melakukan? 286 00:13:41,040 --> 00:13:43,990 Aku menciptakan pemetaan pasangan nilai kunci. 287 00:13:43,990 --> 00:13:49,060 Jadi, bukannya mengatakan, misalnya, pizza 0, potongan 1, 2 pizza, 288 00:13:49,060 --> 00:13:52,350 Sekarang saya bisa katakan pizza keju, pizza pepperoni, 289 00:13:52,350 --> 00:13:55,120 dan mengacu pada nilai-nilai terkait dengan mereka. 290 00:13:55,120 --> 00:13:56,970 >> Jadi di sini adalah kunci kami dalam warna hijau. 291 00:13:56,970 --> 00:13:59,870 Keju, pepperoni, sayuran, ayam kerbau. 292 00:13:59,870 --> 00:14:04,200 Berikut adalah panah yang membuat ini kunci pemetaan nilai pasangan. 293 00:14:04,200 --> 00:14:07,420 Dan kemudian di sini adalah nilai-nilai pada lokasi array. 294 00:14:07,420 --> 00:14:10,330 Jadi itu seperti mengatakan berbagai 0 sama dengan 8,99. 295 00:14:10,330 --> 00:14:11,720 Kuncinya adalah 0. 296 00:14:11,720 --> 00:14:13,600 Nilai adalah 8,99. 297 00:14:13,600 --> 00:14:19,370 Sekarang saya bisa katakan keju array, atau dalam hal ini kasus pizza keju, keju adalah kuncinya, 298 00:14:19,370 --> 00:14:23,340 dan apa yang saya temukan di pizza keju 8,99. 299 00:14:23,340 --> 00:14:25,540 Itu nilai yang saya temukan di sana. 300 00:14:25,540 --> 00:14:28,124 >> Jadi saya bisa mengatakan hal-hal seperti. $ pizza keju = 7,99. 301 00:14:28,124 --> 00:14:29,040 Katakanlah Saya mengalami penjualan. 302 00:14:29,040 --> 00:14:31,750 Saya ingin dis-- Saya ingin menjatuhkan harga keju pizza. 303 00:14:31,750 --> 00:14:35,620 Atau aku bisa menggunakan sayuran pizza sebagai bagian dari suatu kondisi, 304 00:14:35,620 --> 00:14:39,990 atau saya dapat menambahkan elemen baru untuk saya array, sama seperti aku bisa melakukan sebelumnya. 305 00:14:39,990 --> 00:14:44,680 Saya dapat menambahkan elemen baru ini array asosiatif dengan kunci "daging" 306 00:14:44,680 --> 00:14:49,250 dan nilai 13,49. 307 00:14:49,250 --> 00:14:53,820 >> Tapi ini semacam memperkenalkan masalah, jika Anda berpikir tentang hal itu untuk kedua. 308 00:14:53,820 --> 00:14:55,721 Bagaimana kita akan iterate melalui array ini? 309 00:14:55,721 --> 00:14:56,220 Kanan? 310 00:14:56,220 --> 00:14:59,820 Dalam C, kita hanya akan memiliki untuk loop, biasanya, yang 311 00:14:59,820 --> 00:15:03,650 akan lari dari 0 ke ukuran array minus 1. 312 00:15:03,650 --> 00:15:08,060 Array memiliki n elemen di di, indeks yang valid adalah 0 sampai n minus 1. 313 00:15:08,060 --> 00:15:11,530 Jadi kita bisa menggunakan untuk loop untuk langkah melalui setiap elemen tunggal. 314 00:15:11,530 --> 00:15:13,530 >> Tapi itu tidak benar-benar terjadi lagi, kan? 315 00:15:13,530 --> 00:15:17,360 Sekarang di mana kita memiliki pasangan kunci nilai pemetaan di mana kunci adalah kata-kata, 316 00:15:17,360 --> 00:15:19,970 bagaimana kita iterate atas semua kata? 317 00:15:19,970 --> 00:15:22,420 Nah, untungnya, PHP memiliki cara untuk menangani hal ini juga, 318 00:15:22,420 --> 00:15:24,580 dan jadi kita akan melompat kembali untuk loop untuk kedua 319 00:15:24,580 --> 00:15:30,780 untuk memperkenalkan jenis keempat loop yang ada dalam PHP disebut loop foreach. 320 00:15:30,780 --> 00:15:34,430 Dan apa loop foreach dilakukan adalah itu pada dasarnya ide yang sama. 321 00:15:34,430 --> 00:15:36,060 Anda dapat menggunakannya untuk setiap jenis array. 322 00:15:36,060 --> 00:15:38,100 Tapi itu pada dasarnya ide yang sama seperti untuk loop, 323 00:15:38,100 --> 00:15:40,750 kecuali bukan menggunakan nomor indeks, Anda hanya 324 00:15:40,750 --> 00:15:45,830 memiliki sintaks ini di mana aneh Anda menelepon setiap elemen tunggal 325 00:15:45,830 --> 00:15:47,550 nama untuk keperluan lingkaran ini. 326 00:15:47,550 --> 00:15:49,258 >> Jadi dalam hal ini, foreach ($ array sebagai $ key). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Pada dasarnya, seperti yang catatan komentar, dalam yang loop foreach, 329 00:15:56,450 --> 00:16:00,466 itu akan pergi setiap satu unsur $ array, yang biasanya 330 00:16:00,466 --> 00:16:03,340 akan menjadi sebuah array asosiatif, tapi benar-benar dapat menjadi apapun array 331 00:16:03,340 --> 00:16:05,419 yang Anda inginkan dalam PHP. 332 00:16:05,419 --> 00:16:07,210 Dan setiap kali di untuk loop Anda mungkin 333 00:16:07,210 --> 00:16:13,780 mengatakan $ array kurung $ i, Anda hanya bisa mengatakan $ key. 334 00:16:13,780 --> 00:16:22,340 Sehingga $ key menjadi sebuah alias untuk setiap Indeks PHP Anda asosiatif array, 335 00:16:22,340 --> 00:16:23,710 dan sehingga Anda dapat menggunakannya seperti itu. 336 00:16:23,710 --> 00:16:25,897 >> Jadi misalnya, kami sudah sekarang punya pizza array kita. 337 00:16:25,897 --> 00:16:27,730 Aku sudah jenis terselip itu ke pojok sana 338 00:16:27,730 --> 00:16:31,080 sehingga kita dapat menggunakannya untuk melakukan contoh cepat. 339 00:16:31,080 --> 00:16:36,420 Jika saya mengatakan foreach ($ pizza sebagai $ pizza), baik, apa yang terjadi? 340 00:16:36,420 --> 00:16:42,400 Nah, aku akan iterate melalui setiap elemen dari array $ pizza, 341 00:16:42,400 --> 00:16:46,670 dan dengan demikian, saya akan menelepon setiap elemen, ketika aku di dalam 342 00:16:46,670 --> 00:16:49,400 dari tubuh yang untuk loop, $ pizza. 343 00:16:49,400 --> 00:16:52,440 >> Jadi itu semacam berdiri-in, ingat, bahwa $ pizza 344 00:16:52,440 --> 00:16:59,140 adalah stand-in untuk mengatakan $ pizza kurung $ i 345 00:16:59,140 --> 00:17:03,370 jika kita menggunakan untuk loop, di mana kita bisa pergi dari $ i = 0 sampai, dalam hal ini, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Jika kita tidak memiliki pasangan nilai kunci di sini, ini akan menjadi elemen 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 dan kami akan menggunakan untuk loop untuk pergi $ pizza 0, $ 1 pizza, pizza $ 2, 349 00:17:16,390 --> 00:17:17,750 $ pizza 3. 350 00:17:17,750 --> 00:17:23,130 Jadi sekarang hanya $ pizza mengganti untuk itu kunci individu. 351 00:17:23,130 --> 00:17:25,630 >> Jadi apa yang ini akan mencetak? 352 00:17:25,630 --> 00:17:29,030 Saya mencetak $ pizza. 353 00:17:29,030 --> 00:17:35,270 Apa yang akan saya menemukan at-- jika saya mencetak $ pizza, $ i? 354 00:17:35,270 --> 00:17:35,770 Kanan? 355 00:17:35,770 --> 00:17:38,680 Jika aku akan mencetak unsur engan pizza, 356 00:17:38,680 --> 00:17:40,070 apa yang akan saya untuk mencetak? 357 00:17:40,070 --> 00:17:42,580 Aku akan mencetak nilai-nilai di lokasi itu, kan? 358 00:17:42,580 --> 00:17:45,370 Seperti jika kita melakukan ini dalam konteks C, 359 00:17:45,370 --> 00:17:49,786 kita tidak biasanya menggunakan iterator kami variabel, int i = 0, i kurang dari 3, 360 00:17:49,786 --> 00:17:52,900 i ++, untuk mencetak 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Kami mencetak berbagai 0, Array 1, 2 Array, Array 3. 362 00:17:57,500 --> 00:17:59,580 Dan jadi apa ini mencetak adalah ini. 363 00:17:59,580 --> 00:18:01,150 Ini daftar harga. 364 00:18:01,150 --> 00:18:05,750 8.99, 9.99, 10.99, 11.99. 365 00:18:05,750 --> 00:18:06,900 >> Sekarang catatan singkat di sini. 366 00:18:06,900 --> 00:18:10,900 Sebuah loop foreach tidak tentu mencetak hal dalam rangka. 367 00:18:10,900 --> 00:18:12,770 Itu tidak dijamin. 368 00:18:12,770 --> 00:18:13,550 Biasanya. 369 00:18:13,550 --> 00:18:17,667 Ini biasanya berdasarkan urutan yang unsur ditambahkan ke array, 370 00:18:17,667 --> 00:18:18,750 jadi hanya diingat bahwa. 371 00:18:18,750 --> 00:18:20,830 Ini mungkin tidak dalam urutan. 372 00:18:20,830 --> 00:18:23,930 Tapi loop foreach akan beralih di setiap elemen tunggal 373 00:18:23,930 --> 00:18:25,060 dari array yang bersangkutan. 374 00:18:25,060 --> 00:18:27,980 Dalam hal ini, sekali lagi, array adalah $ pizza. 375 00:18:27,980 --> 00:18:32,920 >> Aku bisa mengubah sintaks, meskipun, jika Saya ingin kedua kunci dan nilai. 376 00:18:32,920 --> 00:18:37,179 Alih-alih mengatakan $ pizza sebagai $ pizza, saya bisa mengatakan ini. 377 00:18:37,179 --> 00:18:39,470 Dan jika Anda melihat apa yang telah saya disorot dalam warna hijau di sini, 378 00:18:39,470 --> 00:18:42,130 sepertinya kunci pemetaan nilai pasangan. 379 00:18:42,130 --> 00:18:45,980 Dan jadi jika you-- bahkan jika Anda tidak sepenuhnya yakin apa yang akan dilakukan, 380 00:18:45,980 --> 00:18:49,300 Anda mungkin bisa menebak bahwa $ topping akan 381 00:18:49,300 --> 00:18:53,800 menjadi kunci dalam kasus ini dan $ harga akan menjadi nilai. 382 00:18:53,800 --> 00:18:59,200 Jadi aku mengganti sekarang setiap elemen dari $ pizza sebagai pasangan nilai kunci, 383 00:18:59,200 --> 00:19:03,900 dan sekarang saya bisa merujuk ke kunci dan nilai, yang mungkin berguna, 384 00:19:03,900 --> 00:19:05,590 misalnya, sebagai berikut. 385 00:19:05,590 --> 00:19:10,170 >> "Seluruh" - ini adalah banyak pencetakan terjadi di sini-"Seluruh" 386 00:19:10,170 --> 00:19:17,300 topping "pizza biaya $" harga, dan kemudian Saya mencetak periode dan backslash n. 387 00:19:17,300 --> 00:19:23,420 Jadi sekarang, pemberitahuan lagi saya memiliki akses ke kunci, $ topping, dan nilai, $ harga. 388 00:19:23,420 --> 00:19:26,647 Jadi Anda bisa menebak apa ini akan mencetak? 389 00:19:26,647 --> 00:19:29,480 Ada banyak laporan cetak, tapi hanya ada satu backslash n, 390 00:19:29,480 --> 00:19:33,410 sehingga akan mencetak sesuatu di sebuah entire-- pada baris kode. 391 00:19:33,410 --> 00:19:36,965 >> Jika saya dapat merujuk ke tombol dan nilai, maka sekarang, 392 00:19:36,965 --> 00:19:39,090 bukan hanya mampu untuk mencetak harga, 393 00:19:39,090 --> 00:19:41,330 Saya bisa mencetak sesuatu seperti ini. 394 00:19:41,330 --> 00:19:43,780 "Seluruh keju pizza biaya $ 8,99." 395 00:19:43,780 --> 00:19:47,150 Dan sekarang saya menggunakan semua keys-- yang keju, pepperoni, sayuran, 396 00:19:47,150 --> 00:19:49,640 kerbau chicken-- dan nilai-nilai. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 Jadi itu hanya cara yang berbeda 398 00:19:53,980 --> 00:19:57,840 untuk melakukan loop foreach bahwa alih-alih hanya memberikan Anda akses ke nilai-nilai, 399 00:19:57,840 --> 00:20:02,950 itu hanya memberi you-- memberikan Anda akses ke kunci dan nilai-nilai. 400 00:20:02,950 --> 00:20:04,411 >> Jadi mencetak informasi. 401 00:20:04,411 --> 00:20:07,410 Aku sudah melakukannya beberapa cara yang berbeda, Anda mungkin telah memperhatikan. 402 00:20:07,410 --> 00:20:11,080 Dua fungsi kita sudah terutama adalah cetak dan gema dilihat. 403 00:20:11,080 --> 00:20:14,380 Dan untuk hampir semua maksud dan tujuan, mereka persis sama. 404 00:20:14,380 --> 00:20:17,130 They're-- ada sangat halus Perbedaan itu bahkan tidak layak 405 00:20:17,130 --> 00:20:21,130 hadapi, tetapi pada dasarnya di mana-mana Anda dapat menggunakan cetak Anda mungkin dapat menggunakan 406 00:20:21,130 --> 00:20:22,370 menggemakan juga. 407 00:20:22,370 --> 00:20:23,610 >> Dan itu bukan hanya dua. 408 00:20:23,610 --> 00:20:26,970 PHP memiliki banyak berbeda cara untuk mencetak hal-hal, 409 00:20:26,970 --> 00:20:30,520 dan juga memiliki cara untuk mengintegrasikan variabel ke tengah-tengah tali. 410 00:20:30,520 --> 00:20:32,860 Jadi ingat dari C, apakah Anda ingat apa fungsi 411 00:20:32,860 --> 00:20:37,580 bisa kita gunakan untuk menggantikan variabel dalam hal yang kita ingin mencetak? 412 00:20:37,580 --> 00:20:40,160 Anda mungkin menggunakan ini berfungsi cukup banyak. 413 00:20:40,160 --> 00:20:42,290 printf, kan? 414 00:20:42,290 --> 00:20:45,290 Jadi ini adalah apa yang kita miliki sebelumnya dalam dari konteks foreach loop kami. 415 00:20:45,290 --> 00:20:48,000 Kami memiliki lima ini pernyataan cetak yang terpisah, 416 00:20:48,000 --> 00:20:50,330 karena itu satu-satunya cara saya benar-benar tahu pada saat itu 417 00:20:50,330 --> 00:20:52,450 bagaimana untuk mencetak pesan. 418 00:20:52,450 --> 00:20:59,560 Aku tidak tahu bagaimana untuk mengintegrasikan $ variabel topping ke dalam kode PHP saya. 419 00:20:59,560 --> 00:21:03,700 Nah, jika aku hanya mengambil menebak liar, printf, itu benar-benar akan bekerja. 420 00:21:03,700 --> 00:21:08,980 printf adalah fungsi yang dapat saya gunakan PHP, hanya suka saya dapat menggunakannya dalam C. 421 00:21:08,980 --> 00:21:11,880 >> Dan jadi sesuatu seperti ini, printf, lagi, kita akrab dengan itu. 422 00:21:11,880 --> 00:21:16,420 Pertama% s diganti dengan nilai $ topping. 423 00:21:16,420 --> 00:21:19,700 Kedua% s diganti dengan nilai $ harga. 424 00:21:19,700 --> 00:21:22,630 Dan jadi aku interpellating, yang hanya cara mewah 425 00:21:22,630 --> 00:21:25,400 mengatakan aku menempel variabel ke lokasi itu. 426 00:21:25,400 --> 00:21:31,000 Jadi aku mencolokkan $ topping mana merah% s adalah dan $ harga di mana% s biru 427 00:21:31,000 --> 00:21:36,060 adalah, dan kemudian saya akan mendapatkan pesan, "Seluruh keju pizza biaya $ 8,99." 428 00:21:36,060 --> 00:21:37,750 >> Bukan satu-satunya cara saya bisa melakukannya, meskipun. 429 00:21:37,750 --> 00:21:39,760 Mungkin aku ingin menggunakan metode ini. 430 00:21:39,760 --> 00:21:44,890 Ini sebenarnya apa yang paling sering disebut interpelasi variabel. 431 00:21:44,890 --> 00:21:45,690 Saya dapat menggunakan gema. 432 00:21:45,690 --> 00:21:47,737 Saya bisa menggunakan print juga, karena kami akan melihat. 433 00:21:47,737 --> 00:21:48,820 Tapi apa yang terjadi di sini? 434 00:21:48,820 --> 00:21:51,520 >> Pertama-tama, saya harus melarikan diri dari tanda dolar. 435 00:21:51,520 --> 00:21:55,140 Karena ingat, ketika kita benar-benar mencetak harga pizza, 436 00:21:55,140 --> 00:21:59,370 Aku benar-benar format mereka sebagai Angka-angka moneter dengan tanda dolar. 437 00:21:59,370 --> 00:22:05,635 Tapi kita menggunakan tanda dolar juga untuk mewakili nama variabel di PHP, 438 00:22:05,635 --> 00:22:08,010 dan khususnya ketika saya menggunakan metode keriting yang 439 00:22:08,010 --> 00:22:10,040 variabel brace Metode interpelasi, saya perlu 440 00:22:10,040 --> 00:22:13,490 melarikan diri tanda dolar saya sehingga tidak pikir saya sedang berbicara tentang variabel. 441 00:22:13,490 --> 00:22:16,920 Ini akan benar-benar, harfiah mencetak tanda dolar. 442 00:22:16,920 --> 00:22:19,530 >> Jadi semacam menganalogikan untuk apa yang Anda lihat di akhir ada. 443 00:22:19,530 --> 00:22:22,832 Ini tidak benar-benar cetak backslash n, kan? 444 00:22:22,832 --> 00:22:24,290 Ia akan mencetak karakter baris baru. 445 00:22:24,290 --> 00:22:26,750 Ini is-- itu tidak akan cetak tanda backslash dolar, 446 00:22:26,750 --> 00:22:30,130 itu akan mencetak hanya karakter tanda dolar. 447 00:22:30,130 --> 00:22:30,640 Ide yang sama. 448 00:22:30,640 --> 00:22:32,760 Escape sequence, apa hal ini disebut. 449 00:22:32,760 --> 00:22:37,080 >> Tetapi perhatikan bahwa saya tidak melakukan apapun% s substitusi, 450 00:22:37,080 --> 00:22:40,050 Aku hanya benar-benar memasukkan dalam variabel tersebut. 451 00:22:40,050 --> 00:22:45,110 Dan di this-- apa yang akan terjadi di sini adalah bahwa nilai $ topping-- lagi, 452 00:22:45,110 --> 00:22:48,390 hanya menjaga dengan apa yang telah kami berbicara tentang keju sehingga far-- akan mendapatkan 453 00:22:48,390 --> 00:22:49,720 terpasang di sana. 454 00:22:49,720 --> 00:22:54,780 Dan $ harga akan menjadi nilai apa pun di pizza, kurung, keju, 455 00:22:54,780 --> 00:22:56,270 yang 8,99. 456 00:22:56,270 --> 00:23:01,860 Dan jadi ini juga akan mencetak "Seluruh keju pizza biaya $ 8,99." 457 00:23:01,860 --> 00:23:05,160 Dan seperti saya katakan, saya bisa menggunakan mencetak sini bukannya echo, 458 00:23:05,160 --> 00:23:08,040 dan fungsi menjadi cukup banyak persis sama. 459 00:23:08,040 --> 00:23:09,660 Ini akan mencetak hal yang sama. 460 00:23:09,660 --> 00:23:12,680 >> Ada cara lain untuk melakukannya, dan ini adalah keuntungan lain 461 00:23:12,680 --> 00:23:14,710 PHP bekerja dengan string. 462 00:23:14,710 --> 00:23:17,130 Kita bisa melakukan penggabungan string. 463 00:23:17,130 --> 00:23:19,660 Kita bisa melakukan hal ini di C, juga, menggunakan fungsi yang disebut strcat, 464 00:23:19,660 --> 00:23:21,180 tapi sekali lagi, kita harus memanggil fungsi-fungsi yang terpisah. 465 00:23:21,180 --> 00:23:22,640 Itu kekacauan ini untuk melakukan. 466 00:23:22,640 --> 00:23:24,590 Kami harus pound-termasuk string.h. 467 00:23:24,590 --> 00:23:25,780 Itu produksi, kan? 468 00:23:25,780 --> 00:23:30,070 Tapi sekarang saya hanya bisa menggunakan operator dot ini untuk menggabungkan string bersama-sama. 469 00:23:30,070 --> 00:23:34,910 >> Jadi aku concatenating "Seluruh" dan maka apa pun nilai $ topping adalah, 470 00:23:34,910 --> 00:23:38,860 dan kemudian lain String, "biaya pizza $" 471 00:23:38,860 --> 00:23:42,340 dan kemudian concatenating apapun nilai $ harga, 472 00:23:42,340 --> 00:23:45,670 dan kemudian di akhir saya memaku pada periode backslash n. 473 00:23:45,670 --> 00:23:47,926 Dan jadi ini juga akan mencetak "Seluruh" - lagi, 474 00:23:47,926 --> 00:23:50,550 jika kita berbicara tentang pertama unsur yang pizza array-- 475 00:23:50,550 --> 00:23:54,710 "Seluruh keju pizza biaya $ 8,99." 476 00:23:54,710 --> 00:24:01,260 Periode, backslash n, sekali lagi, dengan yang $ topping dan $ harga penggantinya 477 00:24:01,260 --> 00:24:06,580 untuk apa yang kita ditentukan dalam foreach kami lingkaran sebagai kunci pemetaan nilai pasangan. 478 00:24:06,580 --> 00:24:08,050 >> PHP dapat menangani fungsi. 479 00:24:08,050 --> 00:24:11,250 Fungsi yang semacam integral C, seperti yang kita lihat. 480 00:24:11,250 --> 00:24:14,870 Seperti variabel, kita tidak perlu menentukan jenis kembalinya fungsi, 481 00:24:14,870 --> 00:24:16,350 karena tidak benar-benar peduli. 482 00:24:16,350 --> 00:24:18,660 Dan kita tidak menentukan jenis data parameter apapun, 483 00:24:18,660 --> 00:24:21,410 karena mereka tidak benar-benar materi, seperti yang kita lihat di PHP. 484 00:24:21,410 --> 00:24:24,510 Setiap fungsi diperkenalkan dengan fungsi kunci. 485 00:24:24,510 --> 00:24:27,920 Itulah cara kita menunjukkan kepada PHP yang apa yang kita bicarakan adalah fungsi. 486 00:24:27,920 --> 00:24:29,720 >> Dan kita tidak perlu menangani utama sama sekali, 487 00:24:29,720 --> 00:24:33,690 karena penerjemah, PHP interpreter, bekerja dari atas ke bawah, 488 00:24:33,690 --> 00:24:34,190 terlepas. 489 00:24:34,190 --> 00:24:35,640 Jika melihat Anda dapat membuat panggilan fungsi, itu akan 490 00:24:35,640 --> 00:24:37,850 pergi mencari fungsi panggilan, bahkan jika itu datang kemudian. 491 00:24:37,850 --> 00:24:40,360 Tapi itu akan dibaca dari atas ke bawah, jadi kita tidak perlu menentukan, 492 00:24:40,360 --> 00:24:41,500 di sinilah Anda mulai. 493 00:24:41,500 --> 00:24:46,700 Anda mulai pada baris 1 dari Anda PHP dan bekerja turun dari sana. 494 00:24:46,700 --> 00:24:49,690 >> Jadi di sini adalah bagaimana kita akan membuat fungsi disebut hard_square. 495 00:24:49,690 --> 00:24:54,100 Ini rupanya mengambil satu parameter, yang aku menelepon $ x. 496 00:24:54,100 --> 00:24:58,424 Fungsi ini rumit hanya untuk menggambarkan berbagai hal. 497 00:24:58,424 --> 00:24:59,590 Kami masih memiliki nilai kembali. 498 00:24:59,590 --> 00:25:00,870 Saya menggunakan untuk loop di sini. 499 00:25:00,870 --> 00:25:04,970 Tapi itu pada dasarnya hanya, apa ini sebesar hanya $ x kali $ x. 500 00:25:04,970 --> 00:25:10,520 Apa yang saya benar-benar lakukan adalah hanya menambahkan x ke 0 x kali atau $ x nol $ x kali. 501 00:25:10,520 --> 00:25:15,850 Tapi itu efektif persis sama dengan mengalikan $ x kali $ x. 502 00:25:15,850 --> 00:25:18,700 Aku masih bisa mengembalikan nilai, dalam hal ini $ hasil, 503 00:25:18,700 --> 00:25:22,060 dan saya telah membuat fungsi di PHP. 504 00:25:22,060 --> 00:25:24,160 >> Berikut adalah bagaimana Anda dapat menggunakannya dalam konteks. 505 00:25:24,160 --> 00:25:26,020 Jadi mungkin aku dalam beberapa file PHP. 506 00:25:26,020 --> 00:25:29,240 Perhatikan warna biru yang ada Saya telah menggunakan pembatas PHP saya, 507 00:25:29,240 --> 00:25:31,010 angle bracket tanda tanya php. 508 00:25:31,010 --> 00:25:35,180 Di antara mereka adalah semua PHP yang saya ingin menulis. 509 00:25:35,180 --> 00:25:37,840 Jadi aku tampaknya akan get-- Aku akan meminta pengguna 510 00:25:37,840 --> 00:25:41,550 untuk memberikan saya nomor, toko yang variabel, toko di variabel $ x, 511 00:25:41,550 --> 00:25:43,320 apa pun yang mereka memberi saya. 512 00:25:43,320 --> 00:25:48,590 Lalu aku akan echo hard_square dari nilai tersebut, 513 00:25:48,590 --> 00:25:50,370 dan tampaknya akan taktik pada baris baru 514 00:25:50,370 --> 00:25:53,590 juga, dan kemudian nanti aku akan mendefinisikan fungsi hard_square sehingga 515 00:25:53,590 --> 00:25:55,550 bahwa ketika saya membuat panggilan untuk hard_square, 516 00:25:55,550 --> 00:25:58,160 ia tahu apa yang saya bicarakan. 517 00:25:58,160 --> 00:26:00,705 >> Sekarang, saya juga bisa melakukan sesuatu seperti ini. 518 00:26:00,705 --> 00:26:02,050 Ini sedikit berbeda. 519 00:26:02,050 --> 00:26:04,190 Ini hampir persis sama seperti apa yang kita lihat sebelumnya, 520 00:26:04,190 --> 00:26:08,400 kecuali bukannya mengatakan hanya $ x ada sebagai parameter untuk hard_square, 521 00:26:08,400 --> 00:26:11,730 Saya mengatakan $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Jadi ini adalah contoh dari pemrograman defensif, 523 00:26:14,330 --> 00:26:17,070 menjaga program Anda terhadap pengguna berbahaya. 524 00:26:17,070 --> 00:26:20,020 >> Ini adalah salah satu cara untuk melakukan beberapa kesalahan memeriksa bahwa kita tidak benar-benar 525 00:26:20,020 --> 00:26:24,670 memiliki sebagai pilihan dalam C. Kami tidak pernah bisa menentukan nilai default dari sesuatu. 526 00:26:24,670 --> 00:26:27,010 Kami selalu harus memeriksa apakah, misalnya, 527 00:26:27,010 --> 00:26:30,820 jika kita membuat panggilan ke GetString, itu paling tepat jika segera setelah kami 528 00:26:30,820 --> 00:26:33,300 memeriksa bahwa, kami memeriksa apakah string 529 00:26:33,300 --> 00:26:35,504 bahwa pengguna memberi kami tidak sama dengan nol, 530 00:26:35,504 --> 00:26:37,920 karena kita tidak ingin memulai bekerja dengan string null. 531 00:26:37,920 --> 00:26:39,670 >> Sini, ini adalah cara untuk menjaga terhadap itu. 532 00:26:39,670 --> 00:26:43,480 Jika pengguna tidak memberikan kita sesuatu entah bagaimana, apa yang akan kita lakukan? 533 00:26:43,480 --> 00:26:46,080 Yah, kita akan hanya mengatakan apa pun mereka tidak memberikan kami, 534 00:26:46,080 --> 00:26:47,705 kami hanya akan pasang di 10 gantinya. 535 00:26:47,705 --> 00:26:52,030 Jadi, jika mereka tidak memberi kami nilai, hanya menggunakan 10 secara default. Dan jadi di sini, 536 00:26:52,030 --> 00:26:53,940 melihat bahwa saya sedang membuat panggilan ke hard_square, 537 00:26:53,940 --> 00:26:55,980 tetapi tidak ada yang cepat kepada pengguna, bukan? 538 00:26:55,980 --> 00:26:57,540 Aku hanya membuat panggilan kosong. 539 00:26:57,540 --> 00:27:00,860 >> Tapi fungsi saya hard_square mengharapkan parameter. 540 00:27:00,860 --> 00:27:02,222 Apa ini akan mencetak? 541 00:27:02,222 --> 00:27:03,680 Ini akan mencetak 100, kan? 542 00:27:03,680 --> 00:27:05,720 Karena pengguna tidak memberiku apa-apa. 543 00:27:05,720 --> 00:27:08,970 Dan jadi aku hanya akan menganggap yang 10-- 10 adalah nilai default. 544 00:27:08,970 --> 00:27:13,760 Dan jadi ini akan mencetak keluar 100 pada baris sendiri. 545 00:27:13,760 --> 00:27:16,390 >> File PHP tidak perlu hanya satu file. 546 00:27:16,390 --> 00:27:19,480 Anda dapat menggabungkan beberapa file bersama-sama, seperti Anda dapat di C. Cara 547 00:27:19,480 --> 00:27:24,330 kita melakukan itu di C itu biasanya melakukan #include untuk mendapatkan file header ditarik. 548 00:27:24,330 --> 00:27:26,180 Kami tidak melakukan itu di PHP. 549 00:27:26,180 --> 00:27:29,110 Kami melakukan sesuatu yang disebut require_once. 550 00:27:29,110 --> 00:27:33,360 Dan kemudian ada ini seluruh hal, apa __dir__ ini? 551 00:27:33,360 --> 00:27:36,510 Itu hanya khusus variabel, atau konstanta khusus, 552 00:27:36,510 --> 00:27:39,030 benar-benar, yang menentukan apa yang direktori Anda saat ini. 553 00:27:39,030 --> 00:27:41,320 Dan itu akan terlihat dalam direktori Anda saat ini 554 00:27:41,320 --> 00:27:44,900 untuk file bernama cs50.php dalam contoh ini di sini, 555 00:27:44,900 --> 00:27:50,490 dan itu akan tetap file yang di bagian atas program PHP Anda, 556 00:27:50,490 --> 00:27:56,980 dengan asumsi bahwa Anda menempatkan memerlukan sekali baris di bagian atas file PHP Anda. 557 00:27:56,980 --> 00:28:01,474 >> Jadi PHP terutama digunakan, tetapi tidak secara eksklusif digunakan, 558 00:28:01,474 --> 00:28:03,140 sebagai bahasa pemrograman berbasis web. 559 00:28:03,140 --> 00:28:05,270 Itu benar-benar bagaimana datang untuk menjadi. 560 00:28:05,270 --> 00:28:06,980 Tapi itu adalah penuh bahasa, seperti yang kita lihat. 561 00:28:06,980 --> 00:28:10,105 Kami telah melihat cukup banyak semua hal bahwa ia bisa melakukan yang mirip dengan C, 562 00:28:10,105 --> 00:28:13,290 dan dapat melakukan heck of banyak lebih dari itu. 563 00:28:13,290 --> 00:28:16,950 >> Tapi karena itu bahasa penuh dan kami dapat melakukan perintah pemrograman baris di dalamnya. 564 00:28:16,950 --> 00:28:18,630 Kita bisa menjalankan program baris perintah. 565 00:28:18,630 --> 00:28:22,580 Semua yang diperlukan untuk menjalankan perintah Program baris yang ditulis dalam PHP 566 00:28:22,580 --> 00:28:24,260 adalah bahwa Anda memiliki interpreter PHP. 567 00:28:24,260 --> 00:28:27,460 Jadi itu semacam analog dengan memiliki compiler pada sistem Anda 568 00:28:27,460 --> 00:28:31,100 jika Anda ingin mengkompilasi kode C Anda untuk mengubahnya menjadi file executable. 569 00:28:31,100 --> 00:28:33,810 Anda perlu memiliki juru PHP yang ada pada sistem Anda 570 00:28:33,810 --> 00:28:37,330 sehingga Anda dapat menafsirkan file PHP. 571 00:28:37,330 --> 00:28:40,370 >> Dengan asumsi Anda, dan biasanya interpreter ini disebut PHP, 572 00:28:40,370 --> 00:28:44,300 dan itu biasanya dibundel dengan sebagian besar download atau instalasi PHP 573 00:28:44,300 --> 00:28:47,430 Anda bisa online, dan tentu nama interpreter PHP 574 00:28:47,430 --> 00:28:49,550 kita miliki dalam CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Yang Anda lakukan adalah jenis file php. 576 00:28:51,819 --> 00:28:53,610 Dan apa program anda akan lakukan adalah itu 577 00:28:53,610 --> 00:28:55,360 akan dijalankan melalui penafsir, itu 578 00:28:55,360 --> 00:28:58,040 akan mengabaikan segala sesuatu yang tidak di antara pertanyaan mark-- 579 00:28:58,040 --> 00:29:03,160 atau, sudut braket tanda tanya php, pembatas PHP, dan mencetaknya, 580 00:29:03,160 --> 00:29:07,660 dan itu akan menafsirkan dan mengeksekusi kode di dalam pembatas PHP Anda. 581 00:29:07,660 --> 00:29:12,850 >> Jadi mari kita mampir ke CS50 IDE dan melihat-lihat di beberapa file PHP, 582 00:29:12,850 --> 00:29:19,850 menjalankan beberapa file PHP, di baris perintah interface CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Jadi di sini kita berada di CS50 IDE, dan saya telah mengambil kebebasan 584 00:29:22,100 --> 00:29:25,800 membuka sebuah file bernama hello1.php. 585 00:29:25,800 --> 00:29:29,920 Dan ternyata, isi ini File hanya pembatas PHP sana, 586 00:29:29,920 --> 00:29:32,220 dan di antara, echo ("halo, dunia"). 587 00:29:32,220 --> 00:29:34,710 Ini adalah program PHP cukup sederhana. 588 00:29:34,710 --> 00:29:37,670 Aku hanya akan gulir ke bawah ke jendela terminal saya di sini, 589 00:29:37,670 --> 00:29:44,320 dan aku akan mengetik php hello1.php, tekan enter. 590 00:29:44,320 --> 00:29:44,950 Halo Dunia. 591 00:29:44,950 --> 00:29:48,110 Itu mungkin apa yang kami mengharapkan untuk melakukan, kan? 592 00:29:48,110 --> 00:29:51,140 >> Mari kita pergi dan mengambil melihat lagi di program. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Cukup banyak hal yang sama, tidak banyak terjadi di sini. 595 00:29:55,090 --> 00:29:57,190 Kali ini, meskipun, aku akan meminta pengguna untuk memberikan nama mereka. 596 00:29:57,190 --> 00:29:59,290 Saya menggunakan fungsi readline lagi. 597 00:29:59,290 --> 00:30:01,340 $ nama = readline. 598 00:30:01,340 --> 00:30:03,070 Itulah yang cepat, "Siapa namamu?" 599 00:30:03,070 --> 00:30:04,880 >> Rupanya aku pencetakan pada baris sendiri. 600 00:30:04,880 --> 00:30:07,220 Dan kemudian, sehingga garis bawah yang akan prompt 601 00:30:07,220 --> 00:30:08,750 dimana pengguna dapat memasukkan nama mereka. 602 00:30:08,750 --> 00:30:12,030 Dan kemudian saya menggunakan sedikit variabel interpelasi sini on line 3 603 00:30:12,030 --> 00:30:14,780 untuk mencetak "Hello" dan apapun jenis pengguna. 604 00:30:14,780 --> 00:30:22,040 Jadi ini analog dengan mengatakan, Hello, koma,% s jika kita menggunakan printf di C. 605 00:30:22,040 --> 00:30:24,910 >> Jadi mari kita pergi dan menafsirkan program ini. 606 00:30:24,910 --> 00:30:27,400 Jadi sekali lagi, saya akan gulir ke bawah ke jendela terminal saya. 607 00:30:27,400 --> 00:30:29,070 hello2.php php. 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 Siapa nama kamu? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Halo, Doug. 612 00:30:36,526 --> 00:30:39,440 Saya juga memiliki lain file bernama hello3.php. 613 00:30:39,440 --> 00:30:42,850 Aku akan membersihkan saya layar dengan Kontrol L, 614 00:30:42,850 --> 00:30:46,210 dan aku akan mengeksekusi itu. 615 00:30:46,210 --> 00:30:47,640 Siapa nama kamu? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Halo, Doug. 618 00:30:49,780 --> 00:30:56,540 Jadi perilaku identik dengan hello2.php, tapi mengapa itu hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Nah, di sini bedanya. 620 00:30:58,040 --> 00:31:00,620 Dalam hal ini, pemberitahuan yang on line 1 di sini, 621 00:31:00,620 --> 00:31:04,270 Aku punya sesuatu yang tidak di antara pembatas PHP. 622 00:31:04,270 --> 00:31:07,760 Aku hanya mencetak out-- atau aku hanya mengetik, "Siapa namamu?" 623 00:31:07,760 --> 00:31:12,060 Ketika interpreter PHP melihat ini, itu telah tidak tahu bagaimana untuk menafsirkannya sebagai PHP, 624 00:31:12,060 --> 00:31:15,060 dan bukannya gagal, itu hanya akan meludahkannya. 625 00:31:15,060 --> 00:31:19,010 >> Jadi melihat pada baris 3 sekarang, panggilan saya untuk readline, tidak ada yang cepat lagi. 626 00:31:19,010 --> 00:31:21,750 Aku hanya benar-benar akan to-- saat interpreter PHP melihat ini, 627 00:31:21,750 --> 00:31:23,400 itu akan mencetak "Siapa nama kamu?" 628 00:31:23,400 --> 00:31:25,941 Kemudian ia melihat, oh, OK, here's-- segala sesuatu yang lain akan menjadi 629 00:31:25,941 --> 00:31:29,970 diartikan sebagai PHP, sehingga itulah mengapa ini bekerja. 630 00:31:29,970 --> 00:31:34,990 Saya tidak perlu selalu meminta pengguna to-- dalam readline, 631 00:31:34,990 --> 00:31:37,490 Aku hanya bisa memilikinya luar dari pembatas PHP 632 00:31:37,490 --> 00:31:41,490 dan memungkinkan penafsir hanya mencetak keluar bagi saya. 633 00:31:41,490 --> 00:31:45,364 >> Jadi Anda tidak benar-benar hanya memiliki untuk memiliki satu set pembatas PHP 634 00:31:45,364 --> 00:31:46,030 dalam program Anda. 635 00:31:46,030 --> 00:31:49,887 Anda benar-benar dapat memiliki beberapa dari mereka, membuka dan menutup mereka sesuai kebutuhan. 636 00:31:49,887 --> 00:31:51,720 Jadi mari kita lihat di beberapa program 637 00:31:51,720 --> 00:31:55,070 di CS50 IDE mana kita menggambarkan ide ini memiliki 638 00:31:55,070 --> 00:31:58,376 beberapa set dibatasi PHP. 639 00:31:58,376 --> 00:32:02,010 >> OK, jadi saya telah membuka sebuah file di sini disebut add1.php. 640 00:32:02,010 --> 00:32:03,390 Dan perhatikan apa yang terjadi di sini. 641 00:32:03,390 --> 00:32:08,077 Sama seperti sebelumnya, saya memiliki PHP tunggal mengatur pembatas. 642 00:32:08,077 --> 00:32:10,660 Aku akan mencetak pesan, "Tolong beri saya nomor." 643 00:32:10,660 --> 00:32:13,394 Lalu aku akan membaca garis dan menyimpannya dalam variabel $ num1. 644 00:32:13,394 --> 00:32:14,810 Lalu aku akan mencetak lagi. 645 00:32:14,810 --> 00:32:16,310 Memberikan nomor kedua. 646 00:32:16,310 --> 00:32:20,450 Baca garis dari pengguna, menyimpan apa pun yang mereka mengetik di $ num2. 647 00:32:20,450 --> 00:32:23,980 Tambahkan mereka bersama-sama dan menyimpan yang menghasilkan variabel yang disebut $ sum, 648 00:32:23,980 --> 00:32:26,180 dan kemudian mencetak, "The jumlah dari dua nomor ini 649 00:32:26,180 --> 00:32:29,254 adalah, "dan kemudian menginterpelasi ada variabel $ sum. 650 00:32:29,254 --> 00:32:31,170 Jadi mari kita jalankan ini melalui penerjemah 651 00:32:31,170 --> 00:32:33,720 untuk mengkonfirmasi bahwa ini adalah apa yang kita harapkan. 652 00:32:33,720 --> 00:32:37,540 add1.php php. 653 00:32:37,540 --> 00:32:38,665 Tolong beri saya nomor, 3. 654 00:32:38,665 --> 00:32:40,410 Tolong beri saya nomor kedua, 4. 655 00:32:40,410 --> 00:32:43,370 Jumlah dari dua angka-angka ini adalah 7. 656 00:32:43,370 --> 00:32:45,030 Itu 3 ditambah 4. 657 00:32:45,030 --> 00:32:45,530 OKE? 658 00:32:45,530 --> 00:32:47,770 Jadi tidak ada yang sangat mewah di sana. 659 00:32:47,770 --> 00:32:51,080 >> Dan sekarang mari kita membuka add2.php. 660 00:32:51,080 --> 00:32:54,460 Di sini, saya punya beberapa PHP dipisahkan set sana, kan? 661 00:32:54,460 --> 00:32:59,107 Baris 1, 3-- jalur 1 dan 3 tidak memiliki pembatas PHP. 662 00:32:59,107 --> 00:33:00,940 Jadi ketika penafsir melihat mereka, itu hanya 663 00:33:00,940 --> 00:33:03,220 akan memuntahkan persis apa yang telah saya mengetik di sana. 664 00:33:03,220 --> 00:33:05,011 Jadi di sanalah aku melakukan semua saya mendorong. 665 00:33:05,011 --> 00:33:11,220 Pada baris 2 dan 4, kita melihat sangat $ familiar? php semacam pembatas, 666 00:33:11,220 --> 00:33:15,210 sehingga dua garis akan mengeksekusi sebagai PHP. 667 00:33:15,210 --> 00:33:18,270 Dan kemudian pada baris 5, saya punya ini hal yang aneh di sini, kan? 668 00:33:18,270 --> 00:33:20,480 Braket sudut ini tanda tanya tanda sama. 669 00:33:20,480 --> 00:33:22,660 Aku bahkan akan memperbesar sedikit lebih jauh. 670 00:33:22,660 --> 00:33:29,270 Anda dapat melihat ini adalah apa yang saya berbicara tentang di sana, $ ini? =. 671 00:33:29,270 --> 00:33:33,420 >> Ternyata itu begitu umum bahwa alasan bahwa kita membuka satu set PHP 672 00:33:33,420 --> 00:33:36,055 pembatas adalah untuk mencetak nilai. 673 00:33:36,055 --> 00:33:37,430 Dan itu semua kita akan lakukan. 674 00:33:37,430 --> 00:33:39,220 Tapi bahkan ada istilah untuk itu. 675 00:33:39,220 --> 00:33:46,490 $? = Adalah PHP singkatan untuk mengatakan sesuatu seperti $? php echo jumlahnya 676 00:33:46,490 --> 00:33:48,350 dari num1 dan num2. 677 00:33:48,350 --> 00:33:51,900 Jadi ini hanyalah singkatan untuk itu. 678 00:33:51,900 --> 00:33:55,550 >> Jadi jika saya menjalankan program ini, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Aku akan tampilannya turun sedikit. 680 00:33:57,530 --> 00:33:59,000 Tolong beri saya nomor, 4. 681 00:33:59,000 --> 00:34:00,350 Tolong beri saya nomor kedua. 682 00:34:00,350 --> 00:34:04,650 Dan karena saya tidak benar-benar peduli jenis data dalam PHP, saya dapat mengatakan 4,8. 683 00:34:04,650 --> 00:34:07,160 Jumlah dari dua angka-angka ini adalah 8,8. 684 00:34:07,160 --> 00:34:10,179 Fungsi yang berperilaku cukup banyak persis sama seperti yang kita harapkan, 685 00:34:10,179 --> 00:34:10,989 demikian juga. 686 00:34:10,989 --> 00:34:13,114 Dan aku punya satu lagi dibuka di sini disebut dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Coba ini lagi. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Saya punya satu lagi di sini disebut dice1.php, yang juga, lihat, 691 00:34:33,280 --> 00:34:37,440 memiliki pertanyaan sudut braket menandai notasi tanda sama di sana, 692 00:34:37,440 --> 00:34:40,659 tapi melihat bahwa dalam kasus ini saya memanggil fungsi rand, yang seperti Anda 693 00:34:40,659 --> 00:34:42,790 mungkin berharap menghasilkan nomor acak. 694 00:34:42,790 --> 00:34:46,889 "Kau menggulingkan sebuah," dan itu akan menghitung beberapa nomor acak, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Sehingga akan memberikan nomor di kisaran 1-6. 697 00:34:49,989 --> 00:34:53,040 >> Ingat bahwa mod 6 akan memberi saya nomor dalam kisaran 0 sampai 5, 698 00:34:53,040 --> 00:34:56,630 tetapi jika aku simulasi dadu gulungan, yang adalah apa yang saya lakukan di sini, 699 00:34:56,630 --> 00:35:00,040 Saya tidak ingin dadu ini untuk pergi dari 0 untuk 5, saya ingin dadu yang pergi 1-6. 700 00:35:00,040 --> 00:35:02,800 Dan jadi ini adalah cara untuk mendapatkan saya di kisaran 1-6. 701 00:35:02,800 --> 00:35:04,720 Aku melakukan ini dua kali. 702 00:35:04,720 --> 00:35:08,630 Begitu rupanya saya bergulir dua dadu dalam program ini. 703 00:35:08,630 --> 00:35:15,210 >> Jadi saya akan membersihkan layar saya, dan saya akan melakukan php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Anda berguling 4 dan 2. 705 00:35:16,640 --> 00:35:19,156 Dan jika saya menjalankan program lagi, Anda berguling 5 dan 5. 706 00:35:19,156 --> 00:35:21,780 Jadi setiap kali saya menjalankan program, Saya mendapatkan nomor yang berbeda, 707 00:35:21,780 --> 00:35:24,280 karena setiap kali saya lakukan sehingga, itu mulai berakhir. 708 00:35:24,280 --> 00:35:27,250 Ini akan menghasilkan baru set nomor acak untuk saya. 709 00:35:27,250 --> 00:35:29,790 >> Jadi jika kita terbiasa menjalankan program dari C, 710 00:35:29,790 --> 00:35:32,520 kita terbiasa mengetik ./ yang nama program, kan? 711 00:35:32,520 --> 00:35:35,090 Itulah cara kita melakukan semua program kami di C sejauh ini. 712 00:35:35,090 --> 00:35:37,555 Kita dapat melakukan ini di PHP juga dengan menambahkan sesuatu yang disebut 713 00:35:37,555 --> 00:35:40,026 sebuah shebang ke atas file PHP kita. 714 00:35:40,026 --> 00:35:41,400 Aku tahu itu jenis kata konyol. 715 00:35:41,400 --> 00:35:44,540 Itu singkatan hash Bang. 716 00:35:44,540 --> 00:35:46,300 Itu dua karakter pertama ada. 717 00:35:46,300 --> 00:35:50,030 Ingat kita sebut tanda seru sering bang dalam ilmu komputer. 718 00:35:50,030 --> 00:35:51,690 Hal ini juga mungkin bagi tajam Bang. 719 00:35:51,690 --> 00:35:53,273 Ada beberapa cara untuk menafsirkannya. 720 00:35:53,273 --> 00:35:57,320 Tapi itu pada dasarnya semacam khusus dari perintah bahwa interpreter PHP 721 00:35:57,320 --> 00:36:00,160 memahami sebagai, oh, saya ingin Anda untuk menjalankan program ini, 722 00:36:00,160 --> 00:36:05,250 yang tampaknya / user / bin / php, yang sebenarnya di mana interpreter PHP 723 00:36:05,250 --> 00:36:08,590 khusus tinggal di sistem kami. 724 00:36:08,590 --> 00:36:12,530 Jadi it's-- apa yang terjadi di sini adalah penafsir memahami, oh, 725 00:36:12,530 --> 00:36:17,270 Aku rupanya seharusnya menggunakan dalam program ini untuk menjalankan file ini. 726 00:36:17,270 --> 00:36:20,010 Dan sehingga memungkinkan Anda untuk melewatkan langkah 727 00:36:20,010 --> 00:36:22,979 karena harus mengatakan php something.php. 728 00:36:22,979 --> 00:36:25,020 Ada satu menangkap lainnya di sini, yang adalah bahwa jika kita 729 00:36:25,020 --> 00:36:27,320 ingin program kami untuk bekerja seperti yang diharapkan, kita 730 00:36:27,320 --> 00:36:30,220 perlu melakukan sesuatu yang disebut perubahan izin file. 731 00:36:30,220 --> 00:36:33,380 Dan kami akan go-- dan kita berbicara sedikit sedikit lebih tentang file perubahan izin 732 00:36:33,380 --> 00:36:37,550 dalam video kami pada MVC, tetapi cukuplah untuk mengatakan bahwa ini adalah apa yang perlu Anda lakukan 733 00:36:37,550 --> 00:36:42,760 untuk membuat Anda file php dieksekusi. 734 00:36:42,760 --> 00:36:49,330 Jadi mari kita lihat ini sebagai Contoh terakhir kami lebih dalam CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Jadi di sini di IDE Aku punya dua file dalam PHP direktori yang muncul tidak menjadi 736 00:36:53,910 --> 00:36:55,310 disebut .php. 737 00:36:55,310 --> 00:36:58,170 Saya memiliki fungsi yang disebut add-- Saya memiliki sebuah file yang bernama add3 738 00:36:58,170 --> 00:37:00,650 dan file disebut dice2. 739 00:37:00,650 --> 00:37:03,680 Jadi mari kita cepat melihat dan membuka add3. 740 00:37:03,680 --> 00:37:08,300 Dan seperti yang Anda lihat, di awal file saya, saya memiliki peristiwa ini, kan? 741 00:37:08,300 --> 00:37:11,420 Ini titik hash tanda seru. 742 00:37:11,420 --> 00:37:15,115 Sekarang, Anda juga akan mungkin melihat bahwa untuk beberapa alasan, 743 00:37:15,115 --> 00:37:16,990 Saya tidak memiliki sintaks apapun menyoroti lagi, 744 00:37:16,990 --> 00:37:20,198 dan ini adalah apa yang saya singgung sebelumnya, yang adalah bahwa jika saya tidak nama file saya 745 00:37:20,198 --> 00:37:23,040 php, saya tidak memiliki manfaat dari sintaks lagi. 746 00:37:23,040 --> 00:37:26,220 File ini hanya disebut add3. 747 00:37:26,220 --> 00:37:30,960 Sehingga saya bisa menjalankannya nanti dengan ./ add3 dan tidak ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Jadi reason-- itu masih baik, itu masih berlaku PHP, 749 00:37:33,680 --> 00:37:37,000 tapi itu tidak sintaks disorot, karena file ini tidak disebut something.php. 750 00:37:37,000 --> 00:37:41,580 Itulah satu-satunya perbedaan nyata di sini, ditambah shebang tersebut. 751 00:37:41,580 --> 00:37:45,170 Jadi mari kita lihat apa yang terjadi ketika Aku mencoba dan menjalankan program ini. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, seperti yang saya lakukan dengan C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Izin add3 ditolak. 754 00:37:53,190 --> 00:37:55,390 Ini adalah apa yang Anda akan untuk melihat apakah Anda lupa 755 00:37:55,390 --> 00:37:59,280 menggunakan perintah chmod untuk mengubah hak akses file. 756 00:37:59,280 --> 00:38:03,845 >> Ternyata, PHP biasa file tidak bisa hanya dijalankan. 757 00:38:03,845 --> 00:38:06,970 Mereka dapat diartikan, tapi kami melakukan sesuatu yang sedikit berbeda di sini. 758 00:38:06,970 --> 00:38:07,761 Kami dijalankan. 759 00:38:07,761 --> 00:38:12,970 Dan jadi saya perlu menambahkan izin eksekusi, chmod a + x untuk add3. 760 00:38:12,970 --> 00:38:15,680 Lalu aku bisa mengatakan add3 ./. 761 00:38:15,680 --> 00:38:16,860 Tolong beri saya nomor. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Jumlah dari dua angka-angka ini adalah 11. 764 00:38:20,490 --> 00:38:26,530 >> Demikian pula, saya sudah chmod dice2, jadi aku hanya bisa mengetik ./ dice2, 765 00:38:26,530 --> 00:38:31,260 Anda berguling 1 dan 1, Anda digulung 5 dan 4, dan seterusnya. 766 00:38:31,260 --> 00:38:33,680 >> Jadi itu cukup banyak Ide sintaks PHP, kan? 767 00:38:33,680 --> 00:38:35,221 Ada banyak untuk melewati, saya tahu. 768 00:38:35,221 --> 00:38:39,160 Tapi mudah-mudahan Anda telah melihat sekarang bahwa PHP tidak benar-benar berbeda dari C 769 00:38:39,160 --> 00:38:43,670 dan benar-benar memberi kita kemampuan untuk mengambil hal-hal takik atau dua. 770 00:38:43,670 --> 00:38:48,230 Kami tidak benar-benar perlu khawatir terlalu banyak about-- kita tidak benar-benar 771 00:38:48,230 --> 00:38:51,605 perlu khawatir terlalu banyak tentang rincian tingkat rendah kami 772 00:38:51,605 --> 00:38:52,980 harus khawatir dengan C, kan? 773 00:38:52,980 --> 00:38:56,170 Kita bisa fokus pada yang lebih tinggi tingkat hal-hal yang PHP 774 00:38:56,170 --> 00:39:01,090 memungkinkan kita untuk melakukan dan mengambil untuk diberikan bahwa itu akan bekerja untuk kita. 775 00:39:01,090 --> 00:39:04,350 Sehingga memberikan kita kemampuan sekarang, transisi dari C ke PHP, 776 00:39:04,350 --> 00:39:08,280 untuk membuat program yang lebih banyak kompleks dan mungkin jauh lebih kuat. 777 00:39:08,280 --> 00:39:13,070 >> Jadi saya harap Anda bersenang-senang kerja dengan PHP, dan aku Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Ini adalah CS50. 779 00:39:15,050 --> 00:39:17,637