1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Kaya na namin tapos ng maraming trabaho sa C, 3 00:00:07,370 --> 00:00:09,536 at C ay isang talagang cool wika sapagkat ito ay nagbibigay sa iyo 4 00:00:09,536 --> 00:00:12,840 ang kakayahan na sumisid talagang mababang antas sa iyong mga programa. 5 00:00:12,840 --> 00:00:16,810 Kumuha naming gumawa ng mga bagay tulad ng talagang minuto bilang pagmamanipula 6 00:00:16,810 --> 00:00:18,800 indibidwal na bytes ng memorya. 7 00:00:18,800 --> 00:00:21,420 Pagpapabalik na payo talaga daan sa amin na flexibility. 8 00:00:21,420 --> 00:00:25,260 >> Ngunit huwag naming palaging kailangang magkaroon ng na antas ng fine-butil ng detalye 9 00:00:25,260 --> 00:00:26,820 sa aming programa? 10 00:00:26,820 --> 00:00:28,210 Marahil hindi, di ba? 11 00:00:28,210 --> 00:00:30,376 At kung kami ay pagpunta sa may isang kalakalan-off sa pagitan ng pagiging 12 00:00:30,376 --> 00:00:32,911 magawa tunay, tunay minutong bagay at tunay, tunay 13 00:00:32,911 --> 00:00:35,910 malaking bagay na hindi namin kailangang mag-isip tungkol sa, hindi namin ay may na ipatupad 14 00:00:35,910 --> 00:00:40,290 mga tunay na malaking ideya kung na sila ay binuo sa para sa amin, 15 00:00:40,290 --> 00:00:43,980 sa pangkalahatan ay para sa pagbuo ng malaking programa o malaking proyekto, 16 00:00:43,980 --> 00:00:49,130 marahil kami ay pagpunta sa magkamali sa gilid ng pagkakaroon ng mas maraming mga bagay-bagay na wika na binuo sa 17 00:00:49,130 --> 00:00:51,300 para sa atin, sa halip ng pagkakaroon ang mababang antas na mga bagay-bagay. 18 00:00:51,300 --> 00:00:53,970 At na kung saan talaga pagdating PHP in. 19 00:00:53,970 --> 00:00:58,200 >> Ngayon, isa sa mga dahilan na magturo namin PHP sa CS50 20 00:00:58,200 --> 00:01:01,020 ay na mabigat ito ay hango sa C. At sa katunayan, sa palagay ko, 21 00:01:01,020 --> 00:01:05,140 may mga talagang dalawang ninuno wika na 22 00:01:05,140 --> 00:01:08,200 ay napaka-pangkaraniwan sa panahong ito. 23 00:01:08,200 --> 00:01:10,110 C at mautal. 24 00:01:10,110 --> 00:01:13,280 At ang mga ito ninuno wika dahil sa bawat iba pang mga modernong programming 25 00:01:13,280 --> 00:01:17,380 wika na ay bumuo ng mula noon ay inspirasyon 26 00:01:17,380 --> 00:01:20,330 sa pamamagitan ng isa o ang iba pang syntactically. 27 00:01:20,330 --> 00:01:26,160 PHP ay halos kapareho syntactically sa C, kung saan ang mga wika tulad ng Scheme, 28 00:01:26,160 --> 00:01:27,900 halimbawa, kung saan kayo ay maaaring may narinig ng, 29 00:01:27,900 --> 00:01:32,070 ay mabigat na inspirasyon sa pamamagitan ng isang wika tinatawag mautal, na kung saan ay isang mas lumang wika. 30 00:01:32,070 --> 00:01:34,220 >> Kaya ang dahilan magturo namin PHP sa CS50 ay na, 31 00:01:34,220 --> 00:01:37,730 sa pamamagitan ng pag-alam sa C bilang panimula tulad ng iyong ginagawa sa puntong ito, 32 00:01:37,730 --> 00:01:41,280 tumatawag PHP, na kung saan ay nagbibigay sa iyo ng kakayahan upang gawin mas mataas na antas ng mga bagay-bagay 33 00:01:41,280 --> 00:01:44,710 kaysa sa C ay, ay hindi na marami ng isang sagabal, 34 00:01:44,710 --> 00:01:48,230 dahil ikaw ay mayroon na ng pangunahing ideya ng syntax. 35 00:01:48,230 --> 00:01:50,590 C ay nai-paligid para sa halos 45 taon sa puntong ito. 36 00:01:50,590 --> 00:01:52,780 PHP ay nai-paligid para sa mga tungkol sa 20 taon. 37 00:01:52,780 --> 00:01:57,080 At sa 25 taon sa pagitan ng, mga programmer 38 00:01:57,080 --> 00:02:01,540 tinutukoy na gagawin nila marami sa halip ay may mas mataas na mga kakayahan na antas, 39 00:02:01,540 --> 00:02:04,970 at ang mga pagkakamali at pakikibaka ng 20 taon sa pagitan ng 40 00:02:04,970 --> 00:02:08,210 humantong sa PHP at iba pang mga modernong wika. 41 00:02:08,210 --> 00:02:11,039 >> PHP isang mahusay na pagpipilian ng mga wika para sa software 42 00:02:11,039 --> 00:02:14,042 na allow-- para software na- kung saan mo 43 00:02:14,042 --> 00:02:16,250 kailangan mong gawin ang mga bagay-bagay na sa C ay talagang kumplikado. 44 00:02:16,250 --> 00:02:18,480 Kaya halimbawa, nagtatrabaho sa mga string sa C 45 00:02:18,480 --> 00:02:21,709 ay masyadong kumplikado, dahil dahil alam namin, mga string sa C 46 00:02:21,709 --> 00:02:23,250 ay talagang lamang array ng mga character. 47 00:02:23,250 --> 00:02:25,230 Ito ay hindi isang built-in na uri ng data. 48 00:02:25,230 --> 00:02:28,220 O marahil higit sa panimula, isang bagay na hindi namin kahit na nag-cover sa C, 49 00:02:28,220 --> 00:02:30,360 kung ano ang kailangan mong gawin ilang networking computer? 50 00:02:30,360 --> 00:02:30,860 Lahat tama? 51 00:02:30,860 --> 00:02:34,920 >> C ay may kakayahan na gawin ito, ngunit ito ay kaya arcane at kaya mahirap na talagang gawin. 52 00:02:34,920 --> 00:02:37,580 Hindi ba ito ay nice kung ang nagkaroon wika ng isang built-in, madaling paraan 53 00:02:37,580 --> 00:02:38,910 upang ipatupad ang networking? 54 00:02:38,910 --> 00:02:43,420 At PHP ay isang wika na gumagawa nito, o nangangasiwa nito, lubos ng kaunti pa. 55 00:02:43,420 --> 00:02:47,740 Tulad ng sinabi ko, PHP ay tunay mabigat na inspirasyon sa pamamagitan ng C. Ang syntax ay halos katulad na. 56 00:02:47,740 --> 00:02:51,760 At sa gayon ito ay dapat sana ay gumawa ng paglipat mula sa isa sa iba pang 57 00:02:51,760 --> 00:02:54,710 Medyo hinaan kaysa sa ilang ay maaaring maging iba pang mga wika. 58 00:02:54,710 --> 00:02:58,800 >> Upang simulan ang pagsusulat ng PHP, buksan lamang up isang file na may .php file extension. 59 00:02:58,800 --> 00:03:00,670 Technically ito ay hindi talagang kinakailangan, 60 00:03:00,670 --> 00:03:04,495 ngunit kung nais mong ang mga bagay tulad syntax highlight sa IDE, kaya type na 61 00:03:04,495 --> 00:03:07,620 pangalan, o mga pangalan ng variable, function, alam mo, ang mga keyword ng mga wika 62 00:03:07,620 --> 00:03:10,090 ay naka-highlight sa isang tiyak na kulay, ikaw ay karaniwang 63 00:03:10,090 --> 00:03:14,020 nais na pangalanan ang iyong mga file na may isang partikular na extension file. 64 00:03:14,020 --> 00:03:18,430 Kaya pinangalanan namin ang aming file na may isang .php extension, ngunit pagkatapos ay din sa PHP, 65 00:03:18,430 --> 00:03:23,310 lahat ng PHP code isulat namin sa na file ay dapat na nakapaloob sa mga PHP 66 00:03:23,310 --> 00:03:25,190 delimiter na ating nakikita dito sa screen. 67 00:03:25,190 --> 00:03:27,910 Angle bracket? Php upang magsimula. 68 00:03:27,910 --> 00:03:30,860 Pagkatapos ay isulat namin ang lahat ng aming mga PHP code na gusto namin sa pagitan. 69 00:03:30,860 --> 00:03:32,260 At pagkatapos? 70 00:03:32,260 --> 00:03:34,710 angle bracket upang isara. 71 00:03:34,710 --> 00:03:37,170 >> Kung hindi namin gawin ito, pagkatapos kung ano ang nangyayari sa mangyayari? 72 00:03:37,170 --> 00:03:38,170 Hindi ito ang pagpunta sa crash. 73 00:03:38,170 --> 00:03:39,410 Hindi Ito ay pagpunta sa talagang sanhi ng kapahamakan ng aming programa. 74 00:03:39,410 --> 00:03:41,440 Ngunit hindi ito ay pagpunta sa may ang epekto na gusto namin. 75 00:03:41,440 --> 00:03:44,540 Ano kaya ang mangyari, talaga, ay na kapag sinubukan namin at patakbuhin ang program na ito, 76 00:03:44,540 --> 00:03:50,330 ang lahat ng bagay na hindi sa pagitan ng mga delimiter ay pagpunta sa ipi-print out verbatim. 77 00:03:50,330 --> 00:03:52,210 Hindi Ito ay pagpunta sa talaga execute ang code, 78 00:03:52,210 --> 00:03:56,010 ito ay pagpunta sa makatarungan i-print ito verbatim. 79 00:03:56,010 --> 00:03:57,320 >> Ngayon kung bakit ang kaso? 80 00:03:57,320 --> 00:04:00,416 Kaya C ay kung ano ang na kilala bilang naipon wika. 81 00:04:00,416 --> 00:04:03,040 Ikaw ay malamang na pamilyar sa ang hakbang ng paggawa ng iyong mga programa, 82 00:04:03,040 --> 00:04:07,820 pag-on ang C file at h file sa isang solong mga maipapatupad na may make, 83 00:04:07,820 --> 00:04:11,130 sa mga partikular na gamit Kalatungin bilang aming compiler. 84 00:04:11,130 --> 00:04:13,030 PHP, bagaman, ay hindi may katumbas na ito. 85 00:04:13,030 --> 00:04:15,600 PHP ay kung ano ang tinatawag na isang naisalin na wika. 86 00:04:15,600 --> 00:04:16,760 At kung ano ang ibig sabihin nito? 87 00:04:16,760 --> 00:04:20,680 >> Well, ang ibig sabihin nito hindi namin ay may upang i-convert aming source code sa zero at mga 88 00:04:20,680 --> 00:04:21,470 sa simula pa. 89 00:04:21,470 --> 00:04:23,900 Sa halip, may isang programa, na kung saan ay tinatawag din na 90 00:04:23,900 --> 00:04:29,771 PHP, na nauunawaan PHP at Maaari uri ng gumawa ito sa fly. 91 00:04:29,771 --> 00:04:32,520 Iyan ay hindi talagang eksakto tumpak, ngunit ito ay isang magandang magandang pagkakatulad 92 00:04:32,520 --> 00:04:33,760 ng kung ano ang nangyayari. 93 00:04:33,760 --> 00:04:37,230 Ito ay pagbibigay-kahulugan sa mga zeroes at mga on the fly. 94 00:04:37,230 --> 00:04:40,160 At kaya kung ito ay hindi alam paano i-proseso ang isang bagay, 95 00:04:40,160 --> 00:04:42,800 kung ito ay hindi alam kung paano proseso PHP, ikaw ay malamang na 96 00:04:42,800 --> 00:04:44,680 nais na ilagay ang teksto na doon, di ba? 97 00:04:44,680 --> 00:04:48,960 >> Ikaw ay malamang na nais na ilagay ang code na ito sa doon, kahit na ito ay hindi sa pagitan PHP-- 98 00:04:48,960 --> 00:04:50,035 ang delimiter PHP. 99 00:04:50,035 --> 00:04:51,910 But-- kaya hindi ito ay pagpunta upang tanggalin ito para sa iyo, 100 00:04:51,910 --> 00:04:53,576 lamang ito ng pagpunta sa isa lamang itapon ito. 101 00:04:53,576 --> 00:04:55,550 Kaya ito ay pagpunta sa i-print ito sa screen. 102 00:04:55,550 --> 00:04:57,150 >> Ito tila tulad ng ito ay isang masamang bagay, ngunit talagang ito ay 103 00:04:57,150 --> 00:04:58,220 pagpunta sa maging isang tunay na magandang bagay, tulad bibigyan namin ng 104 00:04:58,220 --> 00:05:00,390 makita kapag kami makipag-usap tungkol sa PHP web development, 105 00:05:00,390 --> 00:05:04,010 dahil ito ay nangangahulugan na maaari naming makalat ang PHP at HTML. 106 00:05:04,010 --> 00:05:06,640 Maaari naming gamitin ang mga ito nang sama-sama upang lumikha ng isang mas dynamic na web page. 107 00:05:06,640 --> 00:05:10,650 Ngunit higit pa sa na sa video sa PHP web development. 108 00:05:10,650 --> 00:05:12,021 >> Kaya kung ano ang syntax ng PHP? 109 00:05:12,021 --> 00:05:13,520 Iyon ay kung ano ang video na ito ay tungkol sa lahat. 110 00:05:13,520 --> 00:05:14,850 Usapan natin ang tungkol dito. 111 00:05:14,850 --> 00:05:16,490 >> Kaya upang simulan out, variable. 112 00:05:16,490 --> 00:05:18,030 Umiiral variable PHP. 113 00:05:18,030 --> 00:05:20,067 Mayroong dalawang malaking lamang pagkakaiba mula sa C. 114 00:05:20,067 --> 00:05:21,900 Ang una ay na mayroong walang uri specifier. 115 00:05:21,900 --> 00:05:24,245 Wala kaming sabihin int, char, float, ang lahat ng mga bagay-bagay. 116 00:05:24,245 --> 00:05:25,620 Hindi namin ay may gawin na anymore. 117 00:05:25,620 --> 00:05:26,810 PHP ay isang modernong wika. 118 00:05:26,810 --> 00:05:28,910 Maaari itong malaman kung ano ang iyong sinusubukan na gawin o gumawa ng isang pinakamahusay na 119 00:05:28,910 --> 00:05:30,451 hulaan bilang sa kung ano ang sinusubukan mong gawin. 120 00:05:30,451 --> 00:05:31,700 Kaya na medyo nice. 121 00:05:31,700 --> 00:05:35,330 >> Ang iba pang mga bagay ay na ang lahat ng variable mga pangalan ay may upang magsimula sa isang dollar sign. 122 00:05:35,330 --> 00:05:36,940 Iyan ay isang bagay lamang upang masanay. 123 00:05:36,940 --> 00:05:39,496 Ito ay isang maliit na kakaiba, dahil ito ay sa gayon ay maunawaan PHP 124 00:05:39,496 --> 00:05:40,870 kung ano ang isang variable at kung ano ang hindi. 125 00:05:40,870 --> 00:05:43,340 Kaya ang bawat pangalan ng variable nagsisimula sa isang dollar sign. 126 00:05:43,340 --> 00:05:46,884 Kaya sa C maaari naming sabihin ng isang bagay tulad nito, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Hindi namin ay may gawin na anymore sa PHP. 128 00:05:48,550 --> 00:05:52,540 Maaari lang namin sabihin $ x = 54. 129 00:05:52,540 --> 00:05:55,920 At maaari naming sabihin, halimbawa, sa C, kung kami ay pound-kasama ang CS50 h 130 00:05:55,920 --> 00:06:00,314 header ng file, maaari naming sabihin string phrase = "Ito ay CS50." 131 00:06:00,314 --> 00:06:01,980 Hindi namin ay may gawin na sa PHP, bagaman. 132 00:06:01,980 --> 00:06:04,865 Maaari lang namin sabihin $ phrase = "Ito ay CS50." 133 00:06:04,865 --> 00:06:08,760 At sa katunayan, string ay ngayon isang built-in na uri ng data sa PHP, 134 00:06:08,760 --> 00:06:10,950 o sa halip ay nauunawaan PHP kung ano ang isang string ay. 135 00:06:10,950 --> 00:06:15,612 Ito ay hiwalay mula sa isang array ng mga character tulad ng ito ay sa C. 136 00:06:15,612 --> 00:06:17,570 Ang lahat ng iyong mga paboritong kondisyon na pahayag mula sa C 137 00:06:17,570 --> 00:06:19,520 ay magagamit para sa iyo na gamitin pa rin. 138 00:06:19,520 --> 00:06:21,140 Kaya hindi sang transition doon. 139 00:06:21,140 --> 00:06:23,400 Maaari naming say-- maaari kaming magkaroon ng kung ang mga pahayag tulad nito. 140 00:06:23,400 --> 00:06:28,210 kung $ y 43, o $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Kaya na medyo tapat. 142 00:06:29,690 --> 00:06:31,980 Maaari naming magkaroon ng kung at ng iba pa. 143 00:06:31,980 --> 00:06:34,210 Maaari naming magkaroon ng kung at iba pa kung. 144 00:06:34,210 --> 00:06:36,430 >> At mapansin ang isang bagay pretty nice dito, at ito 145 00:06:36,430 --> 00:06:39,620 ay isang uri ng isa sa mga pakinabang ng PHP kumpara C, notice 146 00:06:39,620 --> 00:06:41,510 kung ano ang function hindi namin ginagamit dito? 147 00:06:41,510 --> 00:06:47,737 Kami ay gumagamit == upang ihambing ang isang variable, $ pangalan, sa isang string. 148 00:06:47,737 --> 00:06:49,070 Hindi namin mai-gawin na sa C, right? 149 00:06:49,070 --> 00:06:53,200 Kinailangan naming gamitin ang isang function na tinatawag na StrComp o StrEndComp o anumang 150 00:06:53,200 --> 00:06:54,840 ng mga nauugnay na mga pinsan. 151 00:06:54,840 --> 00:06:56,980 >> At kaya na makita natin ang mga pakinabang. 152 00:06:56,980 --> 00:07:00,930 Hindi natin kailangang gawin ang isang bagay bilang uto o marahil unintuitive 153 00:07:00,930 --> 00:07:03,540 tulad ng tawag ng isang function na tinatawag na StrComp kung gusto ko lamang na subukan 154 00:07:03,540 --> 00:07:05,237 kung ang halaga ay katumbas ng isang string. 155 00:07:05,237 --> 00:07:07,820 Hindi ko na lang gamitin ang katumbas katumbas, tulad ng maaari kong gawin ang anumang bagay. 156 00:07:07,820 --> 00:07:09,560 Kaya mayroong isang kalamangan. 157 00:07:09,560 --> 00:07:13,350 >> Kung minsan, sa daan, maaari ka makita ang ibang tao na kung bilang isang salita, elseif. 158 00:07:13,350 --> 00:07:14,910 At iyon ang OK sa PHP rin. 159 00:07:14,910 --> 00:07:17,020 Kaya minsan maaari mong makita na. 160 00:07:17,020 --> 00:07:17,790 Ito ay hindi isang typo. 161 00:07:17,790 --> 00:07:21,830 PHP talagang nauunawaan elseif. 162 00:07:21,830 --> 00:07:23,980 Hindi ko alam kung bakit sila nagpasya na ipatupad iyon, 163 00:07:23,980 --> 00:07:28,220 ngunit bilang nakakita kami ng maraming beses sa kabuuan ng aming mga video sa ngayon, 164 00:07:28,220 --> 00:07:30,460 Gustung-gusto namin programmers ito kung maaari naming mabilis na gumawa ng mga bagay, 165 00:07:30,460 --> 00:07:33,660 kaya pagkuha ng alisan ng space na ay tila isang malaking kalamangan. 166 00:07:33,660 --> 00:07:34,800 >> Kaya na kung at elseif. 167 00:07:34,800 --> 00:07:37,540 Kami rin ay may tatlong bagay operator, pagpapabalik tandang pananong colon, 168 00:07:37,540 --> 00:07:43,262 para talagang maikling form kung tao o kondisyon sumasanga. 169 00:07:43,262 --> 00:07:45,470 At tila, sa mga ito, kung ano ang aming sinusubukan na gawin dito 170 00:07:45,470 --> 00:07:49,720 ay magtalaga ng mga variable $ sulat alinman true o false, 171 00:07:49,720 --> 00:07:54,110 depende sa kung ang $ var ay isang pang-abakada character. 172 00:07:54,110 --> 00:07:57,320 Kaya ito ay medyo kapareho sa isalpha na hindi namin pamilyar sa mula sa C. 173 00:07:57,320 --> 00:07:59,010 Ito ay uri ng ang katumbas sa PHP. 174 00:07:59,010 --> 00:08:01,550 Ang function na ay tila tinatawag ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 ngunit iyan ay kung paano namin ito sa PHP. 176 00:08:03,450 --> 00:08:08,560 Kaya ang lahat ng ito ay magiging ay, kung $ var ay isang sulat, $ sulat ay totoo. 177 00:08:08,560 --> 00:08:13,820 Kung $ var ay hindi isang sulat, $ sulat ay hindi totoo. 178 00:08:13,820 --> 00:08:15,820 >> Mayroon din kaming lumipat pahayag pa rin. 179 00:08:15,820 --> 00:08:17,870 Pagpapabalik namin ang mga mula sa C pati na rin. 180 00:08:17,870 --> 00:08:22,480 Sa pinakatuktok doon, na kung paano namin gawin isang bagay tulad ng get int o makakuha ng string. 181 00:08:22,480 --> 00:08:23,845 Kaya ito ay may na binuo sa PHP. 182 00:08:23,845 --> 00:08:25,470 Hindi natin kailangan ang CS50 library anymore. 183 00:08:25,470 --> 00:08:27,237 Maaari lang namin gamitin ang function readline. 184 00:08:27,237 --> 00:08:29,820 Ano na ang pagpunta sa gawin ay i-print ang mensahe, "Ang iyong estado, 185 00:08:29,820 --> 00:08:33,820 mangyaring, "at pagkatapos ay kumikislap prompt naghihintay para sa mga user sa input 186 00:08:33,820 --> 00:08:34,739 Ibang impormasyon. 187 00:08:34,739 --> 00:08:36,530 Ngayon pansinin kung ano pa maaari naming gawin sa switch. 188 00:08:36,530 --> 00:08:39,105 Kung nagamit mo na ito bago, maaari mong isipin ang switch na 189 00:08:39,105 --> 00:08:44,960 ay limitado medyo marami sa integer at character, ngunit ngayon maaari naming gamitin ang mga string. 190 00:08:44,960 --> 00:08:50,190 At sa katunayan, ang mga pahayag na lumipat sa PHP ay lubos ng kaunti mas may kakayahang umangkop 191 00:08:50,190 --> 00:08:54,880 kaysa sa kanyang mga pinsan mula sa C. 192 00:08:54,880 --> 00:08:55,380 Loop. 193 00:08:55,380 --> 00:08:58,130 Katulad ng conditionals, ang lahat ng mga ang iyong lumang mga paborito ay pa rin doon. 194 00:08:58,130 --> 00:09:00,740 Mayroon kaming habang loop na bilangin mula 1 hanggang 100 sa kasong ito. 195 00:09:00,740 --> 00:09:03,940 Kami ay gawin habang loop na bilang mula 1 hanggang 100, 196 00:09:03,940 --> 00:09:06,200 at kami ay may para sa loop na bilangin mula 1 hanggang 100. 197 00:09:06,200 --> 00:09:07,220 Kaya walang malaking tumalon doon. 198 00:09:07,220 --> 00:09:09,360 Ang syntax ay medyo magkano ang eksaktong pareho, 199 00:09:09,360 --> 00:09:11,760 maliban na ngayon kami ay gumagamit ng sign variable dollar halip 200 00:09:11,760 --> 00:09:17,260 ng deklarasyon integer variable o isang bagay tulad na para sa aming mga counter. 201 00:09:17,260 --> 00:09:20,090 >> Narito ang kung saan ang mga bagay makakuha ng isang maraming mas mahusay kaysa sa C, kahit na. 202 00:09:20,090 --> 00:09:21,020 Ang mga array. 203 00:09:21,020 --> 00:09:23,020 Kaya pagpapabalik kapag kami ay pakikipag-usap tungkol C, upang 204 00:09:23,020 --> 00:09:25,560 para sa amin upang maging at pag-urong set ng impormasyon, 205 00:09:25,560 --> 00:09:28,310 kailangan namin upang ayusin ng default sa ideyang ito ng isang naka-link na listahan, 206 00:09:28,310 --> 00:09:30,780 dahil C array ay naayos na sa laki. 207 00:09:30,780 --> 00:09:31,800 Hindi namin mai-urong ang mga ito. 208 00:09:31,800 --> 00:09:32,930 Hindi namin maaaring lumaki ang mga ito. 209 00:09:32,930 --> 00:09:36,074 Kinailangan naming reallocate memory at gawin ang lahat ng kabaliwan na ito 210 00:09:36,074 --> 00:09:38,490 o gumamit ng mga listahan ng link, na kung saan tumagal ng hanggang lubos ng kaunti pang espasyo. 211 00:09:38,490 --> 00:09:41,590 Ngunit sa PHP, array ay hindi nakatakda sa laki anymore. 212 00:09:41,590 --> 00:09:43,240 Maaari silang lumaki at sila ay maaaring pag-urong. 213 00:09:43,240 --> 00:09:46,660 Kaya muli, mga 20 taon na ang umiiral sa pagitan ng mga unang release ng C 214 00:09:46,660 --> 00:09:49,440 at ang unang release PHP, napagpasyahan naming na, alam mo, 215 00:09:49,440 --> 00:09:51,670 ay ito ay talagang mahusay na kung maaari naming gawin ito. 216 00:09:51,670 --> 00:09:54,100 At kaya ipinatupad namin ito. 217 00:09:54,100 --> 00:09:58,040 >> Kaya array PHP ay hindi naayos sa laki, at dahil PHP ay hindi tunay 218 00:09:58,040 --> 00:10:03,090 Mayroon front nakaharap programmer iba pang bagay ng uri, 219 00:10:03,090 --> 00:10:05,110 maaari naming ihalo uri ng data sa aming mga array, masyadong. 220 00:10:05,110 --> 00:10:08,100 Kaya kahit na hindi namin ay may na gamitin ang lahat ng integer o lahat ng mga lumulutang na puntos, 221 00:10:08,100 --> 00:10:12,826 maaari kaming magkaroon ng isang halo ng lahat iba't ibang mga uri sa isang solong array. 222 00:10:12,826 --> 00:10:14,700 Ang pagdeklara ng isang array ay medyo direkta. 223 00:10:14,700 --> 00:10:16,116 Ito ay tulad ng anumang iba pang mga variable. 224 00:10:16,116 --> 00:10:20,020 $ nums = array (1, 2, 3, 4), array pagiging isang function 225 00:10:20,020 --> 00:10:22,760 na binuo sa PHP na ay lumikha ng isang array para sa iyo. 226 00:10:22,760 --> 00:10:28,315 Lumilikha ito ng isang hanay ng mga apat na mga halaga, numero sa mga kaso na ito, na tinatawag na $ nums. 227 00:10:28,315 --> 00:10:29,940 At mayroong higit sa isang paraan upang gawin ito. 228 00:10:29,940 --> 00:10:32,420 At kami ay pagpunta sa makita ang mga ito ng maraming sa PHP. 229 00:10:32,420 --> 00:10:36,380 PHP ay binuo sa pamamagitan ng maraming iba't ibang mga tao at lumalaki at lumalaki at lumalaki. 230 00:10:36,380 --> 00:10:40,050 May ay karaniwang hindi lamang ng dalawa o tatlong mga paraan upang gawin ang isang bagay sa PHP, 231 00:10:40,050 --> 00:10:42,170 mayroong karaniwang tulad ng 10 o 20. 232 00:10:42,170 --> 00:10:45,300 Narito ang isa pang lamang ng sentido paraan upang magpahayag ng isang array. 233 00:10:45,300 --> 00:10:48,310 $ nums = square bracket 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Kaya ito ay uri ng katulad sa anggulo C ni br-- curly notation suhay, sa halip. $ - 235 00:10:53,170 --> 00:10:58,525 o magiging int nums square bracket ay katumbas ng kulot suhay 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 Sa PHP ito ay $ nums = square bracket 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Ngunit ang parehong mga halimbawa dito bigyan ako isang hanay ng mga apat na sa kasong ito integer. 238 00:11:08,920 --> 00:11:10,920 >> Paano kung gusto kong mag-tak ng isang bagay sa ngayon? 239 00:11:10,920 --> 00:11:14,760 Well maaari ko bang sabihin lamang $ nums 4, na muli, kami ay pa rin ang pagbibilang mula 0 dito 240 00:11:14,760 --> 00:11:17,800 sa PHP, ay ang ika-limang element ng array. 241 00:11:17,800 --> 00:11:18,990 Maaari ko lang sabihin na. 242 00:11:18,990 --> 00:11:22,860 Hindi ako pupunta sa magdusa isang seg kasalanan, dahil ang aking array ay lamang 243 00:11:22,860 --> 00:11:24,337 pagpunta sa paglaki upang mapaunlakan iyon. 244 00:11:24,337 --> 00:11:25,420 Iyan ay medyo nice, di ba? 245 00:11:25,420 --> 00:11:28,400 At sa katunayan, hindi ko kahit na kailangan upang tukuyin kung saan gusto ko upang ilagay ito. 246 00:11:28,400 --> 00:11:31,220 Maaari ko bang sabihin lamang ito at lamang tak ito mismo sa sa dulo, 247 00:11:31,220 --> 00:11:34,099 o maaari ko kahit lamang sabihin $ nums 20 o 1,000. 248 00:11:34,099 --> 00:11:35,140 Ito ay hindi talagang mahalaga. 249 00:11:35,140 --> 00:11:38,330 Ito ay pa rin lamang ng pagpunta sa tak ito mismo sa sa dulo. 250 00:11:38,330 --> 00:11:41,490 >> Kaya ang maaari kong lalaki, at as-- hindi namin hindi pagpunta upang masakop ito sa dito, 251 00:11:41,490 --> 00:11:45,360 ngunit maaari kong magdugtong o strip mga elemento mula sa array pati na rin, 252 00:11:45,360 --> 00:11:50,064 at ang mga array ay pag-urong upang mapaunlakan na ngayon nawawala o walang laman na espasyo. 253 00:11:50,064 --> 00:11:52,230 May isa pang paraan upang tak isang bagay papunta sa isang array, 254 00:11:52,230 --> 00:11:54,330 kung saan ay isang function na tinatawag na array_push. 255 00:11:54,330 --> 00:11:57,860 Kaya muli, lamang ang ideyang ito ng pagiging maaaring gumawa ng mga bagay sa maraming iba't ibang paraan. 256 00:11:57,860 --> 00:12:01,950 Kaya nakakita kami ng tatlong iba't ibang mga paraan ngayon sa tak ibang sangkap papunta sa isang array. 257 00:12:01,950 --> 00:12:06,900 Kaya ito ay nagdadagdag ng isa pang elemento sa dulo ng $ nums array. 258 00:12:06,900 --> 00:12:08,340 At maaari naming ihalo up ang aming mga uri ng data. 259 00:12:08,340 --> 00:12:13,110 Kaya maaari akong magkaroon ng isang hanay ng mga hindi 1, 2, 3, 4, ngunit 1, totoo, 3, 4, 260 00:12:13,110 --> 00:12:16,420 na kung saan ang tunay na ay isang Boolean, at pagkatapos ay kung gusto kong tak sa isa pang elemento 261 00:12:16,420 --> 00:12:20,860 sa na array, marahil ng isang string, ang string "limang," kaya kong gawin iyon. 262 00:12:20,860 --> 00:12:26,110 At ngayon ang aking array gagawin 1, totoo, 3, 4, lima. 263 00:12:26,110 --> 00:12:28,640 Ang salitang limang, hindi ang integer 5. 264 00:12:28,640 --> 00:12:31,270 Kaya ng maraming flexibility doon. 265 00:12:31,270 --> 00:12:33,290 >> Makakakuha ng flexibility Ang mas mabuti, bagaman, 266 00:12:33,290 --> 00:12:37,530 dahil may suporta para sa isang bagay na PHP tinatawag na isang nag-uugnay array. 267 00:12:37,530 --> 00:12:40,660 At kami uri ng vaguely usapan tungkol uugnay array sa C 268 00:12:40,660 --> 00:12:44,740 sa konteksto ng hash talahanayan, dahil kung ano ang nag-uugnay array ay talagang lahat 269 00:12:44,740 --> 00:12:48,950 tungkol ay ang paggawa ng key pares halaga mappings. 270 00:12:48,950 --> 00:12:53,410 At sa kasong ito, ang keys-- kung kami ay pamilyar sa mga array mula sa C, 271 00:12:53,410 --> 00:12:55,440 ang mga susi ay index numero. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 At ang halaga ay kung ano ang nakita namin na array 0, array 1, array 2, at iba pa. 274 00:13:03,070 --> 00:13:06,310 Kaya ang susi ay ini-index, at ang mga halaga ay 275 00:13:06,310 --> 00:13:10,060 kung ano ang nasa lokasyong iyon array, tinukoy sa pamamagitan ng index na. 276 00:13:10,060 --> 00:13:15,130 >> Ngunit sa PHP, hindi kami ay may sa gawin ito kuru-kuro ng array 0, array 1, array 2 277 00:13:15,130 --> 00:13:15,830 anymore. 278 00:13:15,830 --> 00:13:21,025 Maaari naming ngayon ng aktwal na mga salita na mga key map sa mga halaga. 279 00:13:21,025 --> 00:13:22,650 At kaya ako ay maaaring sabihin ng isang bagay tulad nito. 280 00:13:22,650 --> 00:13:26,710 Kaya kong lumikha ng isang array gamit ang square bracket syntax tulad ng sumusunod. 281 00:13:26,710 --> 00:13:30,685 $ pizza = square bracket "cheese" at pagkatapos ay 282 00:13:30,685 --> 00:13:37,210 ang ganitong uri ng double arrow pagtatanda, 8.99, "pepperoni," palaso 10.99-- 9.99, 283 00:13:37,210 --> 00:13:37,880 at iba pa. 284 00:13:37,880 --> 00:13:39,060 At kaya kung ano ang nangyayari sa dito? 285 00:13:39,060 --> 00:13:41,040 Ano ang tinitingnan talagang ginagawa ko? 286 00:13:41,040 --> 00:13:43,990 Lumilikha ako ng key mappings pares ng halaga. 287 00:13:43,990 --> 00:13:49,060 Kaya sa halip na sinasabi, halimbawa, pizza 0, piraso 1, pizza 2, 288 00:13:49,060 --> 00:13:52,350 Maaari ko bang sabihin ngayon pizza keso, pizza pepperoni, 289 00:13:52,350 --> 00:13:55,120 at sumangguni sa mga halaga kaugnay sa kanila. 290 00:13:55,120 --> 00:13:56,970 >> Kaya narito ang aming mga susi sa green. 291 00:13:56,970 --> 00:13:59,870 Keso, pepperoni, gulay, kalabaw na manok. 292 00:13:59,870 --> 00:14:04,200 Narito ang arrow na gumagawa ang key na ito pares halaga mapping. 293 00:14:04,200 --> 00:14:07,420 At pagkatapos ay narito ang mga halaga sa na lokasyon array. 294 00:14:07,420 --> 00:14:10,330 Kaya ito ay tulad ng sinasabi array 0 katumbas 8.99. 295 00:14:10,330 --> 00:14:11,720 Ang susi ay 0. 296 00:14:11,720 --> 00:14:13,600 Ang halaga ay 8.99. 297 00:14:13,600 --> 00:14:19,370 Maaari ko bang sabihin ngayon array keso, o sa kaso pizza cheese, cheese ay ang susi, 298 00:14:19,370 --> 00:14:23,340 at kung ano ang nakita ko sa pizza cheese ay 8.99. 299 00:14:23,340 --> 00:14:25,540 Iyan ay ang halaga na mahanap ko doon. 300 00:14:25,540 --> 00:14:28,124 >> Kaya ang maaari kong sabihin ang mga bagay na gusto. $ pizza cheese = 7.99. 301 00:14:28,124 --> 00:14:29,040 Sabihin Nagkakaroon ako ng isang benta. 302 00:14:29,040 --> 00:14:31,750 Gusto kong dis-- gusto kong i-drop presyo ng cheese pizza. 303 00:14:31,750 --> 00:14:35,620 O maaari ko bang gamitin ang mga gulay pizza bilang bahagi ng isang kondisyon, 304 00:14:35,620 --> 00:14:39,990 o maaari ba akong magdagdag ng isang bagong sangkap sa aking array, tulad lamang na maaari kong gawin dati. 305 00:14:39,990 --> 00:14:44,680 Maaari ba akong magdagdag ng isang bagong sangkap na ito sa uugnay array gamit ang key "bacon" 306 00:14:44,680 --> 00:14:49,250 at ang halaga 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Ngunit ang ganitong uri ng nagpapakilala ng problema, kung sa tingin mo tungkol sa mga ito para sa isang segundo. 308 00:14:53,820 --> 00:14:55,721 Paano namin umulit sa pamamagitan ng array na ito? 309 00:14:55,721 --> 00:14:56,220 Right? 310 00:14:56,220 --> 00:14:59,820 Sa C, gusto naming magkaroon lamang ng isang para sa loop, kadalasan, na 311 00:14:59,820 --> 00:15:03,650 nais tumakbo mula 0 hanggang ang laki ng array minus 1. 312 00:15:03,650 --> 00:15:08,060 Array ay may n elemento sa hindi, ang wastong index ay 0 hanggang n minus 1. 313 00:15:08,060 --> 00:15:11,530 Kaya maaari naming gamitin para sa isang loop sa magbasa-basa sa bawat solong elemento. 314 00:15:11,530 --> 00:15:13,530 >> Ngunit iyon ay hindi tunay ang kaso anymore, right? 315 00:15:13,530 --> 00:15:17,360 Ngayon kung saan mayroon kaming key pares halaga mga pagmamapa kung saan ang mga susi ay salita, 316 00:15:17,360 --> 00:15:19,970 paano ko umulit sa namin ang lahat ng mga salitang ito? 317 00:15:19,970 --> 00:15:22,420 Well, sa kabutihang-palad, PHP ay isang paraan upang harapin ang mga ito masyadong, 318 00:15:22,420 --> 00:15:24,580 at sa gayon kami ay lumipat pabalik sa loop para sa isang segundo 319 00:15:24,580 --> 00:15:30,780 upang ipakilala ang isang ika-apat na uri ng loop na umiiral sa tinatawag na PHP isang foreach loop. 320 00:15:30,780 --> 00:15:34,430 At kung ano ang isang foreach loop ay ay ito ay isa lamang ang parehong ideya. 321 00:15:34,430 --> 00:15:36,060 Maaari mong gamitin ito para sa anumang uri ng array. 322 00:15:36,060 --> 00:15:38,100 Ngunit ito ay isa lamang ang parehong ideya bilang isang para sa loop, 323 00:15:38,100 --> 00:15:40,750 maliban sa halip ng paggamit index na numero, ikaw lamang 324 00:15:40,750 --> 00:15:45,830 na ito ay may kakaiba syntax kung saan tumawag ka sa bawat solong elemento 325 00:15:45,830 --> 00:15:47,550 ng isang pangalan para sa mga layunin ng loop. 326 00:15:47,550 --> 00:15:49,258 >> Kaya sa kasong ito, foreach ($ array bilang $ key). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Karaniwang, pati na tala comment, sa loob ng na foreach loop, 329 00:15:56,450 --> 00:16:00,466 ito ay pagpunta sa pumunta sa paglipas ng bawat solong elemento ng $ array, na karaniwang 330 00:16:00,466 --> 00:16:03,340 magiging isang nag-uugnay array, ngunit maaari talagang maging anumang uri ng array 331 00:16:03,340 --> 00:16:05,419 na gusto mo sa PHP. 332 00:16:05,419 --> 00:16:07,210 At sa bawat oras na sa para sa isang loop maaari ka 333 00:16:07,210 --> 00:16:13,780 may sinabi $ array square bracket $ i, maaari mong sabihin lamang $ key. 334 00:16:13,780 --> 00:16:22,340 Kaya na $ key ay nagiging isang alias para sa bawat index ng iyong PHP uugnay array, 335 00:16:22,340 --> 00:16:23,710 at sa gayon ay maaari mong gamitin ito tulad na. 336 00:16:23,710 --> 00:16:25,897 >> Kaya halimbawa, na namin ngayon nakuha ang aming pizza array. 337 00:16:25,897 --> 00:16:27,730 Uri ng ko na nakatago ang mga ito sa sulok doon 338 00:16:27,730 --> 00:16:31,080 upang maaari naming gamitin ang mga ito upang gawin ang isang mabilis na halimbawa. 339 00:16:31,080 --> 00:16:36,420 Kung aking sabihin foreach ($ pizza bilang $ pizza), well, kung ano ang nangyayari? 340 00:16:36,420 --> 00:16:42,400 Well, ako pagpunta upang umulit sa pamamagitan ng bawat single element ng array $ pizza, 341 00:16:42,400 --> 00:16:46,670 at sa paggawa nito, ako pagpunta sa tumawag sa bawat elemento, kapag sa loob ako 342 00:16:46,670 --> 00:16:49,400 ng katawan ng na para sa loop, $ pizza. 343 00:16:49,400 --> 00:16:52,440 >> Kaya na ang mga uri ng isang stand-in, pagpapabalik, na ang $ pizza 344 00:16:52,440 --> 00:16:59,140 ay isang stand-in para sa mga kasabihan $ pizza square bracket $ i 345 00:16:59,140 --> 00:17:03,370 kung gumagamit kami ng isang para sa loop, kung saan kami maaaring pumunta mula sa $ i = 0 sa, sa kasong ito, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Kung hindi namin ginawa magkaroon ng pangunahing mga pares ng halaga dito, ito ay magiging element 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 at gusto naming gamitin para sa isang loop upang pumunta $ 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 Kaya ngayon lang $ pizza ay humahalili para sa mga indibidwal na key. 351 00:17:23,130 --> 00:17:25,630 >> Kaya kung ano ang mga ito upang i-print out? 352 00:17:25,630 --> 00:17:29,030 Ako nagpi-print out $ pizza. 353 00:17:29,030 --> 00:17:35,270 Ano ako pagpunta upang mahanap at-- kung na-print ko out $ pizza, $ i? 354 00:17:35,270 --> 00:17:35,770 Right? 355 00:17:35,770 --> 00:17:38,680 Kung ako pagpunta upang i-print out ang elemento ith ng pizza, 356 00:17:38,680 --> 00:17:40,070 kung ano ako pagpunta sa i-print? 357 00:17:40,070 --> 00:17:42,580 Pupunta ako upang i-print out ang mga halaga sa lokasyon na iyon, di ba? 358 00:17:42,580 --> 00:17:45,370 Tulad ng kung kami ay ginagawa ito sa konteksto ng C, 359 00:17:45,370 --> 00:17:49,786 hindi namin karaniwang gamitin ang aming iterator variable, int i = 0, i ay mas mababa sa 3, 360 00:17:49,786 --> 00:17:52,900 i ++, i-print out 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Kami ay pag-print out array 0, array 1, array 2, array 3. 362 00:17:57,500 --> 00:17:59,580 At kaya kung ano ang mga print out ito. 363 00:17:59,580 --> 00:18:01,150 Ito ay ang listahan ng presyo. 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 >> Ngayon ang isang mabilis na tandaan dito. 366 00:18:06,900 --> 00:18:10,900 A foreach loop ay hindi kinakailangang i-print ang mga bagay-bagay sa order. 367 00:18:10,900 --> 00:18:12,770 Ito ay hindi garantisado. 368 00:18:12,770 --> 00:18:13,550 Karaniwan itong ginagawa. 369 00:18:13,550 --> 00:18:17,667 Karaniwang Ito ay batay sa mga order sa kung aling mga elemento ay idinagdag sa array, 370 00:18:17,667 --> 00:18:18,750 kaya makisama lamang na nasa isip. 371 00:18:18,750 --> 00:18:20,830 Hindi ito maaaring maging sa order. 372 00:18:20,830 --> 00:18:23,930 Ngunit isang foreach loop ay umulit sa kabuuan ng bawat solong elemento 373 00:18:23,930 --> 00:18:25,060 ng array na pinag-uusapan. 374 00:18:25,060 --> 00:18:27,980 Sa kasong ito, muli, na array ay $ pizza. 375 00:18:27,980 --> 00:18:32,920 >> Maaari ko bang baguhin ang syntax, bagaman, kung Gusto ko pareho ang susi at ang halaga. 376 00:18:32,920 --> 00:18:37,179 Sa halip na sabihing $ pizza bilang $ pizza, maaari kong sabihin na ito. 377 00:18:37,179 --> 00:18:39,470 At kung titingnan mo kung ano na ko highlight sa berde dito, 378 00:18:39,470 --> 00:18:42,130 tila isang key pares halaga mapping. 379 00:18:42,130 --> 00:18:45,980 At kaya kung you-- kahit na kayo ay hindi lubos na sigurado kung ano ang pagpunta sa gawin, 380 00:18:45,980 --> 00:18:49,300 maaari mong marahil hulaan na $ sahog sa ibabaw ay pagpunta 381 00:18:49,300 --> 00:18:53,800 na ang susi sa kasong ito at $ presyo ay magiging ang halaga. 382 00:18:53,800 --> 00:18:59,200 Kaya ako na humahalili ngayon ang bawat elemento ng $ pizza bilang isang susi pares ng halaga, 383 00:18:59,200 --> 00:19:03,900 at ngayon ay maaari kong sumangguni sa ang susi at ang halaga, na kung saan ay maaaring sa madaling-magamit, 384 00:19:03,900 --> 00:19:05,590 halimbawa, ang mga sumusunod. 385 00:19:05,590 --> 00:19:10,170 >> "Isang buong" - ito ay isang pulutong ng mga printing nangyayari here-- "Isang buong" 386 00:19:10,170 --> 00:19:17,300 sahog sa ibabaw "pizza ay nagkakahalaga ng $" presyo, at pagkatapos ay Print ko out sa isang panahon at isang backslash n. 387 00:19:17,300 --> 00:19:23,420 Kaya ngayon, notice muli May access ako sa isang susi, $ sahog sa ibabaw, at isang halaga, $ presyo. 388 00:19:23,420 --> 00:19:26,647 Kaya maaari mong hulaan kung ano ito ay pagpunta upang i-print out? 389 00:19:26,647 --> 00:19:29,480 May isang pulutong ng mga pahayag print, ngunit mayroon lamang isang backslash n, 390 00:19:29,480 --> 00:19:33,410 kaya ito ay pagpunta upang i-print ang isang bagay sa isang entire-- sa isang solong linya ng code. 391 00:19:33,410 --> 00:19:36,965 >> Kung ang maaari kong sumangguni sa mga key at ang mga halaga, at pagkatapos ngayon, 392 00:19:36,965 --> 00:19:39,090 sa halip na lamang pagiging able upang i-print out ang mga presyo, 393 00:19:39,090 --> 00:19:41,330 Maaari ko bang i-print ang isang bagay tulad nito. 394 00:19:41,330 --> 00:19:43,780 "Isang buong cheese pizza nagkakahalaga ng $ 8.99." 395 00:19:43,780 --> 00:19:47,150 At ngayon ako gamit ang lahat ng mga keys-- keso, pepperoni, gulay, 396 00:19:47,150 --> 00:19:49,640 kalabaw chicken-- at ang mga halaga. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 Kaya ito lamang ay isang iba't ibang mga paraan 398 00:19:53,980 --> 00:19:57,840 upang gawin ang isang foreach loop na sa halip ng lamang ng pagbibigay sa iyo ng access sa mga halaga, 399 00:19:57,840 --> 00:20:02,950 lamang ay nagbibigay sa you-- nagbibigay ito sa iyo access sa mga key at ang mga halaga. 400 00:20:02,950 --> 00:20:04,411 >> Kaya pag-print out ang impormasyon. 401 00:20:04,411 --> 00:20:07,410 Nagawa ko na ng isang pares ng mga iba't ibang paraan, maaari kang magkaroon ng napansin. 402 00:20:07,410 --> 00:20:11,080 Ang dalawang mga function na namin lalo nakita ay i-print at echo. 403 00:20:11,080 --> 00:20:14,380 At para sa halos lahat ng mga layunin at mga layunin, ang mga ito ay eksakto ang parehong. 404 00:20:14,380 --> 00:20:17,130 They're-- mayroong isang napaka-pino pagkakaiba na hindi kahit na nagkakahalaga ng 405 00:20:17,130 --> 00:20:21,130 pagkuha sa, ngunit isa lamang sa lahat ng dako maaari mong gamitin ang naka-print na maaari mong malamang na gamitin ang 406 00:20:21,130 --> 00:20:22,370 echo rin. 407 00:20:22,370 --> 00:20:23,610 >> At hindi iyon ang dalawang lamang. 408 00:20:23,610 --> 00:20:26,970 Ay may maraming mga iba't ibang PHP mga paraan upang i-print ang mga bagay-bagay sa labas, 409 00:20:26,970 --> 00:20:30,520 at ito rin ay may mga paraan upang pagsamahin variable sa gitna ng string. 410 00:20:30,520 --> 00:20:32,860 Kaya isipin ang mula C, gawin mo matandaan kung ano ang mga function 411 00:20:32,860 --> 00:20:37,580 maaari naming gamitin upang palitan ang mga variable sa mga bagay na gusto naming i-print out? 412 00:20:37,580 --> 00:20:40,160 Ito ay malamang na gamitin aandar pa ng maraming. 413 00:20:40,160 --> 00:20:42,290 printf, di ba? 414 00:20:42,290 --> 00:20:45,290 Kaya ito ay kung ano ang nagkaroon kami bago sa loob ng konteksto ng aming foreach loop. 415 00:20:45,290 --> 00:20:48,000 Nagkaroon kami ng mga limang hiwalay na pahayag print, 416 00:20:48,000 --> 00:20:50,330 dahil na ay ang tanging paraan ko talagang alam sa oras 417 00:20:50,330 --> 00:20:52,450 paano i-print out ng mga mensahe. 418 00:20:52,450 --> 00:20:59,560 Hindi ko alam kung paano upang maisama ang variable $ magara sa aking code na PHP. 419 00:20:59,560 --> 00:21:03,700 Well, kung ako lang kinuha ng ligaw na hula, printf, aktwal na ito ay nakapagtrabaho. 420 00:21:03,700 --> 00:21:08,980 printf ay isang function na maaari kong gamitin sa PHP, ako tulad ng ito ay maaaring gamitin lamang sa C. 421 00:21:08,980 --> 00:21:11,880 >> At kaya ang isang bagay na tulad nito, printf, muli, kami ay pamilyar sa mga iyon. 422 00:21:11,880 --> 00:21:16,420 Ang unang% s ay papalitan sa ang halaga ng $ sahog sa ibabaw. 423 00:21:16,420 --> 00:21:19,700 Ang ikalawang% s ay papalitan sa ang halaga ng $ presyo. 424 00:21:19,700 --> 00:21:22,630 At kaya ako interpellating, na kung saan ay lamang ng isang magarbong paraan 425 00:21:22,630 --> 00:21:25,400 ng mga sinasabi ako malagkit ang variable sa lokasyon na iyon. 426 00:21:25,400 --> 00:21:31,000 Kaya ako i-plug sa $ magara na kung saan ang red% s ay at $ presyo kung saan ang mga asul na% s 427 00:21:31,000 --> 00:21:36,060 ay, at pagkatapos ay Gusto ko makuha ang mensahe, "Isang buong cheese pizza nagkakahalaga ng $ 8.99." 428 00:21:36,060 --> 00:21:37,750 >> Hindi ang tanging paraan na maaari kong gawin ito, bagaman. 429 00:21:37,750 --> 00:21:39,760 Siguro Gusto ko nais na gamitin ang paraan. 430 00:21:39,760 --> 00:21:44,890 Ito ay talagang kung ano ang pinaka-karaniwang tinatawag na variable sa nagsasalita. 431 00:21:44,890 --> 00:21:45,690 Maaari ko bang gamitin ang isang echo. 432 00:21:45,690 --> 00:21:47,737 Maaari ko bang gamitin ang isang print masyadong, dahil kakailanganin namin makita. 433 00:21:47,737 --> 00:21:48,820 Ngunit ano ang nangyayari dito? 434 00:21:48,820 --> 00:21:51,520 >> Una sa lahat, kailangan kong makatakas ang dollar sign. 435 00:21:51,520 --> 00:21:55,140 Dahil tandaan, noong tayo ay talagang pag-print out ang mga presyo ng pizza, 436 00:21:55,140 --> 00:21:59,370 Ako ay tunay na pag-format ng mga ito bilang mga numero ng salapi sa isang dollar sign. 437 00:21:59,370 --> 00:22:05,635 Ngunit kami ay gumagamit ng mga palatandaan din dollar upang kumatawan sa mga pangalan ng variable sa PHP, 438 00:22:05,635 --> 00:22:08,010 at sa partikular na ako kapag ako ay gamit ang paraan ng kulot 439 00:22:08,010 --> 00:22:10,040 suhay variable Ang pamamaraan sa nagsasalita, kailangan ko 440 00:22:10,040 --> 00:22:13,490 upang makatakas ang aking dollar sign kaya hindi Sa tingin ko pakikipag-usap tungkol sa isang variable. 441 00:22:13,490 --> 00:22:16,920 Ito ay pagpunta sa aktwal na, literal-print ng isang dollar sign. 442 00:22:16,920 --> 00:22:19,530 >> Kaya ang uri ng analogize ito sa ano ang nakikita mo sa dulo doon. 443 00:22:19,530 --> 00:22:22,832 Ito ay hindi tunay print backslash n, tama? 444 00:22:22,832 --> 00:22:24,290 Ito ay kopya ng isang bagong linya ng character. 445 00:22:24,290 --> 00:22:26,750 Ito is-- hindi ito ay pagpunta sa sign backslash dollar print, 446 00:22:26,750 --> 00:22:30,130 ito ay pagpunta sa i-print out lang dollar sign character. 447 00:22:30,130 --> 00:22:30,640 Parehong ideya. 448 00:22:30,640 --> 00:22:32,760 Escape mga pagkakasunud-sunod, ano mga bagay na ito ay tinatawag na. 449 00:22:32,760 --> 00:22:37,080 >> Ngunit mapansin na hindi ko ginagawa anumang uri ng mga pamalit% s, 450 00:22:37,080 --> 00:22:40,050 Lamang ako ng literal i-plug sa mga variable na ito. 451 00:22:40,050 --> 00:22:45,110 At kaya sa this-- kung ano ang mangyayari dito ay na ang halaga ng $ topping-- muli, 452 00:22:45,110 --> 00:22:48,390 pagsunod lamang sa kung ano nakaya naming pakikipag-usap tungkol sa gayon far-- cheese ay makakuha ng 453 00:22:48,390 --> 00:22:49,720 naka-plug in doon. 454 00:22:49,720 --> 00:22:54,780 At $ presyo ay kahit anong halaga ay sa pizza, square bracket, keso, 455 00:22:54,780 --> 00:22:56,270 na kung saan ay 8.99. 456 00:22:56,270 --> 00:23:01,860 At kaya ay i-print out ito rin "Isang buong cheese pizza nagkakahalaga ng $ 8.99." 457 00:23:01,860 --> 00:23:05,160 At tulad ng sinabi ko, maaari ko bang gamitin i-print dito sa halip ng echo, 458 00:23:05,160 --> 00:23:08,040 at ang pag-andar na medyo marami ang eksaktong pareho. 459 00:23:08,040 --> 00:23:09,660 Mas i-print out ang parehong bagay. 460 00:23:09,660 --> 00:23:12,680 >> May isa pang paraan upang gawin ito, at ito ay isa pang kapakinabangan 461 00:23:12,680 --> 00:23:14,710 ng PHP nagtatrabaho sa mga string. 462 00:23:14,710 --> 00:23:17,130 Maaari naming gawin ang string pagdudugtong. 463 00:23:17,130 --> 00:23:19,660 Ito namin mai-gawin sa C, masyadong, gamit ang isang function na tinatawag na strcat, 464 00:23:19,660 --> 00:23:21,180 ngunit muli, kami ay mag tumawag hiwalay na pag-andar. 465 00:23:21,180 --> 00:23:22,640 Ito ay ang buong gulo na gawin. 466 00:23:22,640 --> 00:23:24,590 Kinailangan naming pound-isama string.h. 467 00:23:24,590 --> 00:23:25,780 Ito ay isang produksyon, tama? 468 00:23:25,780 --> 00:23:30,070 Ngunit ngayon lamang ang maaari kong gamitin ang tuldok operator na magkasama pagdugtungin string. 469 00:23:30,070 --> 00:23:34,910 >> Kaya ako concatenating "Isang buong" at pagkatapos anuman ang halaga ng $ sahog sa ibabaw ay, 470 00:23:34,910 --> 00:23:38,860 at pagkatapos ay isa pang string, "mga gastos pizza $" 471 00:23:38,860 --> 00:23:42,340 at pagkatapos concatenating anuman ang halaga ng $ presyo ay, 472 00:23:42,340 --> 00:23:45,670 at pagkatapos ay sa dulo Ako tacking sa panahon backslash n. 473 00:23:45,670 --> 00:23:47,926 At kaya ito gagawin din i-print out "Isang buong" - muli, 474 00:23:47,926 --> 00:23:50,550 kung pinag-uusapan natin ang tungkol sa unang elemento ng na pizza array-- 475 00:23:50,550 --> 00:23:54,710 "Isang buong cheese pizza nagkakahalaga ng $ 8.99." 476 00:23:54,710 --> 00:24:01,260 Panahon, backslash n, muli, na may ang $ sahog sa ibabaw at $ substituting presyo 477 00:24:01,260 --> 00:24:06,580 para sa kung ano kami ay tinukoy sa aming foreach loop bilang ang susi pares halaga mapping. 478 00:24:06,580 --> 00:24:08,050 >> PHP ay maaaring panghawakan ang pag-andar. 479 00:24:08,050 --> 00:24:11,250 Tungkulin ay ang uri ng mga mahalaga sa C, tulad ng nakita natin. 480 00:24:11,250 --> 00:24:14,870 Tulad ng variable, hindi namin kailangan upang tukuyin ang uri ng return ng function, 481 00:24:14,870 --> 00:24:16,350 dahil ito ay hindi talagang mahalaga. 482 00:24:16,350 --> 00:24:18,660 At hindi namin tukuyin ang mga uri ng data ng anumang mga parameter, 483 00:24:18,660 --> 00:24:21,410 dahil hindi sila tunay bagay, tulad ng nasaksihan namin sa PHP. 484 00:24:21,410 --> 00:24:24,510 Ang bawat function ay ipinakilala may pag-andar ng keyword. 485 00:24:24,510 --> 00:24:27,920 Iyon ay kung paano namin ipahiwatig sa PHP na kung ano ang pinag-uusapan natin ang tungkol ay isang function. 486 00:24:27,920 --> 00:24:29,720 >> At hindi natin kailangang pakikitungo sa mga pangunahing sa lahat, 487 00:24:29,720 --> 00:24:33,690 dahil ang interpreter, ang PHP interpreter, gumagana mula sa itaas hanggang sa ibaba, 488 00:24:33,690 --> 00:24:34,190 alintana. 489 00:24:34,190 --> 00:24:35,640 Kung nakikita ito maaari kang gumawa ng isang function na tawag, makikita ito 490 00:24:35,640 --> 00:24:37,850 pumunta mahanap ang function na tawag, kahit na ito ay dumating sa ibang pagkakataon. 491 00:24:37,850 --> 00:24:40,360 Ngunit ito ay pagpunta upang basahin mula sa itaas hanggang ibaba, kaya hindi namin kailangan upang tukuyin, 492 00:24:40,360 --> 00:24:41,500 dito ay kung saan ka magsimula. 493 00:24:41,500 --> 00:24:46,700 Magsisimula ka sa 1 linya ng iyong PHP at trabaho mula doon. 494 00:24:46,700 --> 00:24:49,690 >> Kaya dito ay kung paano namin lumikha ng mga isang function na tinatawag hard_square. 495 00:24:49,690 --> 00:24:54,100 Ito tila tumatagal ng isa parameter, na kung saan ako ng pagtawag $ x. 496 00:24:54,100 --> 00:24:58,424 Ang function na ito ay kumplikado lamang upang ilarawan ang iba't-ibang mga bagay-bagay. 497 00:24:58,424 --> 00:24:59,590 Mayroon pa kaming mga halaga ng pagbabalik. 498 00:24:59,590 --> 00:25:00,870 Gumagamit ako ng isang para sa loop dito. 499 00:25:00,870 --> 00:25:04,970 Ngunit ito ay talaga lamang, kung ano ang halaga sa ay $ x beses lamang $ x. 500 00:25:04,970 --> 00:25:10,520 Ano ang tunay na ako ng paggawa ay lamang ng pagdagdag x sa 0 x beses o $ x sa zero ulit $ x. 501 00:25:10,520 --> 00:25:15,850 Ngunit ito ay mabisa nang eksakto ang katulad ng pag-multiply ulit $ x $ x. 502 00:25:15,850 --> 00:25:18,700 Maaari ko pa rin bumalik ng isang halaga, sa kasong ito $ resulta, 503 00:25:18,700 --> 00:25:22,060 at ginawa ko na ang isang function sa PHP. 504 00:25:22,060 --> 00:25:24,160 >> Narito kung paano mo maaaring gamitin ito sa konteksto. 505 00:25:24,160 --> 00:25:26,020 Kaya siguro ako sa loob ng ilang mga file na PHP. 506 00:25:26,020 --> 00:25:29,240 Pansinin sa blue doon na Ginamit ko na ang aking delimiters PHP, 507 00:25:29,240 --> 00:25:31,010 angle bracket tandang pananong php. 508 00:25:31,010 --> 00:25:35,180 Sa pagitan ng mga ito ay ang lahat ng ang PHP na gusto kong isulat. 509 00:25:35,180 --> 00:25:37,840 Kaya ako tila pagpunta sa get-- Pupunta ako upang i-prompt ang user 510 00:25:37,840 --> 00:25:41,550 upang bigyan ako ng isang numero, tindahan na variable, store sa na variable $ x, 511 00:25:41,550 --> 00:25:43,320 kahit na ano sila ay ibinigay sa akin. 512 00:25:43,320 --> 00:25:48,590 Pagkatapos ako pagpunta sa echo hard_square ng halaga na iyon, 513 00:25:48,590 --> 00:25:50,370 at tila pagpunta sa tak sa isang bagong linya 514 00:25:50,370 --> 00:25:53,590 pati na rin, at pagkatapos ay sa susunod bibigyan ko tukuyin ang mga function hard_square kaya 515 00:25:53,590 --> 00:25:55,550 na kapag gumawa ako ng tumawag upang hard_square, 516 00:25:55,550 --> 00:25:58,160 nakakaalam kung ano ang sinasabi ko. 517 00:25:58,160 --> 00:26:00,705 >> Ngayon, maaari ko ring gawin isang bagay na tulad nito. 518 00:26:00,705 --> 00:26:02,050 Ito ay bahagyang naiiba. 519 00:26:02,050 --> 00:26:04,190 Ito ay halos eksakto ang katulad ng kung ano ang nakita natin dati, 520 00:26:04,190 --> 00:26:08,400 maliban sa halip na sinasabi lamang $ x doon bilang parameter na hard_square, 521 00:26:08,400 --> 00:26:11,730 Ako sinasabi $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Kaya ito ay isang halimbawa ng nagtatanggol programming, 523 00:26:14,330 --> 00:26:17,070 nagbabantay sa iyong mga programa laban sa nakakahamak na mga gumagamit. 524 00:26:17,070 --> 00:26:20,020 >> Ito ay isang paraan upang gawin ang ilang mga error checking na hindi kami talagang 525 00:26:20,020 --> 00:26:24,670 Mayroon bilang isang pagpipilian sa C. could namin kailanman tukuyin ang mga default na halaga ng isang bagay. 526 00:26:24,670 --> 00:26:27,010 Kami ay laging may upang suriin kung ang, halimbawa, 527 00:26:27,010 --> 00:26:30,820 kung gumawa kami ng isang tawag sa GetString, ito ay pinaka-wastong kung kaagad pagkatapos naming 528 00:26:30,820 --> 00:26:33,300 naka-check na, nasuri namin kung ang mga string 529 00:26:33,300 --> 00:26:35,504 na nagbigay sa amin ang user ay hindi katumbas ng null, 530 00:26:35,504 --> 00:26:37,920 dahil hindi namin nais na magsimula nagtatrabaho sa isang null string. 531 00:26:37,920 --> 00:26:39,670 >> Dito, ito ay isang paraan mag-ingat laban na iyon. 532 00:26:39,670 --> 00:26:43,480 Kung ang user ay hindi nagbibigay sa amin ng isang bagay sa anumang paraan, sa kung ano ang mga namin pagpunta sa gawin? 533 00:26:43,480 --> 00:26:46,080 Well, kami lang sabihin kahit anong sila ay hindi nagbibigay sa amin, 534 00:26:46,080 --> 00:26:47,705 lang kami ng pagpunta sa halip na plug sa 10. 535 00:26:47,705 --> 00:26:52,030 Kaya kung hindi nila magbigay sa amin ng isang halaga, gamitin lamang ang 10 sa pamamagitan ng default. At kaya dito, 536 00:26:52,030 --> 00:26:53,940 mapansin na ako sa paggawa ng isang call to hard_square, 537 00:26:53,940 --> 00:26:55,980 ngunit walang prompt sa mga user, i-right? 538 00:26:55,980 --> 00:26:57,540 Ako sa paggawa ng isang walang laman na tawag. 539 00:26:57,540 --> 00:27:00,860 >> Ngunit ang aking mga pag-andar hard_square ay umaasa sa isang parameter. 540 00:27:00,860 --> 00:27:02,222 Ano itong pagpunta sa print out? 541 00:27:02,222 --> 00:27:03,680 Ito ay pagpunta sa i-print ang 100, di ba? 542 00:27:03,680 --> 00:27:05,720 Dahil ang hindi paggamit ng mga bigyan ako ng kahit ano. 543 00:27:05,720 --> 00:27:08,970 At kaya lang ako pagpunta sa ipalagay na 10-- 10 ay ang default na halaga. 544 00:27:08,970 --> 00:27:13,760 At kaya ito ay i-print out 100 sa kanyang sariling linya. 545 00:27:13,760 --> 00:27:16,390 >> PHP file ay hindi na lamang maging isang solong file. 546 00:27:16,390 --> 00:27:19,480 Maaari mong ipagsama ang maramihang mga file ng sama-sama, nais lamang na maaari mong sa C. Ang paraan 547 00:27:19,480 --> 00:27:24,330 Ginawa namin na sa C ay karaniwang na gawin ang isang #include upang makakuha ng mga file na header hinila in. 548 00:27:24,330 --> 00:27:26,180 Hindi namin gawin iyon sa PHP. 549 00:27:26,180 --> 00:27:29,110 Ginagawa namin ang isang bagay na tinatawag require_once. 550 00:27:29,110 --> 00:27:33,360 At pagkatapos ay may ito buong bagay, ano ito __dir__? 551 00:27:33,360 --> 00:27:36,510 Iyan na lamang ng isang espesyal na variable, o mga espesyal na pare-pareho, 552 00:27:36,510 --> 00:27:39,030 talaga, na tumutukoy kung ano iyong kasalukuyang direktoryo ay. 553 00:27:39,030 --> 00:27:41,320 At kaya ito ay pagpunta sa hitsura sa iyong kasalukuyang direktoryo 554 00:27:41,320 --> 00:27:44,900 para sa isang file na tinatawag na cs50.php sa halimbawang ito dito, 555 00:27:44,900 --> 00:27:50,490 at ito ay pagpunta sa stick file na sa tuktok ng iyong programa PHP, 556 00:27:50,490 --> 00:27:56,980 sa pag-aakala na ilagay mo ang nangangailangan ng isang beses na linya sa tuktok ng iyong mga file na PHP. 557 00:27:56,980 --> 00:28:01,474 >> Kaya PHP ay una na ginagamit, ngunit hindi ginagamit ng eksklusibo, 558 00:28:01,474 --> 00:28:03,140 bilang isang wika para sa mga programa ng web-based. 559 00:28:03,140 --> 00:28:05,270 Iyan ay talagang kung paano ito ay dumating na. 560 00:28:05,270 --> 00:28:06,980 Ngunit ito ay isang buong wika, tulad ng nasaksihan namin. 561 00:28:06,980 --> 00:28:10,105 Nakita namin ang halos lahat ng mga bagay-bagay na maaari itong gawin na katulad ng sa C, 562 00:28:10,105 --> 00:28:13,290 at maaari itong gawin ng isang ano ba ng isang pulutong ng higit sa na. 563 00:28:13,290 --> 00:28:16,950 >> Ngunit dahil sa ito ay isang buong wika at kami maaaring gawin command line programming sa loob nito. 564 00:28:16,950 --> 00:28:18,630 Maaari naming patakbuhin line programa command. 565 00:28:18,630 --> 00:28:22,580 Lahat ng na kinakailangan upang patakbuhin ang isang command program line na nakasulat sa PHP 566 00:28:22,580 --> 00:28:24,260 ay na mayroon ka ng isang interpreter PHP. 567 00:28:24,260 --> 00:28:27,460 Kaya ito ay isang uri ng kahalintulad sa pagkakaroon ng isang compiler sa iyong system 568 00:28:27,460 --> 00:28:31,100 kung gusto mong ipunin ang iyong C code upang buksan ito sa mga maipapatupad na file. 569 00:28:31,100 --> 00:28:33,810 Kailangan mong magkaroon ng isang interpreter PHP na umiiral sa iyong system 570 00:28:33,810 --> 00:28:37,330 sa gayon ay maaari mong bigyan ng kahulugan ang mga file na PHP. 571 00:28:37,330 --> 00:28:40,370 >> Sa pag-aakala mo, at karaniwan interpreter na ito ay tinatawag na PHP, 572 00:28:40,370 --> 00:28:44,300 at ito ay karaniwang kasama sa karamihan download o gusali ng PHP 573 00:28:44,300 --> 00:28:47,430 na maaari kang makakuha ng online, at tiyak ang pangalan ng interpreter PHP 574 00:28:47,430 --> 00:28:49,550 na namin sa CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Lahat ng gagawin mo ay i-type ang php file. 576 00:28:51,819 --> 00:28:53,610 At kung ano ang iyong programa pagpunta sa gawin ay ito ay 577 00:28:53,610 --> 00:28:55,360 pagpunta upang tumakbo sa pamamagitan ang interpreter, ito ay 578 00:28:55,360 --> 00:28:58,040 pagpunta sa huwag pansinin ang lahat ng bagay na wala sa pagitan tanong mark-- 579 00:28:58,040 --> 00:29:03,160 o, angle bracket tandang pananong php, ang delimiter PHP, at i-print ito, 580 00:29:03,160 --> 00:29:07,660 at ito ay bigyang-kahulugan at magsagawa ng mga code sa loob ng iyong delimiters PHP. 581 00:29:07,660 --> 00:29:12,850 >> Kaya sabihin pop higit sa CS50 IDE at may isang tumingin sa isang pares ng mga file na PHP, 582 00:29:12,850 --> 00:29:19,850 pagpapatakbo ng isang pares ng mga file na PHP, sa command line interface ng CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Kaya dito ay namin sa CS50 IDE, at kinuha ko na ang kalayaan 584 00:29:22,100 --> 00:29:25,800 ng pagbubukas ng isang file na tinatawag na hello1.php. 585 00:29:25,800 --> 00:29:29,920 At tila, ang mga nilalaman ng mga ito file ay lamang ang delimiter PHP doon, 586 00:29:29,920 --> 00:29:32,220 at sa pagitan, echo ("hello, world"). 587 00:29:32,220 --> 00:29:34,710 Ito ay isang medyo simpleng programa PHP. 588 00:29:34,710 --> 00:29:37,670 Lamang ako ng pagpunta sa mag-scroll pababa sa aking terminal na window dito, 589 00:29:37,670 --> 00:29:44,320 at ako pagpunta sa uri ng php hello1.php, pindutin ang enter. 590 00:29:44,320 --> 00:29:44,950 Hello, mundo. 591 00:29:44,950 --> 00:29:48,110 Iyon ay marahil kung ano ang namin umaasa ito gawin, di ba? 592 00:29:48,110 --> 00:29:51,140 >> Halina't up at tumagal isa pang tumingin sa isang program. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Medyo marami ang mga parehong bagay, Hindi maraming nagaganap dito. 595 00:29:55,090 --> 00:29:57,190 Oras na ito, bagaman, ako pagpunta upang i-prompt ang user ay upang bigyan ako ng kanilang mga pangalan. 596 00:29:57,190 --> 00:29:59,290 Gumagamit ako ng muli na readline function. 597 00:29:59,290 --> 00:30:01,340 $ name = readline. 598 00:30:01,340 --> 00:30:03,070 Iyan ang prompt, "Ano ang pangalan mo?" 599 00:30:03,070 --> 00:30:04,880 >> Malas ako sa pag-print ito sa sarili nitong linya. 600 00:30:04,880 --> 00:30:07,220 At pagkatapos, sa gayon ang mga linya sa ibaba na ang magiging prompt 601 00:30:07,220 --> 00:30:08,750 na kung saan ang user ay maaaring ipasok ang kanilang pangalan. 602 00:30:08,750 --> 00:30:12,030 At pagkatapos ay ako ng isang maliit na piraso ng variable sa nagsasalita dito sa linya 3 603 00:30:12,030 --> 00:30:14,780 upang i-print out "Hello" at kahit anong uri ng user. 604 00:30:14,780 --> 00:30:22,040 Kaya ito ay kahalintulad sa sinasabi, Hello, kuwit,% s kung kami ay gumagamit ng printf sa C. 605 00:30:22,040 --> 00:30:24,910 >> Kaya sabihin pumunta at bigyang-kahulugan ang programang ito. 606 00:30:24,910 --> 00:30:27,400 Kaya muli, kukunin ko na mag-scroll pababa sa aking terminal na window. 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 Anong pangalan mo? 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 Mayroon din akong ibang file na tinatawag na hello3.php. 613 00:30:39,440 --> 00:30:42,850 Pupunta ako upang i-clear ang aking screen na may Control L, 614 00:30:42,850 --> 00:30:46,210 at ako pagpunta upang maipatupad na. 615 00:30:46,210 --> 00:30:47,640 Anong pangalan mo? 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 Kaya ang pag-uugali ay kapareho hello2.php, ngunit kung bakit ito hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Well, narito ang mga pagkakaiba. 620 00:30:58,040 --> 00:31:00,620 Sa kasong ito, ang paunawa na sa linya 1 dito, 621 00:31:00,620 --> 00:31:04,270 Mayroon akong isang bagay na hindi sa pagitan ng mga delimiter PHP. 622 00:31:04,270 --> 00:31:07,760 Tingin lang ako sa pag-print ng out-- o ako nag-type lang, "Ano ang pangalan mo?" 623 00:31:07,760 --> 00:31:12,060 Kapag nakikita ng mga ito ang interpreter PHP, ito ay walang ideya kung paano bigyang-kahulugan ang mga ito bilang PHP, 624 00:31:12,060 --> 00:31:15,060 at kaya sa halip na nanghihina, lamang ito ay pagpunta sa dumura ito. 625 00:31:15,060 --> 00:31:19,010 >> Kaya mapapansin sa linya 3 ngayon, ang tawag na readline, walang prompt anymore. 626 00:31:19,010 --> 00:31:21,750 Tingin lang ako sa tunay na nangyayari to-- kapag nakikita ito ng interpreter PHP, 627 00:31:21,750 --> 00:31:23,400 ito ay pagpunta sa i-print out "Anong pangalan mo?" 628 00:31:23,400 --> 00:31:25,941 Pagkatapos nakakakita nito, oh, OK, here's-- lahat ng iba pa ay magiging 629 00:31:25,941 --> 00:31:29,970 kahulugan bilang PHP, kaya na ang dahilan kung bakit ito gumagana. 630 00:31:29,970 --> 00:31:34,990 Hindi ko na kailangang palaging prompt ang to-- user sa loob ng readline, 631 00:31:34,990 --> 00:31:37,490 Maaari ko na lang ito sa labas ng delimiters PHP 632 00:31:37,490 --> 00:31:41,490 at payagan ang mga interpreter upang i-print lamang ito para sa akin. 633 00:31:41,490 --> 00:31:45,364 >> Kaya hindi tunay na mayroon lamang na magkaroon ng isang hanay ng mga delimiter PHP 634 00:31:45,364 --> 00:31:46,030 sa inyong programa. 635 00:31:46,030 --> 00:31:49,887 Maaari mong aktwal na magkaroon ng ilan sa kanila, pagbubukas at pagsasara ng mga ito kung kinakailangan. 636 00:31:49,887 --> 00:31:51,720 Kaya sabihin tumagal ng isang pagtingin sa isang pares ng mga programa 637 00:31:51,720 --> 00:31:55,070 sa CS50 IDE kung saan kami ilarawan ito ideya ng pagkakaroon 638 00:31:55,070 --> 00:31:58,376 maramihang mga hanay ng delimited PHP. 639 00:31:58,376 --> 00:32:02,010 >> OK, kaya binuksan ko ang isang file dito na tinatawag add1.php. 640 00:32:02,010 --> 00:32:03,390 At pansinin kung ano ang nangyayari dito. 641 00:32:03,390 --> 00:32:08,077 Tulad ng dati, mayroon akong isang itakda single PHP ng delimiter. 642 00:32:08,077 --> 00:32:10,660 Pupunta ako upang i-print out ang mensahe, "Pakibigyan ako ng isang numero." 643 00:32:10,660 --> 00:32:13,394 Pagkatapos ako pagpunta upang basahin ang isang line at store na ito sa mga variable ng $ num1. 644 00:32:13,394 --> 00:32:14,810 Pagkatapos ako pagpunta upang i-print out muli. 645 00:32:14,810 --> 00:32:16,310 Bigyan mo ako ng isang pangalawang numero. 646 00:32:16,310 --> 00:32:20,450 Basahin ang isang linya mula sa gumagamit, store ano man ang kanilang nai-type sa sa $ num2. 647 00:32:20,450 --> 00:32:23,980 Magkasama Idagdag ang mga ito at mag-imbak na magresulta sa isang variable na tinatawag na $ sum, 648 00:32:23,980 --> 00:32:26,180 at pagkatapos ay i-print out, "Ang kabuuan ng mga dalawang numero 649 00:32:26,180 --> 00:32:29,254 ay, "at pagkatapos ay tanungin ang nagsasalita may mga variable ng $ sum. 650 00:32:29,254 --> 00:32:31,170 Tumakbo lang ito Kaya sabihin sa pamamagitan ng interpreter 651 00:32:31,170 --> 00:32:33,720 upang kumpirmahin na ito ay kung ano ang inaasahan namin. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Pakibigyan ako ng isang numero, 3. 654 00:32:38,665 --> 00:32:40,410 Pakibigyan ako ng isang pangalawang numero, 4. 655 00:32:40,410 --> 00:32:43,370 Ang kabuuan ng mga dalawang numero ay 7. 656 00:32:43,370 --> 00:32:45,030 Iyan ay 3 plus 4. 657 00:32:45,030 --> 00:32:45,530 SIGE? 658 00:32:45,530 --> 00:32:47,770 Kaya masyado fancy wala doon. 659 00:32:47,770 --> 00:32:51,080 >> At ni magbukas add2.php ngayon hayaan. 660 00:32:51,080 --> 00:32:54,460 Dito, Mayroon akong isang pares ng PHP delimited set doon, tama? 661 00:32:54,460 --> 00:32:59,107 Linya 1, 3-- linya 1 at 3 walang delimiter PHP. 662 00:32:59,107 --> 00:33:00,940 Kaya kapag ang mga interpreter nakikita ng mga ito, ito lamang 663 00:33:00,940 --> 00:33:03,220 pagpunta sa sabihin ang lahat nang eksakto kung ano ang aking nai-type mo doon. 664 00:33:03,220 --> 00:33:05,011 Kaya na kung saan ako paggawa ng lahat ng aking paramdam. 665 00:33:05,011 --> 00:33:11,220 On line 2 at 4, makikita natin ang tunay pamilyar $? php uri ng delimiters, 666 00:33:11,220 --> 00:33:15,210 kaya ang mga dalawang linya ay pagpunta sa execute ng PHP. 667 00:33:15,210 --> 00:33:18,270 At pagkatapos ay sa 5 linya, Mayroon akong na ito kakaiba bagay dito mismo, di ba? 668 00:33:18,270 --> 00:33:20,480 Ito angle bracket tandang pananong katumbas sign. 669 00:33:20,480 --> 00:33:22,660 Kukunin ko ring mag-zoom in nang kaunti pa. 670 00:33:22,660 --> 00:33:29,270 Maaari mong makita ito ay kung ano ako pakikipag-usap tungkol doon, ito $? =. 671 00:33:29,270 --> 00:33:33,420 >> Ito ay lumiliko out na ito ay kaya karaniwan na ang dahilan na magbukas ng isang set ng PHP 672 00:33:33,420 --> 00:33:36,055 delimiter ay upang i-print out ng isang halaga. 673 00:33:36,055 --> 00:33:37,430 At na ang lahat kami ay pagpunta sa gawin. 674 00:33:37,430 --> 00:33:39,220 Ngunit mayroong kahit shorthand para sa na. 675 00:33:39,220 --> 00:33:46,490 $? = Ay shorthand PHP para sa sinasabi isang bagay tulad ng $? php echo ang sum 676 00:33:46,490 --> 00:33:48,350 ng num1 at num2. 677 00:33:48,350 --> 00:33:51,900 Kaya ito ay isa lamang takigrapya para sa na. 678 00:33:51,900 --> 00:33:55,550 >> Kaya kung nagpatakbo ako ng programang ito, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Kukunin ko mag-zoom pababa sa isang maliit na bit. 680 00:33:57,530 --> 00:33:59,000 Pakibigyan ako ng isang numero, 4. 681 00:33:59,000 --> 00:34:00,350 Pakibigyan ako ng isang pangalawang numero. 682 00:34:00,350 --> 00:34:04,650 At dahil hindi talaga aalaga ko tungkol sa uri ng data sa PHP, maaari kong sabihin 4.8. 683 00:34:04,650 --> 00:34:07,160 Ang kabuuan ng mga dalawang numero ay 8.8. 684 00:34:07,160 --> 00:34:10,179 Function na kumikilos medyo marami eksaktong katulad namin ay inaasahan, 685 00:34:10,179 --> 00:34:10,989 din. 686 00:34:10,989 --> 00:34:13,114 At Mayroon akong isa pang binuksan hanggang dito na tinatawag dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Subukan ito muli. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Mayroon akong isa pang dito na tinatawag na dice1.php, na rin, makita, 691 00:34:33,280 --> 00:34:37,440 Wala na angle bracket tanong markahan equal sign notation sa doon, 692 00:34:37,440 --> 00:34:40,659 ngunit mapapansin na sa kasong ito ako pagtawag sa function rand, na tulad ng sa iyo 693 00:34:40,659 --> 00:34:42,790 maaaring asahan bumubuo ng isang random na numero. 694 00:34:42,790 --> 00:34:46,889 "Pinagsama mo a," at ito ay pagpunta sa makalkula ang ilang mga random na numero, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Kaya makikita na bigyan ako ng number sa hanay ng 1 hanggang 6. 697 00:34:49,989 --> 00:34:53,040 >> Tandaan na mod 6 ibigay sa akin isang numero sa hanay na 0 hanggang 5, 698 00:34:53,040 --> 00:34:56,630 ngunit kung ako ang pagtulad sa dice roll, na kung saan ay kung ano ang ginagawa ko dito, 699 00:34:56,630 --> 00:35:00,040 Hindi ko gusto ang mga dice upang pumunta mula sa 0 hanggang 5, gusto kong dice na pumunta mula 1 hanggang 6. 700 00:35:00,040 --> 00:35:02,800 At kaya ito ay isang paraan upang makakuha ng sa akin sa hanay ng 1 hanggang 6. 701 00:35:02,800 --> 00:35:04,720 Ako ginagawa ito ng dalawang beses. 702 00:35:04,720 --> 00:35:08,630 Kaya tila ako lumiligid dalawang dice sa programang ito. 703 00:35:08,630 --> 00:35:15,210 >> Kaya ko na i-clear ang aking screen, at makikita ko ang php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Pinagsama mo ang isang 4 at isang 2. 705 00:35:16,640 --> 00:35:19,156 At kung nagpatakbo ako ng mga program muli, na pinagsama sa inyo ng 5 at 5. 706 00:35:19,156 --> 00:35:21,780 Kaya ang bawat oras na patakbuhin ang programa, Nakakakuha ako ng iba't ibang mga numero, 707 00:35:21,780 --> 00:35:24,280 dahil sa tuwing gagawin ko kaya, ito ay nagsisimula sa ibabaw. 708 00:35:24,280 --> 00:35:27,250 Ito ay pagpunta sa bumuo ng isang bagong set ng mga random na numero para sa akin. 709 00:35:27,250 --> 00:35:29,790 >> Kaya kung kami ay ginagamit upang pagpapatakbo ng mga programa mula sa C, 710 00:35:29,790 --> 00:35:32,520 kami ay ginagamit upang pag-type ./ ang pangalan ng isang programa, di ba? 711 00:35:32,520 --> 00:35:35,090 Iyon ay kung paano namin nagawa ang lahat ng sa aming mga programa sa C sa ngayon. 712 00:35:35,090 --> 00:35:37,555 Maaari naming gawin ito sa PHP pati sa pamamagitan ng pagdaragdag ng isang bagay na tinatawag na 713 00:35:37,555 --> 00:35:40,026 isang shebang sa tuktok ng aming file PHP. 714 00:35:40,026 --> 00:35:41,400 Alam ko ito ay uri ng isang hangal na salita. 715 00:35:41,400 --> 00:35:44,540 Ito ay maikli para sa hash bang. 716 00:35:44,540 --> 00:35:46,300 Iyan ang unang dalawang mga character doon. 717 00:35:46,300 --> 00:35:50,030 Tandaan ang tawag namin sa exclamation point madalas isang putok sa computer science. 718 00:35:50,030 --> 00:35:51,690 Ito rin ay maaaring para sa sharp bang. 719 00:35:51,690 --> 00:35:53,273 May isang pares ng mga paraan upang bigyang-kahulugan ang mga ito. 720 00:35:53,273 --> 00:35:57,320 Ngunit ito ay isa lamang ng isang espesyal na uri ng iniuutos na ang interpreter PHP 721 00:35:57,320 --> 00:36:00,160 nauunawaan bilang, oh, gusto ko sa iyo upang maipatupad ang programang ito, 722 00:36:00,160 --> 00:36:05,250 kung saan ay tila / user / bin / php, na ay talagang kung saan ang interpreter PHP 723 00:36:05,250 --> 00:36:08,590 partikular na ang buhay sa aming system. 724 00:36:08,590 --> 00:36:12,530 Kaya it's-- kung ano ang mangyayari dito ay nauunawaan ang mga interpreter, oh, 725 00:36:12,530 --> 00:36:17,270 Lumilitaw na ako dapat na gamitin ang sa programang ito upang patakbuhin ang file na ito. 726 00:36:17,270 --> 00:36:20,010 At kaya ito ay nagpapahintulot sa inyo upang laktawan ang hakbang 727 00:36:20,010 --> 00:36:22,979 ng pagkakaroon ng sabihin php something.php. 728 00:36:22,979 --> 00:36:25,020 May isa pang catch dito, kung saan ay na kung tayo 729 00:36:25,020 --> 00:36:27,320 Gusto ng aming mga programa sa gumana tulad ng inaasahan, kami 730 00:36:27,320 --> 00:36:30,220 kailangan na gawin ang isang bagay na tinatawag ng isang pagbabago ng pahintulot file. 731 00:36:30,220 --> 00:36:33,380 At kami go-- at makipag-usap namin ng kaunti kaunti pang mga pagbabago ng pahintulot tungkol file 732 00:36:33,380 --> 00:36:37,550 sa aming mga video sa MVC, ngunit sapat nang sabihin na ito ay kung ano ang kailangan mong gawin 733 00:36:37,550 --> 00:36:42,760 upang gawin ang iyong mga Php file executable. 734 00:36:42,760 --> 00:36:49,330 Kaya sabihin kumuha ng isang pagtingin sa ito bilang ang aming panghuling halimbawa sa higit sa CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Kaya dito sa IDE Mayroon akong dalawang mga file na ito sa Directory PHP na lumilitaw na hindi na maging 736 00:36:53,910 --> 00:36:55,310 tinatawag na Php. 737 00:36:55,310 --> 00:36:58,170 Mayroon akong isang function na tinatawag na add-- Mayroon akong isang file na tinatawag na add3 738 00:36:58,170 --> 00:37:00,650 at ang isang file na tinatawag na dice2. 739 00:37:00,650 --> 00:37:03,680 Kaya sabihin kumuha ng isang mabilis Tumingin at buksan up add3. 740 00:37:03,680 --> 00:37:08,300 At tulad ng makikita mo, sa simula sa aking mga file Mayroon akong na ito shebang, di ba? 741 00:37:08,300 --> 00:37:11,420 Ito hash mark exclamation point. 742 00:37:11,420 --> 00:37:15,115 Ngayon, makikita mo din siguro mapansin na para sa ilang mga dahilan, 743 00:37:15,115 --> 00:37:16,990 Hindi ko ay may anumang syntax highlight anymore, 744 00:37:16,990 --> 00:37:20,198 at ito ay kung ano ang aking tinutukoy nang mas maaga, na kung saan ay na kung hindi ko papangalanan ang aking mga file 745 00:37:20,198 --> 00:37:23,040 .php, hindi ko magkaroon ng pakinabang ng syntax highlight anymore. 746 00:37:23,040 --> 00:37:26,220 Ang file na ito ay tinatawag lang add3. 747 00:37:26,220 --> 00:37:30,960 Sa gayon ay maaari ko itong tumakbo sa paglaon may ./ add3 at hindi ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Kaya ang reason-- pa rin ito fine, ito ay may-bisa pa PHP, 749 00:37:33,680 --> 00:37:37,000 ngunit hindi ito ang syntax highlight, dahil ang file na ito ay hindi na tinatawag something.php. 750 00:37:37,000 --> 00:37:41,580 Iyan ay ang tanging tunay na pagkakaiba dito, kasama ang shebang. 751 00:37:41,580 --> 00:37:45,170 Kaya sabihin makita kung ano ang mangyayari kapag Subukan ko at patakbuhin ang program na ito. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, tulad ng gagawin ko sa C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Tinanggihan ng pahintulot add3. 754 00:37:53,190 --> 00:37:55,390 Ito ay kung ano ang iyong pagpunta upang makita kung nakalimutan mo ang 755 00:37:55,390 --> 00:37:59,280 gamitin ang mga utos chmod upang baguhin ang mga pahintulot ng file. 756 00:37:59,280 --> 00:38:03,845 >> Bilang ito ay lumiliko out, regular PHP mga file ay maaaring hindi lamang pinaandar. 757 00:38:03,845 --> 00:38:06,970 Maaari na sila ay binigyang-kahulugan, ngunit hindi namin paggawa ng isang bagay na medyo naiiba dito. 758 00:38:06,970 --> 00:38:07,761 Kami ay Isinasagawa ang mga ito. 759 00:38:07,761 --> 00:38:12,970 At kaya kailangan ko upang idagdag ang mga pahintulot ng pagpapatupad, chmod isang + x sa add3. 760 00:38:12,970 --> 00:38:15,680 Pagkatapos ay maaari kong sabihin ./ add3. 761 00:38:15,680 --> 00:38:16,860 Pakibigyan ako ng isang numero. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Ang kabuuan ng mga dalawang numero ay 11. 764 00:38:20,490 --> 00:38:26,530 >> Katulad nito, na ako ay may chmoded dice2, kaya ko maaaring i-type lamang ./ dice2, 765 00:38:26,530 --> 00:38:31,260 ikaw ay pinagsama sa isang 1 at isang 1, ikaw pinagsama sa isang 5 at isang 4, at iba pa. 766 00:38:31,260 --> 00:38:33,680 >> Kaya na medyo marami ang ideya ng isang syntax PHP, di ba? 767 00:38:33,680 --> 00:38:35,221 May ng maraming upang makakuha ng pamamagitan, alam ko. 768 00:38:35,221 --> 00:38:39,160 Ngunit sana iyong nakita ngayon na PHP ay hindi tunay na naiiba mula sa C 769 00:38:39,160 --> 00:38:43,670 at talagang nagbibigay sa amin ng kakayahan upang kumuha ng mga bagay up ng isang bingaw o dalawang. 770 00:38:43,670 --> 00:38:48,230 Hindi namin talagang kailangang mag-alala masyadong marami about-- hindi namin talagang 771 00:38:48,230 --> 00:38:51,605 kailangang mag-alala masyadong maraming tungkol sa ang mga detalye namin low-level 772 00:38:51,605 --> 00:38:52,980 ay mag-alala tungkol sa C, right? 773 00:38:52,980 --> 00:38:56,170 Maaari naming tumuon sa mga mas mataas na mga bagay-bagay na antas na PHP 774 00:38:56,170 --> 00:39:01,090 ay nagbibigay-daan sa amin upang gawin at upang kunin para sa ipinagkaloob na ito ay gumagana para sa amin. 775 00:39:01,090 --> 00:39:04,350 Kaya ito ay nagbibigay sa amin ng kakayahan na ngayon, paglipat mula sa C sa PHP, 776 00:39:04,350 --> 00:39:08,280 upang gumawa ng mga programa na ay isang pulutong ng higit complex at marahil mas matatag ang isang pulutong. 777 00:39:08,280 --> 00:39:13,070 >> Kaya Umaasa ako na mayroon kang masaya working sa PHP, at ako Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Ito ay CS50. 779 00:39:15,050 --> 00:39:17,637