1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Jadi kami telah melakukan banyak kerja dalam C, 3 00:00:07,370 --> 00:00:09,536 dan C adalah benar-benar sejuk bahasa kerana ia memberi anda 4 00:00:09,536 --> 00:00:12,840 keupayaan untuk menyelam benar-benar peringkat rendah ke dalam program anda. 5 00:00:12,840 --> 00:00:16,810 Kita dapat melakukan perkara-perkara seperti benar-benar minit sebagai memanipulasi 6 00:00:16,810 --> 00:00:18,800 bait individu ingatan. 7 00:00:18,800 --> 00:00:21,420 Ingat bahawa petunjuk yang benar-benar membenarkan kita itu. 8 00:00:21,420 --> 00:00:25,260 >> Tetapi adakah kita sentiasa perlu mempunyai bahawa tahap mewah sebutir detail 9 00:00:25,260 --> 00:00:26,820 dalam program-program kita? 10 00:00:26,820 --> 00:00:28,210 Mungkin tidak, bukan? 11 00:00:28,210 --> 00:00:30,376 Dan jika kita akan mempunyai keseimbangan antara menjadi 12 00:00:30,376 --> 00:00:32,911 dapat berbuat benar-benar, benar-benar perkara minit dan benar-benar, benar-benar 13 00:00:32,911 --> 00:00:35,910 perkara-perkara besar yang kita tidak perlu berfikir kira-kira, kita tidak perlu untuk melaksanakan 14 00:00:35,910 --> 00:00:40,290 idea-idea yang sangat besar jika mereka yang telah dibina dalam untuk kita, 15 00:00:40,290 --> 00:00:43,980 amnya untuk membina besar program atau projek-projek besar, 16 00:00:43,980 --> 00:00:49,130 kita mungkin akan sesat di sebelah kerana telah barangan bahasa yang lebih dibina pada 17 00:00:49,130 --> 00:00:51,300 untuk kita, daripada harus yang barangan peringkat rendah. 18 00:00:51,300 --> 00:00:53,970 Dan di mana PHP benar-benar datang dalam. 19 00:00:53,970 --> 00:00:58,200 >> Kini, salah satu daripada sebab bahawa kita mengajar PHP dalam CS50 20 00:00:58,200 --> 00:01:01,020 adalah bahawa ia banyak diilhamkan oleh C. Dan sebenarnya, pada pendapat saya, 21 00:01:01,020 --> 00:01:05,140 terdapat dua bahasa leluhur yang 22 00:01:05,140 --> 00:01:08,200 yang sangat biasa pada masa kini. 23 00:01:08,200 --> 00:01:10,110 C dan LISP. 24 00:01:10,110 --> 00:01:13,280 Dan mereka bahasa leluhur kerana setiap program moden yang lain 25 00:01:13,280 --> 00:01:17,380 bahasa yang telah dibangunkan sejak itu diilhamkan 26 00:01:17,380 --> 00:01:20,330 oleh satu atau sintaksis yang lain. 27 00:01:20,330 --> 00:01:26,160 PHP adalah sangat serupa sintaksis kepada C, manakala bahasa-bahasa seperti Skim ini, 28 00:01:26,160 --> 00:01:27,900 sebagai contoh, yang anda mungkin pernah mendengar, 29 00:01:27,900 --> 00:01:32,070 yang banyak diilhamkan oleh bahasa dipanggil LISP, iaitu bahasa yang lebih tua. 30 00:01:32,070 --> 00:01:34,220 >> Jadi sebab kita mengajar PHP dalam CS50 adalah bahawa, 31 00:01:34,220 --> 00:01:37,730 dengan mengetahui C sebagai asasnya seperti yang anda lakukan pada masa ini, 32 00:01:37,730 --> 00:01:41,280 mengambil PHP, yang memberikan anda keupayaan untuk melakukan sesuatu tahap yang lebih tinggi 33 00:01:41,280 --> 00:01:44,710 daripada C tidak, tidak bahawa banyak halangan, 34 00:01:44,710 --> 00:01:48,230 kerana anda sudah mempunyai Idea asas sintaks. 35 00:01:48,230 --> 00:01:50,590 C telah wujud selama hampir 45 tahun pada ketika ini. 36 00:01:50,590 --> 00:01:52,780 PHP telah wujud selama kira-kira 20 tahun. 37 00:01:52,780 --> 00:01:57,080 Dan dalam yang 25 tahun di antara, pengaturcara 38 00:01:57,080 --> 00:02:01,540 menentukan bahawa mereka akan lebih agak mempunyai kebolehan tahap yang lebih tinggi, 39 00:02:01,540 --> 00:02:04,970 dan kesilapan dan perjuangan daripada 20 tahun di antara 40 00:02:04,970 --> 00:02:08,210 membawa kepada PHP dan bahasa moden yang lain. 41 00:02:08,210 --> 00:02:11,039 >> PHP ini pilihan yang hebat untuk bahasa untuk perisian 42 00:02:11,039 --> 00:02:14,042 yang allow-- untuk perisian bahawa- di mana anda 43 00:02:14,042 --> 00:02:16,250 perlu melakukan perkara-perkara yang di C sebenarnya rumit. 44 00:02:16,250 --> 00:02:18,480 Jadi, sebagai contoh, bekerja dengan tali dalam C 45 00:02:18,480 --> 00:02:21,709 adalah sangat rumit, kerana seperti yang kita tahu, tali dalam C 46 00:02:21,709 --> 00:02:23,250 benar-benar hanya tatasusunan aksara. 47 00:02:23,250 --> 00:02:25,230 Ia bukan satu terbina dalam jenis data. 48 00:02:25,230 --> 00:02:28,220 Atau mungkin lebih asas, sesuatu yang kita tidak pun buat di dalam C, 49 00:02:28,220 --> 00:02:30,360 bagaimana jika anda perlu lakukan beberapa rangkaian komputer? 50 00:02:30,360 --> 00:02:30,860 Semua betul? 51 00:02:30,860 --> 00:02:34,920 >> C mempunyai keupayaan untuk melakukannya, tetapi ia begitu batin dan begitu sukar untuk benar-benar melakukan. 52 00:02:34,920 --> 00:02:37,580 Bukankah lebih baik jika bahasa mempunyai cara yang terbina dalam mudah 53 00:02:37,580 --> 00:02:38,910 untuk melaksanakan rangkaian? 54 00:02:38,910 --> 00:02:43,420 Dan PHP adalah bahasa yang membuat itu, atau memudahkan itu, agak sedikit lebih. 55 00:02:43,420 --> 00:02:47,740 Seperti yang saya katakan, PHP adalah sangat banyak diilhamkan oleh C. sintaks ini adalah sangat serupa. 56 00:02:47,740 --> 00:02:51,760 Dan oleh itu diharapkan dapat membuat Peralihan dari satu kepada 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 mula menulis PHP, hanya membuka fail dengan sambungan fail .php. 59 00:02:58,800 --> 00:03:00,670 Secara teknikal ini tidak sebenarnya yang diperlukan, 60 00:03:00,670 --> 00:03:04,495 tetapi jika anda mahu perkara seperti sintaks menonjolkan dalam IDE, jadi jenis yang 61 00:03:04,495 --> 00:03:07,620 nama, atau nama-nama pembolehubah, fungsi, anda tahu, kata kunci bahasa 62 00:03:07,620 --> 00:03:10,090 diketengahkan dalam warna tertentu, biasanya anda 63 00:03:10,090 --> 00:03:14,020 mahu menamakan fail anda dengan sambungan fail tertentu. 64 00:03:14,020 --> 00:03:18,430 Jadi kita telah dinamakan fail kami dengan .php yang lanjutan, tetapi kemudian juga dengan PHP, 65 00:03:18,430 --> 00:03:23,310 semua kod PHP yang kita menulis dalam bahawa fail perlu disertakan dalam PHP ini 66 00:03:23,310 --> 00:03:25,190 pembatas yang kita lihat di sini pada skrin. 67 00:03:25,190 --> 00:03:27,910 Tanda kurung sudut? Php untuk bermula. 68 00:03:27,910 --> 00:03:30,860 Kemudian kita menulis semua PHP kami kod yang kita mahu di antara. 69 00:03:30,860 --> 00:03:32,260 Dan selepas itu? 70 00:03:32,260 --> 00:03:34,710 kurung sudut untuk menutup. 71 00:03:34,710 --> 00:03:37,170 >> Jika kita tidak melakukan ini, maka apa yang akan berlaku? 72 00:03:37,170 --> 00:03:38,170 Ia tidak akan crash. 73 00:03:38,170 --> 00:03:39,410 Ia tidak akan benar-benar merosakkan program kami. 74 00:03:39,410 --> 00:03:41,440 Tetapi ia tidak akan mempunyai yang bermaksud bahawa kita mahu. 75 00:03:41,440 --> 00:03:44,540 Apa yang akan berlaku, benar-benar, bahawa apabila kita mencuba dan menjalankan program ini, 76 00:03:44,540 --> 00:03:50,330 segala-galanya tidak antara mereka pembatas akan dicetak kata demi kata. 77 00:03:50,330 --> 00:03:52,210 Ia tidak akan benar-benar melaksanakan kod, 78 00:03:52,210 --> 00:03:56,010 ia akan hanya mencetak kata demi kata. 79 00:03:56,010 --> 00:03:57,320 >> Sekarang mengapa berlaku? 80 00:03:57,320 --> 00:04:00,416 Jadi C adalah apa yang dikenali sebagai bahasa yang disusun. 81 00:04:00,416 --> 00:04:03,040 Anda mungkin biasa dengan langkah membuat program anda, 82 00:04:03,040 --> 00:04:07,820 menukarkan fail .c dan fail h menjadi laku tunggal dengan membuat, 83 00:04:07,820 --> 00:04:11,130 khususnya menggunakan Dilafaz sebagai pengkompil kami. 84 00:04:11,130 --> 00:04:13,030 PHP, walaupun, tidak mempunyai persamaan ini. 85 00:04:13,030 --> 00:04:15,600 PHP adalah apa yang dipanggil bahasa ditafsirkan. 86 00:04:15,600 --> 00:04:16,760 Dan apa maksudnya? 87 00:04:16,760 --> 00:04:20,680 >> Nah, ini bererti kita tidak perlu menukar kod sumber kami kepada sifar dan satu 88 00:04:20,680 --> 00:04:21,470 terlebih dahulu. 89 00:04:21,470 --> 00:04:23,900 Sebaliknya, ada program, yang juga dikenali sebagai 90 00:04:23,900 --> 00:04:29,771 PHP, yang memahami PHP dan jenis boleh membuat ia dengan cepat. 91 00:04:29,771 --> 00:04:32,520 Bukan itu benar-benar tepat tepat, tetapi ia adalah satu analogi yang cukup baik 92 00:04:32,520 --> 00:04:33,760 apa yang berlaku. 93 00:04:33,760 --> 00:04:37,230 Ia mentafsirkan sifar dan orang-orang yang dengan cepat. 94 00:04:37,230 --> 00:04:40,160 Dan jadi jika ia tidak tahu bagaimana untuk memproses sesuatu, 95 00:04:40,160 --> 00:04:42,800 jika ia tidak tahu bagaimana untuk proses PHP, anda mungkin 96 00:04:42,800 --> 00:04:44,680 mahu meletakkan teks yang di sana, bukan? 97 00:04:44,680 --> 00:04:48,960 >> Anda mungkin mahu meletakkan kod dalam di sana, walaupun ia bukan antara PHP-- 98 00:04:48,960 --> 00:04:50,035 yang pembatas PHP. 99 00:04:50,035 --> 00:04:51,910 But-- supaya ia tidak akan untuk memadamnya untuk anda, 100 00:04:51,910 --> 00:04:53,576 ia hanya akan pada dasarnya membuangnya. 101 00:04:53,576 --> 00:04:55,550 Jadi ia akan mencetak ia keluar ke skrin. 102 00:04:55,550 --> 00:04:57,150 >> Ini seolah-olah seperti ia yang tidak baik perkara, tetapi sebenarnya ia 103 00:04:57,150 --> 00:04:58,220 akan menjadi benar-benar perkara yang baik, kerana kita akan 104 00:04:58,220 --> 00:05:00,390 lihat apabila kita bercakap mengenai Pembangunan web PHP, 105 00:05:00,390 --> 00:05:04,010 kerana ia bermakna kita boleh diselang seli PHP dan HTML. 106 00:05:04,010 --> 00:05:06,640 Kita boleh menggunakan mereka bersama-sama untuk membuat laman web yang lebih dinamik. 107 00:05:06,640 --> 00:05:10,650 Tetapi lebih kepada yang dalam video pada PHP pembangunan web. 108 00:05:10,650 --> 00:05:12,021 >> Jadi apa sintaks PHP? 109 00:05:12,021 --> 00:05:13,520 Itulah apa yang video ini adalah semua tentang. 110 00:05:13,520 --> 00:05:14,850 Mari kita bercakap mengenainya. 111 00:05:14,850 --> 00:05:16,490 >> Jadi untuk memulakan, pembolehubah. 112 00:05:16,490 --> 00:05:18,030 PHP pembolehubah wujud. 113 00:05:18,030 --> 00:05:20,067 Terdapat hanya dua besar perbezaan dari C. 114 00:05:20,067 --> 00:05:21,900 Yang pertama adalah bahawa tidak tidak specifier jenis. 115 00:05:21,900 --> 00:05:24,245 Kami tidak perlu mengatakan int, char, float, semua barangan itu. 116 00:05:24,245 --> 00:05:25,620 Kami tidak perlu berbuat demikian lagi. 117 00:05:25,620 --> 00:05:26,810 PHP adalah bahasa moden. 118 00:05:26,810 --> 00:05:28,910 Ia boleh memikirkan apa yang anda cuba untuk melakukan atau membuat terbaik 119 00:05:28,910 --> 00:05:30,451 meneka tentang apa yang anda cuba lakukan. 120 00:05:30,451 --> 00:05:31,700 Jadi, itu cukup baik. 121 00:05:31,700 --> 00:05:35,330 >> Perkara yang lain adalah bahawa semua pembolehubah nama perlu bermula dengan tanda dolar. 122 00:05:35,330 --> 00:05:36,940 Itu hanya sesuatu untuk mendapatkan digunakan untuk. 123 00:05:36,940 --> 00:05:39,496 Ia sedikit pelik, kerana ia begitu bahawa PHP dapat memahami 124 00:05:39,496 --> 00:05:40,870 apa yang berubah-ubah dan apa yang tidak. 125 00:05:40,870 --> 00:05:43,340 Jadi setiap nama pembolehubah bermula dengan tanda dolar. 126 00:05:43,340 --> 00:05:46,884 Jadi, dalam C kita boleh berkata sesuatu seperti ini, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Kami tidak perlu berbuat demikian lagi dalam PHP. 128 00:05:48,550 --> 00:05:52,540 Kami hanya boleh berkata $ x = 54. 129 00:05:52,540 --> 00:05:55,920 Dan kita boleh berkata, sebagai contoh, dalam C, jika kita telah paun-termasuk h CS50 130 00:05:55,920 --> 00:06:00,314 fail header, kita boleh mengatakan rentetan frasa = "Ini adalah CS50." 131 00:06:00,314 --> 00:06:01,980 Kami tidak perlu berbuat demikian dalam PHP, walaupun. 132 00:06:01,980 --> 00:06:04,865 Kami hanya boleh berkata $ frasa = "Ini adalah CS50." 133 00:06:04,865 --> 00:06:08,760 Dan sebenarnya, tali kini terbina dalam jenis data dalam PHP, 134 00:06:08,760 --> 00:06:10,950 atau lebih tepat PHP memahami apa tali adalah. 135 00:06:10,950 --> 00:06:15,612 Ia adalah berasingan daripada array watak-watak seperti ia adalah dalam C. 136 00:06:15,612 --> 00:06:17,570 Semua kegemaran anda kenyataan 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 tidak ada peralihan besar di sana. 139 00:06:21,140 --> 00:06:23,400 Kita boleh iaitu- kita boleh mempunyai jika kenyataan 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 agak mudah. 142 00:06:29,690 --> 00:06:31,980 Kita boleh mempunyai jika dan lain. 143 00:06:31,980 --> 00:06:34,210 Kita boleh mempunyai jika dan lain jika. 144 00:06:34,210 --> 00:06:36,430 >> Dan melihat sesuatu cukup baik di sini, dan ini 145 00:06:36,430 --> 00:06:39,620 adalah jenis salah seorang daripada mereka kelebihan PHP berbanding C, notis 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 berubah-ubah, nama $, untuk rentetan. 148 00:06:47,737 --> 00:06:49,070 Kami tidak dapat berbuat demikian dalam C, bukan? 149 00:06:49,070 --> 00:06:53,200 Kami terpaksa menggunakan fungsi yang dipanggil StrComp atau StrEndComp atau mana-mana 150 00:06:53,200 --> 00:06:54,840 sepupu yang berkaitan. 151 00:06:54,840 --> 00:06:56,980 >> Dan sebagainya sudah kita lihat kelebihan ini. 152 00:06:56,980 --> 00:07:00,930 Kami tidak perlu melakukan sesuatu sebagai bodoh atau mungkin unintuitive 153 00:07:00,930 --> 00:07:03,540 sebagai memanggil fungsi yang dipanggil StrComp jika saya hanya mahu menguji 154 00:07:03,540 --> 00:07:05,237 sama ada nilai yang sama dengan rentetan. 155 00:07:05,237 --> 00:07:07,820 Saya hanya boleh menggunakan sama sama, seperti saya boleh berbuat apa-apa. 156 00:07:07,820 --> 00:07:09,560 Jadi ada kelebihan. 157 00:07:09,560 --> 00:07:13,350 >> Kadang-kadang, dengan cara itu, anda mungkin melihat lain jika sebagai satu perkataan, elseif. 158 00:07:13,350 --> 00:07:14,910 Dan tidak apa-apa dalam PHP juga. 159 00:07:14,910 --> 00:07:17,020 Jadi kadang-kadang anda mungkin melihat bahawa. 160 00:07:17,020 --> 00:07:17,790 Ia bukan kesilapan menaip. 161 00:07:17,790 --> 00:07:21,830 PHP sebenarnya memahami elseif. 162 00:07:21,830 --> 00:07:23,980 Saya tidak tahu mengapa mereka memutuskan untuk melaksanakan itu, 163 00:07:23,980 --> 00:07:28,220 tetapi seperti yang kita lihat banyak kali sepanjang video kami setakat ini, 164 00:07:28,220 --> 00:07:30,460 kita pengaturcara senang jika kita boleh melakukan sesuatu dengan cepat, 165 00:07:30,460 --> 00:07:33,660 supaya menghapuskan ruang yang nampaknya satu kelebihan yang 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 mempunyai pengendali pertigaan, ingat tanda tanya kolon, 168 00:07:37,540 --> 00:07:43,262 untuk bentuk benar-benar pendek jika lain atau bersyarat bercabang. 169 00:07:43,262 --> 00:07:45,470 Dan nampaknya, dalam hal ini, apa yang kita cuba lakukan di sini 170 00:07:45,470 --> 00:07:49,720 adalah menetapkan pembolehubah $ surat sama ada benar atau palsu, 171 00:07:49,720 --> 00:07:54,110 bergantung kepada sama ada $ var adalah watak abjad. 172 00:07:54,110 --> 00:07:57,320 Jadi ini adalah agak serupa dengan isalpha yang kita sudah biasa dengan dari C. 173 00:07:57,320 --> 00:07:59,010 Ini adalah jenis yang setara dengannya dalam PHP. 174 00:07:59,010 --> 00:08:01,550 Majlis tersebut nampaknya dipanggil ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 tetapi itulah bagaimana kita melakukannya dalam PHP. 176 00:08:03,450 --> 00:08:08,560 Jadi semua ini akan menjadi yang, jika $ var sepucuk surat, surat $ benar. 177 00:08:08,560 --> 00:08:13,820 Jika $ var tidak surat, $ surat adalah palsu. 178 00:08:13,820 --> 00:08:15,820 >> Kami juga mempunyai kenyataan suis masih. 179 00:08:15,820 --> 00:08:17,870 Kita masih ingat orang-orang dari C juga. 180 00:08:17,870 --> 00:08:22,480 Di bahagian paling sana, itu cara kita menjalankan sesuatu seperti mendapatkan int atau mendapatkan tali. 181 00:08:22,480 --> 00:08:23,845 Jadi PHP mempunyai yang dibina. 182 00:08:23,845 --> 00:08:25,470 Kita tidak memerlukan perpustakaan CS50 lagi. 183 00:08:25,470 --> 00:08:27,237 Kami hanya boleh menggunakan fungsi readline itu. 184 00:08:27,237 --> 00:08:29,820 Apa yang akan anda lakukan adalah cetak daripada mesej, "negeri Anda, 185 00:08:29,820 --> 00:08:33,820 sila, "dan kemudian berkelip segera menunggu pengguna untuk input 186 00:08:33,820 --> 00:08:34,739 beberapa maklumat. 187 00:08:34,739 --> 00:08:36,530 Sekarang perhatikan apa lagi boleh kita lakukan dengan suis. 188 00:08:36,530 --> 00:08:39,105 Jika anda telah menggunakan sebelum ini, mana yang diketahui suis yang 189 00:08:39,105 --> 00:08:44,960 adalah terhad cukup banyak kepada integer dan watak-watak, tetapi kini kita boleh menggunakan tali. 190 00:08:44,960 --> 00:08:50,190 Dan sebenarnya, penyata suis dalam PHP adalah agak sedikit lebih fleksibel 191 00:08:50,190 --> 00:08:54,880 daripada sepupu dari C. 192 00:08:54,880 --> 00:08:55,380 Gelung. 193 00:08:55,380 --> 00:08:58,130 Sama seperti conditional, semua kegemaran lama anda masih ada. 194 00:08:58,130 --> 00:09:00,740 Kami mempunyai manakala gelung yang mengira dari 1 hingga 100 dalam kes ini. 195 00:09:00,740 --> 00:09:03,940 Kami lakukan semasa gelung yang mengira dari 1 hingga 100, 196 00:09:03,940 --> 00:09:06,200 dan kita perlu untuk gelung yang mengira dari 1 hingga 100. 197 00:09:06,200 --> 00:09:07,220 Jadi tidak lonjakan besar di sana. 198 00:09:07,220 --> 00:09:09,360 Sintaks ini agak banyak perkara yang sama, 199 00:09:09,360 --> 00:09:11,760 kecuali sekarang kita menggunakan dolar tanda berubah-ubah dan bukannya 200 00:09:11,760 --> 00:09:17,260 mengisytiharkan pembolehubah integer atau sesuatu seperti itu bagi kaunter-kaunter kami. 201 00:09:17,260 --> 00:09:20,090 >> Berikut adalah di mana perkara mendapatkan banyak lebih baik daripada C, walaupun. 202 00:09:20,090 --> 00:09:21,020 Tatasusunan. 203 00:09:21,020 --> 00:09:23,020 Jadi ingat ketika kami berada bercakap tentang C, untuk 204 00:09:23,020 --> 00:09:25,560 untuk kami berkembang dan mengecut set maklumat, 205 00:09:25,560 --> 00:09:28,310 kami perlu menyusun lalai idea ini daripada senarai berpaut, 206 00:09:28,310 --> 00:09:30,780 kerana tatasusunan C telah ditetapkan dalam saiz. 207 00:09:30,780 --> 00:09:31,800 Kami tidak dapat mengecilkannya. 208 00:09:31,800 --> 00:09:32,930 Kami tidak dapat berkembang mereka. 209 00:09:32,930 --> 00:09:36,074 Kami terpaksa mengagihkan semula memori dan melakukan segala kegilaan ini 210 00:09:36,074 --> 00:09:38,490 atau menggunakan senarai berkaitan, yang mengambil cukup ruang sedikit lebih. 211 00:09:38,490 --> 00:09:41,590 Tetapi dalam PHP, tatasusunan adalah tidak tetap dalam saiz lagi. 212 00:09:41,590 --> 00:09:43,240 Mereka boleh membesar dan mereka boleh mengecut. 213 00:09:43,240 --> 00:09:46,660 Jadi sekali lagi, ini 20 tahun yang wujud antara keluaran pertama C 214 00:09:46,660 --> 00:09:49,440 dan yang pertama melepaskan PHP, kami mengambil keputusan itu, anda tahu, 215 00:09:49,440 --> 00:09:51,670 ia akan menjadi benar-benar hebat jika kita boleh melakukan ini. 216 00:09:51,670 --> 00:09:54,100 Dan supaya kami melaksanakan ini. 217 00:09:54,100 --> 00:09:58,040 >> Jadi tatasusunan PHP tidak tetap dalam saiz, dan kerana PHP tidak benar-benar 218 00:09:58,040 --> 00:10:03,090 mempunyai programmer hadapan menghadap tanggapan jenis, 219 00:10:03,090 --> 00:10:05,110 kita boleh mencampurkan jenis data dalam tatasusunan kita juga. 220 00:10:05,110 --> 00:10:08,100 Oleh itu, kita tidak perlu menggunakan semua integer atau semua pusat terapung, 221 00:10:08,100 --> 00:10:12,826 kita boleh mempunyai campuran semua jenis yang berbeza dalam pelbagai tunggal. 222 00:10:12,826 --> 00:10:14,700 Mengisytiharkan array adalah agak mudah. 223 00:10:14,700 --> 00:10:16,116 Ia sama seperti apa-apa ubah lain. 224 00:10:16,116 --> 00:10:20,020 $ nums = array (1, 2, 3, 4), array yang fungsi 225 00:10:20,020 --> 00:10:22,760 yang dibina ke dalam PHP yang akan mewujudkan pelbagai untuk anda. 226 00:10:22,760 --> 00:10:28,315 Ini mewujudkan pelbagai empat nilai, nombor dalam kes ini, yang dipanggil $ nums. 227 00:10:28,315 --> 00:10:29,940 Dan ada lebih daripada satu cara untuk melakukannya. 228 00:10:29,940 --> 00:10:32,420 Dan kita akan melihat ini banyak dalam PHP. 229 00:10:32,420 --> 00:10:36,380 PHP telah dibangunkan oleh yang berbeza orang dan tumbuh dan berkembang dan tumbuh. 230 00:10:36,380 --> 00:10:40,050 Ada biasanya tidak hanya dua atau tiga cara untuk melakukan sesuatu dalam PHP, 231 00:10:40,050 --> 00:10:42,170 ada biasanya seperti 10 atau 20. 232 00:10:42,170 --> 00:10:45,300 Berikut adalah hanya satu lagi biasa cara untuk mengisytiharkan array. 233 00:10:45,300 --> 00:10:48,310 $ nums = kurungan 1, 2, 3, 4 persegi. 234 00:10:48,310 --> 00:10:53,170 Jadi ini adalah jenis yang sama dengan sudut C br-- notasi kerinting, bukan. $ - 235 00:10:53,170 --> 00:10:58,525 atau ia akan menjadi nums int persegi kurungan sama kerinting 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 Dalam PHP ia $ nums = persegi kurungan 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Tetapi kedua-dua contoh di sini memberikan saya pelbagai empat dalam kes ini integer. 238 00:11:08,920 --> 00:11:10,920 >> Bagaimana jika saya mahu jelujur sesuatu pada masa ini? 239 00:11:10,920 --> 00:11:14,760 Well, saya hanya boleh berkata $ nums 4, yang sekali lagi, kami masih mengira dari 0 di sini 240 00:11:14,760 --> 00:11:17,800 dalam PHP, akan menjadi yang kelima elemen array. 241 00:11:17,800 --> 00:11:18,990 Saya hanya boleh mengatakan bahawa. 242 00:11:18,990 --> 00:11:22,860 Saya tidak akan menderita seg yang kesalahan, kerana pelbagai saya hanya 243 00:11:22,860 --> 00:11:24,337 akan berkembang untuk menampung itu. 244 00:11:24,337 --> 00:11:25,420 Itu cukup bagus, bukan? 245 00:11:25,420 --> 00:11:28,400 Dan sebenarnya, saya tidak perlu menentukan di mana saya mahu untuk meletakkan ia. 246 00:11:28,400 --> 00:11:31,220 Saya hanya boleh mengatakan ini dan hanya jelujur betul ke akhirnya, 247 00:11:31,220 --> 00:11:34,099 atau saya boleh walaupun hanya mengatakan $ nums 20 atau 1,000. 248 00:11:34,099 --> 00:11:35,140 Ia tidak benar-benar perkara itu. 249 00:11:35,140 --> 00:11:38,330 Ia masih hanya akan jelujur betul ke akhirnya. 250 00:11:38,330 --> 00:11:41,490 >> Jadi saya boleh berkembang, dan as-- kami tidak akan menutupinya di sini, 251 00:11:41,490 --> 00:11:45,360 tetapi saya boleh menyambat atau jalur unsur-unsur daripada array juga, 252 00:11:45,360 --> 00:11:50,064 dan lokasi akan mengecut untuk menampung bahawa ruang kini tiada atau kosong. 253 00:11:50,064 --> 00:11:52,230 Ada satu lagi cara untuk jelujur sesuatu ke pelbagai, 254 00:11:52,230 --> 00:11:54,330 yang merupakan fungsi yang dipanggil array_push. 255 00:11:54,330 --> 00:11:57,860 Jadi sekali lagi, hanya idea ini menjadi dapat melakukan perkara-perkara pelbagai cara. 256 00:11:57,860 --> 00:12:01,950 Oleh itu, kita telah lihat tiga cara yang berbeza sekarang untuk jelujur elemen lain ke array. 257 00:12:01,950 --> 00:12:06,900 Jadi ini menambah unsur lain hingga akhir array $ nums. 258 00:12:06,900 --> 00:12:08,340 Dan kita boleh mencampur jenis data kami. 259 00:12:08,340 --> 00:12:13,110 Jadi saya boleh mempunyai pelbagai tidak 1, 2, 3, 4, tetapi 1, benar, 3, 4, 260 00:12:13,110 --> 00:12:16,420 mana benar adalah Boolean, dan kemudian jika saya ingin jelujur pada unsur lain 261 00:12:16,420 --> 00:12:20,860 kepada pelbagai itu, mungkin tali, rentetan "lima," Saya boleh melakukannya. 262 00:12:20,860 --> 00:12:26,110 Dan kini pelbagai saya akan 1, benar, 3, 4, lima. 263 00:12:26,110 --> 00:12:28,640 Lima perkataan, bukan integer 5. 264 00:12:28,640 --> 00:12:31,270 Jadi banyak fleksibiliti sana. 265 00:12:31,270 --> 00:12:33,290 >> Fleksibiliti mendapat lebih baik, walaupun, 266 00:12:33,290 --> 00:12:37,530 kerana PHP mempunyai sokongan untuk sesuatu dipanggil pelbagai bersekutu. 267 00:12:37,530 --> 00:12:40,660 Dan kita semacam samar-samar bercakap tatasusunan tentang bersekutu dalam C 268 00:12:40,660 --> 00:12:44,740 dalam konteks jadual hash, kerana apa array bersekutu adalah benar-benar semua 269 00:12:44,740 --> 00:12:48,950 tentang membuat kunci pemetaan pasangan nilai. 270 00:12:48,950 --> 00:12:53,410 Dan dalam kes ini, jika keys-- kita sudah biasa dengan pameran dari C, 271 00:12:53,410 --> 00:12:55,440 kunci adalah nombor 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 mendapati bahawa array 0, array 1, array 2, dan sebagainya. 274 00:13:03,070 --> 00:13:06,310 Jadi kunci adalah indeks, dan nilai-nilai yang 275 00:13:06,310 --> 00:13:10,060 apa yang ada di lokasi itu pelbagai, ditentukan oleh indeks itu. 276 00:13:10,060 --> 00:13:15,130 >> Tetapi dalam PHP, kita tidak perlu melakukan ini tanggapan array 0, array 1, array 2 277 00:13:15,130 --> 00:13:15,830 lagi. 278 00:13:15,830 --> 00:13:21,025 Kami kini boleh menggunakan kata-kata sebenar untuk memetakan kunci kepada nilai-nilai. 279 00:13:21,025 --> 00:13:22,650 Oleh itu, saya boleh mengatakan sesuatu seperti ini. 280 00:13:22,650 --> 00:13:26,710 Saya boleh mencipta array menggunakan sintaks kurungan persegi seperti berikut. 281 00:13:26,710 --> 00:13:30,685 $ pizza = kurungan persegi "keju" dan kemudian 282 00:13:30,685 --> 00:13:37,210 seperti ini dua anak panah notasi, 8.99, "pepperoni," arrow 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 berlaku di sini? 285 00:13:39,060 --> 00:13:41,040 Apa yang saya benar-benar melakukannya? 286 00:13:41,040 --> 00:13:43,990 Saya mewujudkan utama pemetaan pasangan nilai. 287 00:13:43,990 --> 00:13:49,060 Jadi, daripada berkata, sebagai contoh, pizza 0, keping 1, pizza 2, 288 00:13:49,060 --> 00:13:52,350 Sekarang saya boleh mengatakan pizza keju, pizza peperoni, 289 00:13:52,350 --> 00:13:55,120 dan merujuk kepada nilai-nilai berkaitan 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, peperoni, sayur-sayuran, ayam kerbau. 292 00:13:59,870 --> 00:14:04,200 Berikut adalah anak panah yang membuat kekunci ini pemetaan pasangan nilai. 293 00:14:04,200 --> 00:14:07,420 Dan maka di sini adalah nilai-nilai di lokasi itu pelbagai. 294 00:14:07,420 --> 00:14:10,330 Oleh itu, ia seperti mengatakan pelbagai 0 sama dengan 8.99. 295 00:14:10,330 --> 00:14:11,720 Yang penting ialah 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 boleh mengatakan keju pelbagai, atau dalam hal ini kes pizza keju, keju adalah kunci, 298 00:14:19,370 --> 00:14:23,340 dan apa yang saya dapati di keju pizza adalah 8.99. 299 00:14:23,340 --> 00:14:25,540 Itulah nilai yang saya temui di sana. 300 00:14:25,540 --> 00:14:28,124 >> Jadi saya boleh mengatakan perkara yang suka. $ pizza keju = 7.99. 301 00:14:28,124 --> 00:14:29,040 Katakanlah saya mempunyai jualan. 302 00:14:29,040 --> 00:14:31,750 Saya hendak dis-- Saya mahu gugurkan harga pizza keju. 303 00:14:31,750 --> 00:14:35,620 Atau saya boleh menggunakan sayur-sayuran pizza sebagai sebahagian daripada syarat, 304 00:14:35,620 --> 00:14:39,990 atau saya boleh menambah elemen baru kepada saya pelbagai, sama seperti yang saya boleh lakukan sebelum ini. 305 00:14:39,990 --> 00:14:44,680 Saya boleh menambah elemen baru ini pelbagai bersekutu dengan kunci "bacon" 306 00:14:44,680 --> 00:14:49,250 dan nilai 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Tetapi ini jenis memperkenalkan masalah, jika anda berfikir tentang hal itu untuk kali kedua. 308 00:14:53,820 --> 00:14:55,721 Bagaimana kita akan melelar melalui pelbagai ini? 309 00:14:55,721 --> 00:14:56,220 Betul? 310 00:14:56,220 --> 00:14:59,820 Dalam C, kita hanya akan mempunyai untuk gelung, biasanya, yang 311 00:14:59,820 --> 00:15:03,650 akan berjalan dari 0 kepada saiz array tolak 1. 312 00:15:03,650 --> 00:15:08,060 Array mempunyai n unsur-unsur dalam pada itu, indeks sah 0 n tolak 1. 313 00:15:08,060 --> 00:15:11,530 Oleh itu, kita boleh menggunakan untuk gelung untuk langkah melalui setiap elemen tunggal. 314 00:15:11,530 --> 00:15:13,530 >> Tetapi itu tidak benar-benar kes itu lagi, bukan? 315 00:15:13,530 --> 00:15:17,360 Sekarang di mana kita mempunyai pasangan nilai utama pemetaan di mana kunci adalah kata-kata, 316 00:15:17,360 --> 00:15:19,970 bagaimana kita melelar atas semua perkataan? 317 00:15:19,970 --> 00:15:22,420 Well, nasib baik, PHP mempunyai cara untuk berurusan dengan ini juga, 318 00:15:22,420 --> 00:15:24,580 dan dengan itu kita akan melompat ke belakang untuk gelung untuk kali kedua 319 00:15:24,580 --> 00:15:30,780 untuk memperkenalkan sejenis keempat gelung yang wujud dalam PHP dipanggil gelung foreach. 320 00:15:30,780 --> 00:15:34,430 Dan apa gelung foreach dilakukan adalah ia pada dasarnya idea yang sama. 321 00:15:34,430 --> 00:15:36,060 Anda boleh menggunakannya untuk apa-apa jenis tatasusunan. 322 00:15:36,060 --> 00:15:38,100 Tetapi ia adalah pada dasarnya idea sama untuk gelung, 323 00:15:38,100 --> 00:15:40,750 kecuali daripada menggunakan nombor indeks, anda hanya 324 00:15:40,750 --> 00:15:45,830 mempunyai sintaks ini pelik di mana anda memanggil setiap elemen tunggal 325 00:15:45,830 --> 00:15:47,550 nama bagi maksud gelung ini. 326 00:15:47,550 --> 00:15:49,258 >> Jadi dalam kes ini, foreach ($ lokasi sebagai $ utama). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Pada asasnya, kerana itu nota komen, bahagian dalam yang gelung foreach, 329 00:15:56,450 --> 00:16:00,466 ia akan pergi ke setiap satu unsur $ array, yang biasanya 330 00:16:00,466 --> 00:16:03,340 akan menjadi pelbagai bersekutu, tetapi benar-benar boleh menjadi apa-apa jenis array 331 00:16:03,340 --> 00:16:05,419 yang anda mahu dalam PHP. 332 00:16:05,419 --> 00:16:07,210 Dan setiap kali bahawa dalam untuk gelung anda mungkin 333 00:16:07,210 --> 00:16:13,780 berkata $ lokasi kurungan persegi $ i, anda hanya boleh mengatakan $ utama. 334 00:16:13,780 --> 00:16:22,340 Supaya $ utama menjadi alias untuk setiap indeks bersekutu pelbagai PHP anda, 335 00:16:22,340 --> 00:16:23,710 dan supaya anda boleh menggunakannya seperti itu. 336 00:16:23,710 --> 00:16:25,897 >> Jadi, sebagai contoh, kami telah kini mendapat pelbagai pizza kami. 337 00:16:25,897 --> 00:16:27,730 Saya telah jenis terletak ia ke penjuru terdapat 338 00:16:27,730 --> 00:16:31,080 supaya kita boleh menggunakannya untuk melakukan contoh cepat. 339 00:16:31,080 --> 00:16:36,420 Jika saya katakan foreach ($ pizza sebagai $ pizza), baik, apa yang berlaku? 340 00:16:36,420 --> 00:16:42,400 Well, saya akan melelar melalui setiap unsur tunggal pada array $ pizza, 341 00:16:42,400 --> 00:16:46,670 dan dengan berbuat demikian, saya akan memanggil setiap elemen, apabila saya di dalam 342 00:16:46,670 --> 00:16:49,400 badan itu untuk gelung, $ pizza. 343 00:16:49,400 --> 00:16:52,440 >> Jadi itulah semacam berdiri dalam, ingat, bahawa $ pizza 344 00:16:52,440 --> 00:16:59,140 adalah berdiri dalam kerana mengatakan $ pizza kurungan persegi $ i 345 00:16:59,140 --> 00:17:03,370 jika kita menggunakan untuk gelung, di mana kita boleh pergi dari $ i = 0 hingga, dalam kes ini, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Jika kita tidak mempunyai pasangan nilai utama di sini, ini akan menjadi unsur 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 dan kami akan menggunakan untuk gelung pergi $ pizza 0, $ pizza 1, $ 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 menggantikan untuk bahawa 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 saya akan mencari at-- jika saya mencetak $ pizza, $ i? 354 00:17:35,270 --> 00:17:35,770 Betul? 355 00:17:35,770 --> 00:17:38,680 Jika saya akan mencetak unsur-i pizza, 356 00:17:38,680 --> 00:17:40,070 apa yang saya akan mencetak? 357 00:17:40,070 --> 00:17:42,580 Saya akan mencetak nilai-nilai di lokasi itu, bukan? 358 00:17:42,580 --> 00:17:45,370 Seperti jika kita telah melakukan ini dalam konteks C, 359 00:17:45,370 --> 00:17:49,786 kita tidak biasanya menggunakan iterator kami berubah-ubah, int i = 0, i adalah kurang daripada 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 pelbagai 0, pelbagai 1, array 2, array 3. 362 00:17:57,500 --> 00:17:59,580 Dan jadi apa ini mencetak keluar ialah ini. 363 00:17:59,580 --> 00:18:01,150 Ia adalah senarai 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 nota yang cepat di sini. 366 00:18:06,900 --> 00:18:10,900 A gelung foreach tidak semestinya mencetak perkara dalam perintah. 367 00:18:10,900 --> 00:18:12,770 Ia tidak dijamin. 368 00:18:12,770 --> 00:18:13,550 Ia biasanya tidak. 369 00:18:13,550 --> 00:18:17,667 Ia biasanya berdasarkan kepada susunan dalam unsur-unsur ditambah kepada pelbagai, 370 00:18:17,667 --> 00:18:18,750 jadi hanya menanggung bahawa dalam fikiran. 371 00:18:18,750 --> 00:18:20,830 Ia mungkin tidak teratur. 372 00:18:20,830 --> 00:18:23,930 Tetapi gelung foreach akan melelar di setiap elemen tunggal 373 00:18:23,930 --> 00:18:25,060 array yang berkenaan. 374 00:18:25,060 --> 00:18:27,980 Dalam kes ini, sekali lagi, lokasi iaitu $ pizza. 375 00:18:27,980 --> 00:18:32,920 >> Saya boleh menukar sintaks, walaupun, jika Saya mahu kedua-dua utama dan nilai. 376 00:18:32,920 --> 00:18:37,179 Daripada mengatakan $ pizza sebagai $ pizza, saya boleh katakan ini. 377 00:18:37,179 --> 00:18:39,470 Dan jika anda melihat apa yang saya telah diserlahkan dengan warna hijau di sini, 378 00:18:39,470 --> 00:18:42,130 ia kelihatan seperti kunci pemetaan pasangan nilai. 379 00:18:42,130 --> 00:18:45,980 Dan jadi jika atasmu, walaupun anda tidak sepenuhnya pasti apa yang ia akan lakukan, 380 00:18:45,980 --> 00:18:49,300 anda mungkin boleh meneka yang $ topping akan 381 00:18:49,300 --> 00:18:53,800 menjadi kunci dalam kes ini dan $ harga akan menjadi nilai. 382 00:18:53,800 --> 00:18:59,200 Jadi, saya menggantikan kini setiap elemen sebanyak $ pizza sebagai pasangan nilai utama, 383 00:18:59,200 --> 00:19:03,900 dan sekarang saya boleh merujuk kepada kunci dan nilai, yang mungkin sangat berguna, 384 00:19:03,900 --> 00:19:05,590 sebagai contoh, seperti berikut. 385 00:19:05,590 --> 00:19:10,170 >> "A keseluruhan" - ini adalah banyak percetakan berlaku sini-- "keseluruhan A" 386 00:19:10,170 --> 00:19:17,300 topping "pizza kos $" harga, dan kemudian Saya mencetak tempoh dan garis sendeng terbalik n. 387 00:19:17,300 --> 00:19:23,420 Oleh sebab itu, notis lagi saya mempunyai akses kepada kunci, $ topping, dan nilai, $ harga. 388 00:19:23,420 --> 00:19:26,647 Jadi, anda boleh meneka apa ini akan mencetak? 389 00:19:26,647 --> 00:19:29,480 Ada banyak kenyataan cetak, tetapi terdapat hanya satu garis sendeng terbalik n, 390 00:19:29,480 --> 00:19:33,410 jadi ia akan mencetak sesuatu pada yang entire-- pada baris kod. 391 00:19:33,410 --> 00:19:36,965 >> Jika saya boleh merujuk kepada kunci dan nilai, maka sekarang, 392 00:19:36,965 --> 00:19:39,090 bukan hanya dapat untuk mencetak harga, 393 00:19:39,090 --> 00:19:41,330 Saya boleh mencetak sesuatu seperti ini. 394 00:19:41,330 --> 00:19:43,780 "A pizza keju keseluruhan kos $ 8,99." 395 00:19:43,780 --> 00:19:47,150 Dan sekarang saya menggunakan semua keys-- yang keju, peperoni, sayur-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 berbeza 398 00:19:53,980 --> 00:19:57,840 untuk melakukan gelung foreach bahawa bukan hanya memberi anda akses kepada nilai-nilai, 399 00:19:57,840 --> 00:20:02,950 ia hanya memberikan atasmu, ia memberi anda akses kepada kunci dan nilai. 400 00:20:02,950 --> 00:20:04,411 >> Jadi mencetak maklumat. 401 00:20:04,411 --> 00:20:07,410 Saya sudah melakukannya beberapa cara yang berbeza, anda mungkin akan melihat. 402 00:20:07,410 --> 00:20:11,080 Dua fungsi kami telah terutamanya dilihat adalah cetak dan gema. 403 00:20:11,080 --> 00:20:14,380 Dan untuk cukup banyak tujuan dan tujuan, mereka betul-betul sama. 404 00:20:14,380 --> 00:20:17,130 They're-- ada yang sangat halus Perbezaan itu bukan walaupun bernilai 405 00:20:17,130 --> 00:20:21,130 masuk ke dalam, tetapi pada dasarnya di mana-mana anda boleh menggunakan cetak anda mungkin boleh menggunakan 406 00:20:21,130 --> 00:20:22,370 echo 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 mempunyai banyak berbeza cara-cara untuk mencetak perkara keluar, 409 00:20:26,970 --> 00:20:30,520 dan ia juga mempunyai cara-cara untuk mengintegrasikan pembolehubah ke tengah-tengah tali. 410 00:20:30,520 --> 00:20:32,860 Jadi ingat dari C, adakah anda ingat apa fungsi 411 00:20:32,860 --> 00:20:37,580 kita boleh menggunakan untuk menggantikan pembolehubah ke dalam perkara yang kita mahu untuk mencetak? 412 00:20:37,580 --> 00:20:40,160 Anda mungkin menggunakan ini berfungsi dengan agak banyak. 413 00:20:40,160 --> 00:20:42,290 printf, bukan? 414 00:20:42,290 --> 00:20:45,290 Jadi ini adalah apa yang kita ada sebelum ini di dalam daripada konteks gelung foreach kami. 415 00:20:45,290 --> 00:20:48,000 Kami mempunyai lima mencetak penyata yang berasingan, 416 00:20:48,000 --> 00:20:50,330 kerana itu adalah satu-satunya Cara yang saya benar-benar tahu pada masa itu 417 00:20:50,330 --> 00:20:52,450 bagaimana untuk mencetak mesej. 418 00:20:52,450 --> 00:20:59,560 Saya tidak tahu bagaimana untuk mengintegrasikan $ berubah topping ke dalam kod PHP saya. 419 00:20:59,560 --> 00:21:03,700 Nah, jika saya hanya mengambil meneka liar, printf, ia sebenarnya akan bekerja. 420 00:21:03,700 --> 00:21:08,980 printf adalah fungsi yang boleh saya gunakan dalam PHP, hanya suka saya boleh menggunakannya dalam C. 421 00:21:08,980 --> 00:21:11,880 >> Dan supaya sesuatu seperti ini, printf, sekali lagi, kita sudah biasa dengan itu. 422 00:21:11,880 --> 00:21:16,420 % S pertama digantikan dengan nilai $ topping. 423 00:21:16,420 --> 00:21:19,700 % S kedua digantikan dengan nilai $ harga. 424 00:21:19,700 --> 00:21:22,630 Dan jadi saya interpellating, yang hanya cara yang mewah 425 00:21:22,630 --> 00:21:25,400 untuk mengatakan saya melekat yang pembolehubah ke lokasi itu. 426 00:21:25,400 --> 00:21:31,000 Jadi, saya memasang $ topping mana % s merah dan $ harga di mana% biru s 427 00:21:31,000 --> 00:21:36,060 adalah, dan kemudian saya akan mendapat mesej, "A pizza keju keseluruhan kos $ 8,99." 428 00:21:36,060 --> 00:21:37,750 >> Bukan satu-satunya cara saya boleh melakukannya, walaupun. 429 00:21:37,750 --> 00:21:39,760 Mungkin saya mahu menggunakan kaedah ini. 430 00:21:39,760 --> 00:21:44,890 Ini sebenarnya apa yang paling biasa dipanggil interpelasi berubah-ubah. 431 00:21:44,890 --> 00:21:45,690 Saya boleh menggunakan gema. 432 00:21:45,690 --> 00:21:47,737 Saya boleh menggunakan cetak juga, seperti yang kita akan lihat. 433 00:21:47,737 --> 00:21:48,820 Tetapi apa yang berlaku di sini? 434 00:21:48,820 --> 00:21:51,520 >> Pertama sekali, saya perlu melarikan diri tanda dolar. 435 00:21:51,520 --> 00:21:55,140 Kerana ingat, apabila kita sebenarnya mencetak harga bagi pizza, 436 00:21:55,140 --> 00:21:59,370 Saya sebenarnya pemformatan mereka sebagai angka kewangan dengan tanda dolar. 437 00:21:59,370 --> 00:22:05,635 Tetapi kita menggunakan tanda-tanda dolar juga untuk mewakili nama-nama pembolehubah dalam PHP, 438 00:22:05,635 --> 00:22:08,010 dan khususnya apabila saya menggunakan kaedah ini kerinting 439 00:22:08,010 --> 00:22:10,040 pendakap berubah-ubah kaedah interpelasi, saya perlu 440 00:22:10,040 --> 00:22:13,490 untuk melarikan diri tanda dolar saya supaya ia tidak rasa saya bercakap tentang pembolehubah. 441 00:22:13,490 --> 00:22:16,920 Ia akan benar-benar, literal mencetak tanda dolar. 442 00:22:16,920 --> 00:22:19,530 >> Jadi semacam analogize kepada apa yang anda lihat di hujung sana. 443 00:22:19,530 --> 00:22:22,832 Ia tidak benar-benar cetak garis sendeng terbalik n, bukan? 444 00:22:22,832 --> 00:22:24,290 Ia mencetak watak talian baru. 445 00:22:24,290 --> 00:22:26,750 Ini is-- ia tidak akan cetak tanda dolar garis sendeng terbalik, 446 00:22:26,750 --> 00:22:30,130 ia akan mencetak hanya watak tanda dolar. 447 00:22:30,130 --> 00:22:30,640 Idea yang sama. 448 00:22:30,640 --> 00:22:32,760 Melarikan diri urutan, apa perkara-perkara ini dipanggil. 449 00:22:32,760 --> 00:22:37,080 >> Tetapi notis bahawa saya tidak melakukan apa-apa jenis penggantian% s, 450 00:22:37,080 --> 00:22:40,050 Saya hanya benar-benar memasang dalam pembolehubah ini. 451 00:22:40,050 --> 00:22:45,110 Dan sebagainya dalam this-- apa yang akan berlaku di sini adalah bahawa nilai $ topping-- lagi, 452 00:22:45,110 --> 00:22:48,390 hanya menjaga dengan apa yang kita telah bercakap tentang keju sehingga far-- akan mendapat 453 00:22:48,390 --> 00:22:49,720 dipasang di sana. 454 00:22:49,720 --> 00:22:54,780 Dan $ harga akan menjadi apa sahaja nilai adalah di pizza, tanda kurung siku, keju, 455 00:22:54,780 --> 00:22:56,270 iaitu 8.99. 456 00:22:56,270 --> 00:23:01,860 Dan hal ini juga akan mencetak "A pizza keju keseluruhan kos $ 8,99." 457 00:23:01,860 --> 00:23:05,160 Dan seperti yang saya katakan, saya boleh menggunakan mencetak di sini dan bukannya gema, 458 00:23:05,160 --> 00:23:08,040 dan fungsi yang menjadi cukup banyak sama. 459 00:23:08,040 --> 00:23:09,660 Ia akan mencetak perkara yang sama. 460 00:23:09,660 --> 00:23:12,680 >> Ada satu lagi cara untuk melakukannya, dan ini adalah satu lagi kelebihan 461 00:23:12,680 --> 00:23:14,710 PHP bekerja dengan tali. 462 00:23:14,710 --> 00:23:17,130 Kita boleh melakukan rentetan dinamika. 463 00:23:17,130 --> 00:23:19,660 Kita boleh melakukan ini dalam C, juga, menggunakan fungsi yang dipanggil strcat, 464 00:23:19,660 --> 00:23:21,180 tetapi sekali lagi, kita terpaksa memanggil fungsi yang berasingan. 465 00:23:21,180 --> 00:23:22,640 Ia adalah keadaan kucar-kacir ini keseluruhan yang perlu dilakukan. 466 00:23:22,640 --> 00:23:24,590 Kami terpaksa paun-termasuk string.h. 467 00:23:24,590 --> 00:23:25,780 Ia adalah pengeluaran, bukan? 468 00:23:25,780 --> 00:23:30,070 Tetapi sekarang saya hanya boleh menggunakan operator dot ini untuk merangkaikan tali bersama-sama. 469 00:23:30,070 --> 00:23:34,910 >> Jadi, saya concatenating "A keseluruhan" dan maka apa sahaja nilai $ topping adalah, 470 00:23:34,910 --> 00:23:38,860 dan kemudian yang lain tali, "kos pizza $" 471 00:23:38,860 --> 00:23:42,340 dan kemudian concatenating apa sahaja nilai $ harga adalah, 472 00:23:42,340 --> 00:23:45,670 dan kemudian pada akhir sangat Saya tacking pada tempoh backslash n. 473 00:23:45,670 --> 00:23:47,926 Dan hal ini akan juga mencetak "A keseluruhan" - sekali lagi, 474 00:23:47,926 --> 00:23:50,550 jika kita berbicara mengenai golongan yang pertama unsur yang pizza array-- 475 00:23:50,550 --> 00:23:54,710 "A pizza keju keseluruhan kos $ 8,99." 476 00:23:54,710 --> 00:24:01,260 Tempoh, garis sendeng terbalik n, sekali lagi, dengan yang $ topping dan $ harga menggantikannya 477 00:24:01,260 --> 00:24:06,580 untuk apa yang kita telah dinyatakan dalam foreach kami gelung sebagai kunci pemetaan pasangan nilai. 478 00:24:06,580 --> 00:24:08,050 >> PHP boleh mengendalikan fungsi. 479 00:24:08,050 --> 00:24:11,250 Fungsi adalah sejenis penting kepada C, seperti yang kita lihat. 480 00:24:11,250 --> 00:24:14,870 Seperti pembolehubah, kita tidak perlu menentukan jenis pulangan fungsi, 481 00:24:14,870 --> 00:24:16,350 kerana ia tidak benar-benar perkara. 482 00:24:16,350 --> 00:24:18,660 Dan kita tidak menentukan jenis data apa-apa parameter, 483 00:24:18,660 --> 00:24:21,410 kerana mereka tidak benar-benar perkara, seperti yang kita lihat dalam PHP. 484 00:24:21,410 --> 00:24:24,510 Setiap fungsi diperkenalkan dengan kata kunci fungsi. 485 00:24:24,510 --> 00:24:27,920 Itulah bagaimana kita menunjukkan kepada PHP yang apa yang kita sebut sebagai fungsi. 486 00:24:27,920 --> 00:24:29,720 >> Dan kita tidak perlu menangani utama pada semua, 487 00:24:29,720 --> 00:24:33,690 kerana pentafsir, PHP jurubahasa, kerja-kerja dari atas ke bawah, 488 00:24:33,690 --> 00:24:34,190 tanpa mengira. 489 00:24:34,190 --> 00:24:35,640 Jika difikirkannya anda boleh membuat panggilan fungsi, ia akan mempunyai 490 00:24:35,640 --> 00:24:37,850 pergi mencari panggilan fungsi, walaupun ia datang kemudian. 491 00:24:37,850 --> 00:24:40,360 Tetapi ia akan membaca dari atas ke bahagian bawah, jadi kita tidak perlu untuk menentukan, 492 00:24:40,360 --> 00:24:41,500 di sini di mana anda bermula. 493 00:24:41,500 --> 00:24:46,700 Anda bermula di baris 1 anda PHP dan bekerja turun dari sana. 494 00:24:46,700 --> 00:24:49,690 >> Jadi di sini adalah bagaimana kita akan mewujudkan fungsi yang dipanggil hard_square. 495 00:24:49,690 --> 00:24:54,100 Ia nampaknya mengambil masa satu parameter, yang saya memanggil $ x. 496 00:24:54,100 --> 00:24:58,424 Fungsi ini adalah rumit hanya untuk menggambarkan pelbagai perkara. 497 00:24:58,424 --> 00:24:59,590 Kita masih mempunyai nilai-nilai balasan. 498 00:24:59,590 --> 00:25:00,870 Saya menggunakan untuk gelung di sini. 499 00:25:00,870 --> 00:25:04,970 Tetapi ia pada dasarnya hanya, apa ini berjumlah hanya $ x kali $ x. 500 00:25:04,970 --> 00:25:10,520 Apa yang saya lakukan adalah sebenarnya hanya menambah x ke 0 x kali atau $ x kepada sifar $ x masa. 501 00:25:10,520 --> 00:25:15,850 Tetapi ia berkesan betul-betul sama dengan mendarabkan $ x kali $ x. 502 00:25:15,850 --> 00:25:18,700 Saya masih boleh kembali nilai, dalam ini $ keputusan kes, 503 00:25:18,700 --> 00:25:22,060 dan saya telah membuat fungsi dalam PHP. 504 00:25:22,060 --> 00:25:24,160 >> Berikut adalah bagaimana anda boleh menggunakannya dalam konteks. 505 00:25:24,160 --> 00:25:26,020 Jadi mungkin saya di dalam beberapa fail PHP. 506 00:25:26,020 --> 00:25:29,240 Perhatikan biru sana yang Saya telah menggunakan pembatas PHP saya, 507 00:25:29,240 --> 00:25:31,010 kurung sudut tanda tanya php. 508 00:25:31,010 --> 00:25:35,180 Di antara mereka adalah semua PHP yang saya mahu menulis. 509 00:25:35,180 --> 00:25:37,840 Jadi saya nampaknya akan get-- Saya akan segera pengguna 510 00:25:37,840 --> 00:25:41,550 untuk memberikan saya nombor, kedai yang berubah-ubah, simpan dalam pembolehubah $ x, 511 00:25:41,550 --> 00:25:43,320 apa sahaja yang mereka memberikan saya. 512 00:25:43,320 --> 00:25:48,590 Kemudian saya akan echo hard_square daripada nilai itu, 513 00:25:48,590 --> 00:25:50,370 dan nampaknya akan untuk jelujur pada baris baru 514 00:25:50,370 --> 00:25:53,590 juga, dan kemudian di kemudian hari saya akan menentukan fungsi hard_square supaya 515 00:25:53,590 --> 00:25:55,550 bahawa apabila saya membuat panggilan untuk hard_square, 516 00:25:55,550 --> 00:25:58,160 ia tahu apa yang saya bercakap tentang. 517 00:25:58,160 --> 00:26:00,705 >> Sekarang, saya juga boleh melakukannya sesuatu seperti ini. 518 00:26:00,705 --> 00:26:02,050 Ini adalah sedikit berbeza. 519 00:26:02,050 --> 00:26:04,190 Ia hampir betul-betul sama seperti apa yang kita lihat sebelum ini, 520 00:26:04,190 --> 00:26:08,400 kecuali daripada berkata hanya $ x ada sebagai parameter untuk hard_square, 521 00:26:08,400 --> 00:26:11,730 Saya katakan $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Jadi ini adalah satu contoh program pertahanan, 523 00:26:14,330 --> 00:26:17,070 menjaga program anda terhadap pengguna yang berniat jahat. 524 00:26:17,070 --> 00:26:20,020 >> Ini adalah salah satu cara untuk melakukan beberapa kesilapan memeriksa bahawa kita tidak benar-benar 525 00:26:20,020 --> 00:26:24,670 mempunyai sebagai pilihan dalam C. Kita tidak boleh menentukan nilai lalai sesuatu. 526 00:26:24,670 --> 00:26:27,010 Kami sentiasa mempunyai untuk memeriksa sama ada, sebagai contoh, 527 00:26:27,010 --> 00:26:30,820 jika kita membuat panggilan kepada GetString, ia adalah paling betul jika selepas kita 528 00:26:30,820 --> 00:26:33,300 diperiksa itu, kami diperiksa sama ada rentetan 529 00:26:33,300 --> 00:26:35,504 untuk setiap pengguna yang telah menjadikan kita tidak sama dengan nol, 530 00:26:35,504 --> 00:26:37,920 kerana kita tidak mahu memulakan bekerja dengan rentetan null. 531 00:26:37,920 --> 00:26:39,670 >> Di sini, ini adalah cara yang untuk mengawal daripada itu. 532 00:26:39,670 --> 00:26:43,480 Jika pengguna tidak memberikan kita sesuatu entah bagaimana, apa yang kita akan lakukan? 533 00:26:43,480 --> 00:26:46,080 Nah, kita hanya akan mengatakan apa sahaja mereka tidak memberikan kepada kami, 534 00:26:46,080 --> 00:26:47,705 kami hanya akan pasangkan 10 sebaliknya. 535 00:26:47,705 --> 00:26:52,030 Oleh itu, jika mereka tidak memberi kita nilai, hanya menggunakan 10 secara lalai. Dan sebagainya di sini, 536 00:26:52,030 --> 00:26:53,940 melihat bahawa saya membuat yang menyeru kepada hard_square, 537 00:26:53,940 --> 00:26:55,980 tetapi tidak ada yang cepat kepada pengguna, kan? 538 00:26:55,980 --> 00:26:57,540 Saya hanya membuat panggilan kosong. 539 00:26:57,540 --> 00:27:00,860 >> Tetapi fungsi saya hard_square menjangkakan parameter. 540 00:27:00,860 --> 00:27:02,222 Apakah ini akan mencetak? 541 00:27:02,222 --> 00:27:03,680 Ia akan mencetak 100, bukan? 542 00:27:03,680 --> 00:27:05,720 Kerana pengguna tidak memberi saya apa-apa. 543 00:27:05,720 --> 00:27:08,970 Dan jadi saya hanya akan menganggap yang 10-- 10 adalah nilai lalai. 544 00:27:08,970 --> 00:27:13,760 Dan hal ini akan mencetak daripada 100 pada baris sendiri. 545 00:27:13,760 --> 00:27:16,390 >> PHP fail tidak perlu hanya satu fail. 546 00:27:16,390 --> 00:27:19,480 Anda boleh menggabungkan beberapa fail bersama-sama, sama seperti yang anda boleh dalam C. Cara yang 547 00:27:19,480 --> 00:27:24,330 kami melakukannya dalam C adalah biasanya untuk melakukan #include untuk mendapatkan fail header ditarik dalam. 548 00:27:24,330 --> 00:27:26,180 Kami tidak berbuat demikian dalam PHP. 549 00:27:26,180 --> 00:27:29,110 Kami melakukan sesuatu yang dinamakan require_once. 550 00:27:29,110 --> 00:27:33,360 Dan kemudian ada keseluruhan ini perkara, apa yang __dir__ ini? 551 00:27:33,360 --> 00:27:36,510 Itu hanya yang istimewa berubah-ubah, atau berterusan khas, 552 00:27:36,510 --> 00:27:39,030 benar-benar, yang menentukan apa yang direktori semasa anda. 553 00:27:39,030 --> 00:27:41,320 Dan supaya ia akan kelihatan di dalam direktori semasa anda 554 00:27:41,320 --> 00:27:44,900 untuk fail yang dipanggil cs50.php dalam contoh ini di sini, 555 00:27:44,900 --> 00:27:50,490 dan ia akan melekat fail yang di bahagian atas program PHP anda, 556 00:27:50,490 --> 00:27:56,980 dengan anggapan bahawa anda meletakkan memerlukan sekali line di bahagian atas fail PHP anda. 557 00:27:56,980 --> 00:28:01,474 >> Jadi PHP digunakan terutamanya, tetapi tidak secara eksklusif digunakan, 558 00:28:01,474 --> 00:28:03,140 sebagai bahasa untuk pengaturcaraan berasaskan web. 559 00:28:03,140 --> 00:28:05,270 Itu benar-benar bagaimana ia telah menjadi. 560 00:28:05,270 --> 00:28:06,980 Tetapi ia adalah satu penuh bahasa, seperti yang kita lihat. 561 00:28:06,980 --> 00:28:10,105 Kami telah melihat cukup banyak semua perkara bahawa ia boleh melakukan yang serupa dengan C, 562 00:28:10,105 --> 00:28:13,290 dan ia boleh melakukan palang pintu lebih banyak daripada itu. 563 00:28:13,290 --> 00:28:16,950 >> Tetapi kerana ia adalah bahasa penuh dan kami boleh lakukan arahan pengaturcaraan talian di dalamnya. 564 00:28:16,950 --> 00:28:18,630 Kita boleh menjalankan program baris arahan. 565 00:28:18,630 --> 00:28:22,580 Apa yang diperlukan untuk menjalankan perintah program garis yang ditulis dalam PHP 566 00:28:22,580 --> 00:28:24,260 adalah bahawa anda mempunyai jurubahasa PHP. 567 00:28:24,260 --> 00:28:27,460 Jadi ia semacam seakan-akan mempunyai pengkompil pada sistem anda 568 00:28:27,460 --> 00:28:31,100 jika anda mahu untuk menyusun kod C anda untuk menjadikan ia ke dalam fail boleh laku. 569 00:28:31,100 --> 00:28:33,810 Anda perlu mempunyai jurubahasa PHP yang wujud pada sistem anda 570 00:28:33,810 --> 00:28:37,330 supaya anda boleh mentafsir PHP fail. 571 00:28:37,330 --> 00:28:40,370 >> Andaian anda, dan biasanya jurubahasa ini dipanggil PHP, 572 00:28:40,370 --> 00:28:44,300 dan ia biasanya digabungkan dengan kebanyakan muat turun atau pemasangan PHP 573 00:28:44,300 --> 00:28:47,430 bahawa anda boleh mendapatkan talian, dan sudah tentu nama jurubahasa PHP 574 00:28:47,430 --> 00:28:49,550 kita ada dalam CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Apa yang anda lakukan adalah jenis fail php. 576 00:28:51,819 --> 00:28:53,610 Dan apa program anda akan lakukan ialah ia 577 00:28:53,610 --> 00:28:55,360 akan berjalan melalui jurubahasa, ia 578 00:28:55,360 --> 00:28:58,040 akan mengabaikan segala-galanya yang tidak di antara soalan mark-- 579 00:28:58,040 --> 00:29:03,160 atau, kurung sudut tanda tanya php, yang pembatas PHP, dan mencetak, 580 00:29:03,160 --> 00:29:07,660 dan ia akan mentafsir dan melaksanakan Kod di dalam pembatas PHP anda. 581 00:29:07,660 --> 00:29:12,850 >> Jadi mari kita pop ke CS50 IDE dan mempunyai lihat pada beberapa PHP fail, 582 00:29:12,850 --> 00:29:19,850 berjalan beberapa PHP fail, dalam arahan antara muka baris IDE CS50. 583 00:29:19,850 --> 00:29:22,100 Jadi di sini kita berada dalam CS50 IDE, dan saya telah mengambil peluang 584 00:29:22,100 --> 00:29:25,800 membuka fail yang dipanggil hello1.php. 585 00:29:25,800 --> 00:29:29,920 Dan nampaknya, atas kandungan fail tersebut hanya sebagai pembatas PHP sana, 586 00:29:29,920 --> 00:29:32,220 dan di antara, echo ("hello, dunia"). 587 00:29:32,220 --> 00:29:34,710 Ini adalah program PHP agak mudah. 588 00:29:34,710 --> 00:29:37,670 Saya hanya akan tatal ke bawah ke tetingkap terminal saya di sini, 589 00:29:37,670 --> 00:29:44,320 dan saya akan menaip php hello1.php, tekan enter. 590 00:29:44,320 --> 00:29:44,950 Hai dunia. 591 00:29:44,950 --> 00:29:48,110 Itu mungkin apa yang kita menjangkakan ia lakukan, bukan? 592 00:29:48,110 --> 00:29:51,140 >> Marilah kita pergi dan mengambil melihat satu 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 perkara yang sama, tidak banyak berlaku di sini. 595 00:29:55,090 --> 00:29:57,190 Kali ini, walaupun, saya akan meminta pengguna untuk memberi saya nama-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 $ name = readline. 598 00:30:01,340 --> 00:30:03,070 Itulah segera itu, "Siapa namamu?" 599 00:30:03,070 --> 00:30:04,880 >> Rupa-rupanya saya percetakan pada baris sendiri. 600 00:30:04,880 --> 00:30:07,220 Dan seterusnya, sebagaimana baris bawah yang akan menjadi prompt 601 00:30:07,220 --> 00:30:08,750 di mana pengguna boleh memasukkan nama mereka. 602 00:30:08,750 --> 00:30:12,030 Dan kemudian saya menggunakan sedikit interpelasi berubah-ubah di sini pada baris 3 603 00:30:12,030 --> 00:30:14,780 untuk mencetak "Hello" dan apa sahaja jenis pengguna. 604 00:30:14,780 --> 00:30:22,040 Jadi ini adalah seakan-akan berkata, Hello, koma,% s jika kita menggunakan printf dalam C. 605 00:30:22,040 --> 00:30:24,910 >> Jadi mari kita pergi dan mentafsir program ini. 606 00:30:24,910 --> 00:30:27,400 Jadi sekali lagi, saya akan tatal ke bawah ke tetingkap terminal saya. 607 00:30:27,400 --> 00:30:29,070 php hello2.php. 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 Siapa namamu? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Hello, Doug. 612 00:30:36,526 --> 00:30:39,440 Saya juga mempunyai satu lagi fail dipanggil hello3.php. 613 00:30:39,440 --> 00:30:42,850 Saya akan membersihkan saya skrin dengan kawalan L, 614 00:30:42,850 --> 00:30:46,210 dan saya akan melaksanakan itu. 615 00:30:46,210 --> 00:30:47,640 Siapa namamu? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Hello, Doug. 618 00:30:49,780 --> 00:30:56,540 Jadi tingkah laku adalah sama dengan hello2.php, tetapi mengapa ia hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Nah, di sini adalah perbezaan. 620 00:30:58,040 --> 00:31:00,620 Dalam kes ini, notis yang pada baris 1 di sini, 621 00:31:00,620 --> 00:31:04,270 Saya mempunyai sesuatu itu bukan di antara pembatas PHP. 622 00:31:04,270 --> 00:31:07,760 Saya hanya mencetak out-- atau saya hanya ditaip, "Siapa namamu?" 623 00:31:07,760 --> 00:31:12,060 Apabila jurubahasa PHP melihat ini, ia tidak mempunyai idea bagaimana untuk mentafsirkan ia sebagai PHP, 624 00:31:12,060 --> 00:31:15,060 dan sebagainya dan bukannya gagal, ia hanya akan meludah keluar. 625 00:31:15,060 --> 00:31:19,010 >> Jadi notis pada baris 3 kini, panggilan saya untuk readline, tidak ada yang cepat lagi. 626 00:31:19,010 --> 00:31:21,750 Saya hanya benar-benar akan supaya- apabila jurubahasa PHP melihat ini, 627 00:31:21,750 --> 00:31:23,400 ia akan mencetak "Siapa namamu?" 628 00:31:23,400 --> 00:31:25,941 Kemudian ia melihat, oh, OK, here's-- segala-galanya akan menjadi 629 00:31:25,941 --> 00:31:29,970 ditafsirkan sebagai PHP, jadi itulah sebabnya ia berfungsi. 630 00:31:29,970 --> 00:31:34,990 Saya tidak perlu semestinya meminta supaya- pengguna bahagian dalam readline, 631 00:31:34,990 --> 00:31:37,490 Saya hanya boleh mempunyai ia di luar daripada pembatas PHP 632 00:31:37,490 --> 00:31:41,490 dan membolehkan jurubahasa hanya mencetak bagi saya. 633 00:31:41,490 --> 00:31:45,364 >> Jadi, anda tidak benar-benar hanya mempunyai untuk mempunyai 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 sebenarnya boleh mempunyai beberapa daripada mereka, membuka dan menutup mereka seperti yang diperlukan. 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 dalam CS50 IDE mana kita menggambarkan idea ini mempunyai 638 00:31:55,070 --> 00:31:58,376 beberapa set dihalang PHP. 639 00:31:58,376 --> 00:32:02,010 >> OK, jadi saya membuka fail di sini dipanggil add1.php. 640 00:32:02,010 --> 00:32:03,390 Dan perhatikan apa yang berlaku di sini. 641 00:32:03,390 --> 00:32:08,077 Sama seperti sebelum ini, saya mempunyai tunggal PHP set pembatas. 642 00:32:08,077 --> 00:32:10,660 Saya akan mencetak mesej, "Sila berikan saya nombor." 643 00:32:10,660 --> 00:32:13,394 Kemudian saya akan membaca garis dan menyimpannya dalam $ num1 berubah-ubah. 644 00:32:13,394 --> 00:32:14,810 Kemudian saya akan mencetak lagi. 645 00:32:14,810 --> 00:32:16,310 Berikan saya beberapa kedua. 646 00:32:16,310 --> 00:32:20,450 Baca garis dari pengguna, kedai apa sahaja yang mereka ditaip dalam $ num2. 647 00:32:20,450 --> 00:32:23,980 Menambah mereka bersama-sama dan menyimpan yang menyebabkan pembolehubah yang dipanggil $ Kesimpulannya, 648 00:32:23,980 --> 00:32:26,180 dan kemudian mencetak, "The jumlah kedua-dua nombor 649 00:32:26,180 --> 00:32:29,254 adalah, "dan kemudian menginterpelasi terdapat $ jumlah wang yang berubah-ubah. 650 00:32:29,254 --> 00:32:31,170 Jadi mari kita hanya menjalankan ini melalui jurubahasa 651 00:32:31,170 --> 00:32:33,720 mengesahkan bahawa ini adalah apa yang kita harapkan. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Sila berikan saya nombor, 3. 654 00:32:38,665 --> 00:32:40,410 Sila berikan saya beberapa kedua, 4. 655 00:32:40,410 --> 00:32:43,370 Jumlah bagi kedua-dua nombor adalah 7. 656 00:32:43,370 --> 00:32:45,030 Itulah 3 tambah 4. 657 00:32:45,030 --> 00:32:45,530 OKAY? 658 00:32:45,530 --> 00:32:47,770 Jadi tiada apa yang terlalu 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 telah mendapat beberapa PHP set dihalang sana, bukan? 661 00:32:54,460 --> 00:32:59,107 Laluan 1, 3-- laluan 1 dan 3 tidak mempunyai pembatas PHP. 662 00:32:59,107 --> 00:33:00,940 Oleh itu, apabila jurubahasa melihat mereka, ia hanya 663 00:33:00,940 --> 00:33:03,220 akan meludah tepat apa yang saya telah ditaip di sana. 664 00:33:03,220 --> 00:33:05,011 Supaya di mana saya melakukan semua menyebabkan saya. 665 00:33:05,011 --> 00:33:11,220 Pada baris 2 dan 4, kita lihat yang $ biasa? jenis php daripada pembatas, 666 00:33:11,220 --> 00:33:15,210 supaya kedua-dua garisan akan melaksanakan seperti PHP. 667 00:33:15,210 --> 00:33:18,270 Dan kemudian pada baris 5, saya mempunyai ini perkara pelik di sini, bukan? 668 00:33:18,270 --> 00:33:20,480 Ini tanda kurung sudut tanda soal tanda sama. 669 00:33:20,480 --> 00:33:22,660 Saya juga akan zum masuk yang lebih jauh. 670 00:33:22,660 --> 00:33:29,270 Anda boleh melihat ini adalah apa yang saya bercakap tentang di sana, $ ini? =. 671 00:33:29,270 --> 00:33:33,420 >> Ia ternyata bahawa itu begitu umum bahawa alasan bahawa 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 Tetapi ada juga trengkas untuk itu. 675 00:33:39,220 --> 00:33:46,490 $? = Adalah PHP trengkas kerana mengatakan sesuatu seperti $? php echo jumlah wang yang 676 00:33:46,490 --> 00:33:48,350 daripada num1 num2 dan. 677 00:33:48,350 --> 00:33:51,900 Jadi ini adalah hanya satu lagi trengkas 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 Saya akan zum ke bawah sedikit. 680 00:33:57,530 --> 00:33:59,000 Sila berikan saya nombor, 4. 681 00:33:59,000 --> 00:34:00,350 Sila berikan saya beberapa kedua. 682 00:34:00,350 --> 00:34:04,650 Dan kerana saya tidak benar-benar mengambil berat tentang jenis data dalam PHP, saya boleh mengatakan 4.8. 683 00:34:04,650 --> 00:34:07,160 Jumlah bagi kedua-dua nombor adalah 8.8. 684 00:34:07,160 --> 00:34:10,179 Fungsi yang berkelakuan cukup banyak betul-betul sama seperti yang kita jangkakan, 685 00:34:10,179 --> 00:34:10,989 juga. 686 00:34:10,989 --> 00:34:13,114 Dan saya mempunyai satu lagi dibuka di sini dipanggil dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Cuba ini lagi. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Saya mempunyai satu lagi di sini dipanggil dice1.php, yang juga, lihat, 691 00:34:33,280 --> 00:34:37,440 mempunyai bahawa soalan kurung sudut menandakan notasi tanda sama di sana, 692 00:34:37,440 --> 00:34:40,659 tetapi notis bahawa dalam kes ini saya memanggil rand majlis itu, yang seperti yang anda 693 00:34:40,659 --> 00:34:42,790 jangkakan menjana nombor rawak. 694 00:34:42,790 --> 00:34:46,889 "Anda dilancarkan," dan ia akan mengira beberapa nombor rawak, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Supaya akan memberikan saya nombor dalam lingkungan 1-6. 697 00:34:49,989 --> 00:34:53,040 >> Ingatlah bahawa mod 6 akan memberi saya nombor dalam julat 0 hingga 5, 698 00:34:53,040 --> 00:34:56,630 tetapi jika saya simulasi gulung dadu, yang adalah apa yang saya lakukan di sini, 699 00:34:56,630 --> 00:35:00,040 Saya tidak mahu dadu ini untuk pergi dari 0 5, saya mahu dadu yang pergi 1-6. 700 00:35:00,040 --> 00:35:02,800 Dan jadi ini adalah satu cara untuk mendapatkan saya dalam julat 1 hingga 6. 701 00:35:02,800 --> 00:35:04,720 Saya lakukan ini dua kali. 702 00:35:04,720 --> 00:35:08,630 Jadi nampaknya Saya sedang bergolek dua dadu dalam program ini. 703 00:35:08,630 --> 00:35:15,210 >> Jadi saya akan mengosongkan skrin saya, dan saya akan melakukan php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Anda dilancarkan 4 dan 2. 705 00:35:16,640 --> 00:35:19,156 Dan jika saya menjalankan program ini sekali lagi, anda dilancarkan 5 dan 5. 706 00:35:19,156 --> 00:35:21,780 Jadi setiap kali saya menjalankan program ini, Saya mendapat nombor yang berlainan, 707 00:35:21,780 --> 00:35:24,280 kerana setiap kali saya lakukan jadi, ia bermula lebih. 708 00:35:24,280 --> 00:35:27,250 Ia akan menjana baru set nombor rawak untuk saya. 709 00:35:27,250 --> 00:35:29,790 >> Jadi, jika kita digunakan untuk menjalankan program-program dari C, 710 00:35:29,790 --> 00:35:32,520 kita digunakan untuk menaip ./ yang menamakan program, bukan? 711 00:35:32,520 --> 00:35:35,090 Itulah bagaimana kita telah melakukan semua program kami di C setakat ini. 712 00:35:35,090 --> 00:35:37,555 Kita boleh melakukan ini dalam PHP dan juga dengan menambah sesuatu yang dinamakan 713 00:35:37,555 --> 00:35:40,026 yang shebang ke atas fail PHP kami. 714 00:35:40,026 --> 00:35:41,400 Saya tahu ia adalah jenis perkataan bodoh. 715 00:35:41,400 --> 00:35:44,540 Ia pendek untuk hash bang. 716 00:35:44,540 --> 00:35:46,300 Itulah dua watak pertama di sana. 717 00:35:46,300 --> 00:35:50,030 Ingat kita panggil tanda seru kerap bang dalam sains komputer. 718 00:35:50,030 --> 00:35:51,690 Ia juga mungkin untuk bang tajam. 719 00:35:51,690 --> 00:35:53,273 Ada beberapa cara untuk menafsirkannya. 720 00:35:53,273 --> 00:35:57,320 Tetapi ia adalah pada dasarnya satu bentuk khas daripada suruhlah jurubahasa PHP 721 00:35:57,320 --> 00:36:00,160 memahami kerana, oh, saya mahu anda untuk melaksanakan program ini, 722 00:36:00,160 --> 00:36:05,250 yang nampaknya / user / bin / php, yang sebenarnya di mana jurubahasa PHP 723 00:36:05,250 --> 00:36:08,590 khusus tinggal pada sistem kami. 724 00:36:08,590 --> 00:36:12,530 Jadi it's-- apa yang berlaku di sini adalah pentafsir memahami, oh, 725 00:36:12,530 --> 00:36:17,270 Saya nampaknya sepatutnya menggunakan dalam program ini untuk menjalankan fail ini. 726 00:36:17,270 --> 00:36:20,010 Dan oleh itu membolehkan anda melangkau lebih langkah 727 00:36:20,010 --> 00:36:22,979 mempunyai untuk mengatakan php something.php. 728 00:36:22,979 --> 00:36:25,020 Ada satu tangkapan lain di sini, yang adalah bahawa jika kita 729 00:36:25,020 --> 00:36:27,320 mahu program kami untuk bekerja seperti yang diharapkan, kita 730 00:36:27,320 --> 00:36:30,220 perlu melakukan sesuatu yang dinamakan perubahan kebenaran fail. 731 00:36:30,220 --> 00:36:33,380 Dan kita akan go-- dan kita bercakap sedikit sedikit lebih banyak perubahan kebenaran mengenai fail 732 00:36:33,380 --> 00:36:37,550 dalam video kami di MVC, tetapi memadai untuk mengatakan bahawa ini adalah apa yang anda perlu lakukan 733 00:36:37,550 --> 00:36:42,760 untuk membuat anda fail .php laku. 734 00:36:42,760 --> 00:36:49,330 Jadi mari kita lihat ini sebagai contoh terakhir kami ke atas dalam CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Jadi di sini dalam IDE Saya mempunyai dua fail di dalam ini PHP direktori yang tidak kelihatan 736 00:36:53,910 --> 00:36:55,310 dipanggil .php. 737 00:36:55,310 --> 00:36:58,170 Saya mempunyai fungsi yang dipanggil add-- Saya mempunyai fail dipanggil add3 738 00:36:58,170 --> 00:37:00,650 dan fail yang dipanggil 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 boleh lihat, pada permulaan fail saya, saya mempunyai shebang ini, bukan? 741 00:37:08,300 --> 00:37:11,420 Ini titik hash tanda seru. 742 00:37:11,420 --> 00:37:15,115 Kini, anda juga akan mungkin melihat bahawa atas sebab tertentu, 743 00:37:15,115 --> 00:37:16,990 Saya tidak mempunyai apa-apa sintaks menonjolkan lagi, 744 00:37:16,990 --> 00:37:20,198 dan ini adalah apa yang saya katakan sebelum ini, yang adalah bahawa jika saya tidak menamakan fail saya 745 00:37:20,198 --> 00:37:23,040 .php, saya tidak mempunyai manfaat sintaksis menonjolkan lagi. 746 00:37:23,040 --> 00:37:26,220 Fail ini hanya dipanggil add3. 747 00:37:26,220 --> 00:37:30,960 Supaya saya boleh berjalan di kemudian hari dengan ./ add3 dan tidak ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Jadi reason-- ia masih halus, ia masih sah PHP, 749 00:37:33,680 --> 00:37:37,000 tetapi ia tidak sintaks diserlahkan, kerana fail ini tidak dipanggil something.php. 750 00:37:37,000 --> 00:37:41,580 Itulah satu-satunya perbezaan sebenar di sini, ditambah shebang itu. 751 00:37:41,580 --> 00:37:45,170 Jadi mari kita lihat apa yang berlaku apabila Saya cuba dan menjalankan program ini. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, sama seperti saya lakukan dengan C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Kebenaran add3 dinafikan. 754 00:37:53,190 --> 00:37:55,390 Ini adalah apa yang anda akan untuk melihat jika anda lupa 755 00:37:55,390 --> 00:37:59,280 untuk menggunakan arahan chmod untuk mengubah keizinan untuk fail. 756 00:37:59,280 --> 00:38:03,845 >> Ternyata, PHP biasa fail tidak boleh hanya dilaksanakan. 757 00:38:03,845 --> 00:38:06,970 Mereka boleh ditafsirkan, tetapi kami melakukan sesuatu yang berbeza di sini. 758 00:38:06,970 --> 00:38:07,761 Kami yang menyempurnakannya. 759 00:38:07,761 --> 00:38:12,970 Oleh itu, saya perlu menambah kebenaran pelaksanaan, chmod a + x untuk add3. 760 00:38:12,970 --> 00:38:15,680 Kemudian saya katakan add3 ./. 761 00:38:15,680 --> 00:38:16,860 Sila berikan saya nombor. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Jumlah bagi kedua-dua nombor adalah 11. 764 00:38:20,490 --> 00:38:26,530 >> Begitu juga, saya telah chmoded dice2, jadi saya hanya boleh menaip ./ dice2, 765 00:38:26,530 --> 00:38:31,260 anda melancarkan 1 dan 1, anda dilancarkan 5 dan 4, dan sebagainya. 766 00:38:31,260 --> 00:38:33,680 >> Jadi itulah lebih kurang idea sintaks PHP, bukan? 767 00:38:33,680 --> 00:38:35,221 Terdapat banyak untuk mendapatkan melalui, saya tahu. 768 00:38:35,221 --> 00:38:39,160 Tetapi mudah-mudahan anda telah lihat sekarang bahawa PHP tidak benar-benar berbeza daripada C 769 00:38:39,160 --> 00:38:43,670 dan benar-benar memberikan kita keupayaan mengambil perkara-perkara sehingga takuk atau dua. 770 00:38:43,670 --> 00:38:48,230 Kita tidak perlu bimbang terlalu banyak about-- kita tidak benar-benar 771 00:38:48,230 --> 00:38:51,605 perlu bimbang terlalu banyak tentang butiran peringkat rendah kita 772 00:38:51,605 --> 00:38:52,980 terpaksa bimbang dengan C, bukan? 773 00:38:52,980 --> 00:38:56,170 Kami boleh memberi tumpuan kepada yang lebih tinggi barangan tahap itu PHP 774 00:38:56,170 --> 00:39:01,090 membolehkan kita untuk melakukan dan mengambil untuk diberikan bahawa ia akan bekerja untuk kita. 775 00:39:01,090 --> 00:39:04,350 Jadi ia memberikan kita keupayaan sekarang, beralih dari C ke PHP, 776 00:39:04,350 --> 00:39:08,280 untuk membuat program-program yang lebih banyak kompleks dan mungkin banyak yang lebih mantap. 777 00:39:08,280 --> 00:39:13,070 >> Oleh itu, saya berharap anda mempunyai kerja yang menyeronokkan dengan PHP, dan saya Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Ini adalah CS50. 779 00:39:15,050 --> 00:39:17,637