1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Svo að við höfum gert mikið af vinnu í C, 3 00:00:07,370 --> 00:00:09,536 og C er mjög flott Tungumál því það gefur þér 4 00:00:09,536 --> 00:00:12,840 getu til að kafa í raun lágt í áætlunum þínum. 5 00:00:12,840 --> 00:00:16,810 Við fáum að gera hlutina eins og virkilega mínútu sem notfæra 6 00:00:16,810 --> 00:00:18,800 einstök bytes af minni. 7 00:00:18,800 --> 00:00:21,420 Muna að ábendingum raun leyfa okkur að sveigjanleiki. 8 00:00:21,420 --> 00:00:25,260 >> En þurfum við alltaf að hafa fínn-korn nákvæmnina 9 00:00:25,260 --> 00:00:26,820 í áætlunum okkar? 10 00:00:26,820 --> 00:00:28,210 Sennilega ekki, ekki satt? 11 00:00:28,210 --> 00:00:30,376 Og ef við erum að fara að hafa málamiðlun milli þess að vera 12 00:00:30,376 --> 00:00:32,911 fær um að gera virkilega, virkilega fullkomna hluti og virkilega, virkilega 13 00:00:32,911 --> 00:00:35,910 stór hluti sem við höfum ekki að hugsa um, höfum við ekki að framkvæma 14 00:00:35,910 --> 00:00:40,290 þessi mjög stór hugmyndir ef þeir eru nú þegar innbyggður í fyrir okkur, 15 00:00:40,290 --> 00:00:43,980 almennt til að byggja stór forrit eða stór verkefni, 16 00:00:43,980 --> 00:00:49,130 við erum líklega að fara að skjátlast á hlið af því að hafa fleiri tungumál efni byggt í 17 00:00:49,130 --> 00:00:51,300 fyrir okkur, í stað þess að hafa lágmark-láréttur flötur efni. 18 00:00:51,300 --> 00:00:53,970 Og það er þar sem PHP kemur virkilega í. 19 00:00:53,970 --> 00:00:58,200 >> Nú, einn af þeim ástæðum að kenna PHP í CS50 20 00:00:58,200 --> 00:01:01,020 er að það er mikið innblásin af C. Og í raun, að mínu mati, 21 00:01:01,020 --> 00:01:05,140 það eru í raun tveir forstigsfrumur tungumál sem 22 00:01:05,140 --> 00:01:08,200 eru mjög algeng nú á dögum. 23 00:01:08,200 --> 00:01:10,110 C og Lisp. 24 00:01:10,110 --> 00:01:13,280 Og þeir eru blóðmyndandi tungumál því annað hvert nútíma forritun 25 00:01:13,280 --> 00:01:17,380 tungumál sem hefur þróast síðan er innblásin 26 00:01:17,380 --> 00:01:20,330 með því að einn eða annan syntactically. 27 00:01:20,330 --> 00:01:26,160 PHP er mjög svipuð setningafræðilega til C, en tungumál eins Scheme, 28 00:01:26,160 --> 00:01:27,900 til dæmis, sem þú gætir hafa heyrt um, 29 00:01:27,900 --> 00:01:32,070 er mjög innblásin af tungumáli heitir Lisp, sem er eldri tungumál. 30 00:01:32,070 --> 00:01:34,220 >> Þannig að ástæða sem við kennum PHP í CS50 er að 31 00:01:34,220 --> 00:01:37,730 með því að vita C í grundvallaratriðum eins og þú gera á þessum tímapunkti, 32 00:01:37,730 --> 00:01:41,280 tína upp PHP, sem gefur þér Hæfni til að gera mikið meiri hluti 33 00:01:41,280 --> 00:01:44,710 en C er, er ekki að mikið af hindrun, 34 00:01:44,710 --> 00:01:48,230 því þú ert nú þegar Grunnhugmyndin um setningafræði. 35 00:01:48,230 --> 00:01:50,590 C hefur verið í kring fyrir næstum 45 ára á þessum tímapunkti. 36 00:01:50,590 --> 00:01:52,780 PHP hefur verið í kring um 20 ár. 37 00:01:52,780 --> 00:01:57,080 Og í því 25 ár á milli, forritari 38 00:01:57,080 --> 00:02:01,540 ákveðið að þeir myndu miklu frekar hafa meiri hæfileika, 39 00:02:01,540 --> 00:02:04,970 og mistök og barátta af 20 ár í milli 40 00:02:04,970 --> 00:02:08,210 leiddi til PHP og öðrum nútíma tungumálum. 41 00:02:08,210 --> 00:02:11,039 >> A mikill val PHP er af tungumál fyrir hugbúnað 42 00:02:11,039 --> 00:02:14,042 sem allow-- fyrir hugbúnaður that-- hvar þú 43 00:02:14,042 --> 00:02:16,250 þarf að gera það sem í C eru í raun flókið. 44 00:02:16,250 --> 00:02:18,480 Svo til dæmis, að vinna með strengi í C 45 00:02:18,480 --> 00:02:21,709 er mjög flókið, því eins og við vitum, strengir í C 46 00:02:21,709 --> 00:02:23,250 eru í raun bara fylki af stöfum. 47 00:02:23,250 --> 00:02:25,230 Það er ekki innbyggður-í gögn tegund. 48 00:02:25,230 --> 00:02:28,220 Eða kannski meira í grundvallaratriðum, eitthvað sem við vissum ekki einu sinni ná í C, 49 00:02:28,220 --> 00:02:30,360 hvað ef þú þarft að gera sumir tölva net? 50 00:02:30,360 --> 00:02:30,860 Allt í lagi? 51 00:02:30,860 --> 00:02:34,920 >> C hefur getu til að gera það, en það er svo yfirnáttúrulegt og svo erfitt að raunverulega gera. 52 00:02:34,920 --> 00:02:37,580 Væri ekki gott ef Tungumál hafði innbyggður-í, auðveld leið 53 00:02:37,580 --> 00:02:38,910 að innleiða net? 54 00:02:38,910 --> 00:02:43,420 Og PHP er tungumál sem gerir það, eða auðveldar að töluvert meira. 55 00:02:43,420 --> 00:02:47,740 Eins og ég sagði, PHP er mjög þungt innblástur af C. The setningafræði er mjög svipuð. 56 00:02:47,740 --> 00:02:51,760 Og svo það ætti vonandi að gera umskipti frá einum til annars 57 00:02:51,760 --> 00:02:54,710 svolítið mýkri en sumir önnur tungumál gæti verið. 58 00:02:54,710 --> 00:02:58,800 >> Til að byrja að skrifa PHP, bara opna skrá með .php skrá eftirnafn. 59 00:02:58,800 --> 00:03:00,670 Tæknilega er þetta ekki raunverulega þörf, 60 00:03:00,670 --> 00:03:04,495 en ef þú vilt það eins setningafræði áherslu í IDE, þannig að tegund 61 00:03:04,495 --> 00:03:07,620 nöfn eða breytilegum nöfn, aðgerðir, þú veist, leitarorð í tungumálinu 62 00:03:07,620 --> 00:03:10,090 eru undirstrikuð í tilteknum lit, þú almennt 63 00:03:10,090 --> 00:03:14,020 langar að nefna skrár með sérstaklega skrá eftirnafn. 64 00:03:14,020 --> 00:03:18,430 Þannig að við höfum nefnt skrá okkar með .php eftirnafn, en þá líka með PHP, 65 00:03:18,430 --> 00:03:23,310 allt PHP kóðann hér skrifa að skrá þarf að fylgja í þessum PHP 66 00:03:23,310 --> 00:03:25,190 delimiters sem við sjáum hér á skjánum. 67 00:03:25,190 --> 00:03:27,910 Oddklofi? PHP til að byrja. 68 00:03:27,910 --> 00:03:30,860 Þá erum við að skrifa allar PHP okkar kóða sem við viljum á milli. 69 00:03:30,860 --> 00:03:32,260 Og svo ? 70 00:03:32,260 --> 00:03:34,710 oddklofi að loka. 71 00:03:34,710 --> 00:03:37,170 >> Ef við gerum þetta ekki, þá hvað er að fara að gerast? 72 00:03:37,170 --> 00:03:38,170 Það er ekki að fara að hrun. 73 00:03:38,170 --> 00:03:39,410 Það er ekki að fara að virkilega eyðileggja kerfi okkar. 74 00:03:39,410 --> 00:03:41,440 En það er ekki að fara að hafa áhrif sem við viljum. 75 00:03:41,440 --> 00:03:44,540 Hvað er að fara að gerast, í raun er, að þegar við reynum og keyra þetta forrit, 76 00:03:44,540 --> 00:03:50,330 allt ekki milli þessara afmarkararnir er að fara að prenta út orðrétt. 77 00:03:50,330 --> 00:03:52,210 Það er ekki að fara að reyndar framkvæma kóðann, 78 00:03:52,210 --> 00:03:56,010 það er að fara að bara prenta það út orðrétt. 79 00:03:56,010 --> 00:03:57,320 >> Nú hvers vegna er málið? 80 00:03:57,320 --> 00:04:00,416 Svo er C það er vitað sem unnin tungumál. 81 00:04:00,416 --> 00:04:03,040 Þú ert líklega kunnugt skrefið að gera forrit, 82 00:04:03,040 --> 00:04:07,820 snúa .c skrár og .h skrá í einni executable með að gera, 83 00:04:07,820 --> 00:04:11,130 sér í lagi með því að nota Clang sem þýðanda okkar. 84 00:04:11,130 --> 00:04:13,030 PHP, þó, er ekki hafa þetta samsvarandi. 85 00:04:13,030 --> 00:04:15,600 PHP er það sem er kallað túlkað tungumál. 86 00:04:15,600 --> 00:04:16,760 Og hvað þýðir það? 87 00:04:16,760 --> 00:04:20,680 >> Jæja, það þýðir að við þurfum ekki að breyta uppspretta okkar kóða til núllum og sjálfur 88 00:04:20,680 --> 00:04:21,470 fyrirfram. 89 00:04:21,470 --> 00:04:23,900 Frekar, það er forrit, sem er einnig kallaður 90 00:04:23,900 --> 00:04:29,771 PHP, sem skilur PHP og getur konar gera það á flugu. 91 00:04:29,771 --> 00:04:32,520 Það er í raun ekki nákvæmlega rétt, en það er nokkuð góð samlíking 92 00:04:32,520 --> 00:04:33,760 hvað er að gerast. 93 00:04:33,760 --> 00:04:37,230 Það er túlkun þeirra zeroes og sjálfur á flugu. 94 00:04:37,230 --> 00:04:40,160 Og svo ef það veit ekki hvernig á að vinna eitthvað, 95 00:04:40,160 --> 00:04:42,800 ef það veit ekki hvernig á að ferli PHP, þú sennilega 96 00:04:42,800 --> 00:04:44,680 vildi setja þessi texti í það, ekki satt? 97 00:04:44,680 --> 00:04:48,960 >> Þú vildir líklega að setja kóðann í það, jafnvel ef það er ekki á milli PHP-- 98 00:04:48,960 --> 00:04:50,035 PHP delimiters. 99 00:04:50,035 --> 00:04:51,910 But-- svo það er ekki að fara til að eyða það fyrir þig, 100 00:04:51,910 --> 00:04:53,576 það er bara að fara að í grundvallaratriðum að fleygja því. 101 00:04:53,576 --> 00:04:55,550 Svo það er að fara að prenta það út á skjáinn. 102 00:04:55,550 --> 00:04:57,150 >> Þetta virðist eins og það er slæmt hlutur, en í raun er það 103 00:04:57,150 --> 00:04:58,220 að fara að vera mjög gott, eins og við munum 104 00:04:58,220 --> 00:05:00,390 sjá þegar við tölum um PHP vefur þróun, 105 00:05:00,390 --> 00:05:04,010 því það þýðir að við getum intersperse PHP og HTML. 106 00:05:04,010 --> 00:05:06,640 Við getum notað þá saman til að búa til fleiri dynamic vefur blaðsíða. 107 00:05:06,640 --> 00:05:10,650 En meira um það í vídeó á PHP vefur þróun. 108 00:05:10,650 --> 00:05:12,021 >> Svo er það setningafræði PHP? 109 00:05:12,021 --> 00:05:13,520 Það er það sem þetta myndband er allur óður í. 110 00:05:13,520 --> 00:05:14,850 Við skulum tala um það. 111 00:05:14,850 --> 00:05:16,490 >> Svo til að byrja út, breytur. 112 00:05:16,490 --> 00:05:18,030 PHP breytur til. 113 00:05:18,030 --> 00:05:20,067 Það eru bara tvö stór munur frá C 114 00:05:20,067 --> 00:05:21,900 Hið fyrra er að það er ekki er gerð specifier. 115 00:05:21,900 --> 00:05:24,245 Við þurfum ekki að segja int, bleikju, fljóta, öll þessi efni. 116 00:05:24,245 --> 00:05:25,620 Við þurfum ekki að gera það lengur. 117 00:05:25,620 --> 00:05:26,810 PHP er nútíma tungumál. 118 00:05:26,810 --> 00:05:28,910 Það er hægt að reikna út hvað þú ert reyna að gera eða gera bestu 119 00:05:28,910 --> 00:05:30,451 giska um hvað þú ert að reyna að gera. 120 00:05:30,451 --> 00:05:31,700 Svo er það nokkuð gott. 121 00:05:31,700 --> 00:05:35,330 >> The annar hlutur er að allir breytu nöfn verða að byrja með dollaramerki. 122 00:05:35,330 --> 00:05:36,940 Það er bara eitthvað að venjast. 123 00:05:36,940 --> 00:05:39,496 Það er svolítið skrýtið, því það er svo sem PHP skil 124 00:05:39,496 --> 00:05:40,870 hvað er breytilegt og það er ekki. 125 00:05:40,870 --> 00:05:43,340 Svo hvert breytuheiti byrjar með dollaramerki. 126 00:05:43,340 --> 00:05:46,884 Svo í C við gætum sagt eitthvað svona, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Við þurfum ekki að gera það lengur í PHP. 128 00:05:48,550 --> 00:05:52,540 Við getum bara sagt $ x = 54. 129 00:05:52,540 --> 00:05:55,920 Og við gætum sagt til dæmis, í C, ef við hefðum pund-innifalinn CS50 .h 130 00:05:55,920 --> 00:06:00,314 haus skrá, getum við sagt string setningu = "Þetta er CS50." 131 00:06:00,314 --> 00:06:01,980 Við þurfum ekki að gera það í PHP, þó. 132 00:06:01,980 --> 00:06:04,865 Við getum bara sagt $ setningu = "Þetta er CS50." 133 00:06:04,865 --> 00:06:08,760 Og í raun, band er nú a innbyggður-í gögn gerð í PHP, 134 00:06:08,760 --> 00:06:10,950 eða öllu heldur PHP skilur hvað band er. 135 00:06:10,950 --> 00:06:15,612 Það er aðskilið frá fjölda stafi eins og það er í C. 136 00:06:15,612 --> 00:06:17,570 Allt uppáhalds skilyrt yfirlýsingar frá C 137 00:06:17,570 --> 00:06:19,520 eru enn í boði fyrir þig að nota. 138 00:06:19,520 --> 00:06:21,140 Svo ekki stór umskipti þar. 139 00:06:21,140 --> 00:06:23,400 Við getum say-- við getum haft ef yfirlýsingar eins og þetta. 140 00:06:23,400 --> 00:06:28,210 ef $ y 43, eða $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Svo er það frekar einfalt. 142 00:06:29,690 --> 00:06:31,980 Við getum haft ef og annað. 143 00:06:31,980 --> 00:06:34,210 Við getum haft ef og annað hvort. 144 00:06:34,210 --> 00:06:36,430 >> Og taka eitthvað nokkuð gott hér, og þetta 145 00:06:36,430 --> 00:06:39,620 er tegund af einum af þeim Kostir PHP móti C, tilkynningu 146 00:06:39,620 --> 00:06:41,510 hvað virka við erum ekki að nota hér? 147 00:06:41,510 --> 00:06:47,737 Við erum að nota == til að bera saman a breyta, $ nafn, í streng. 148 00:06:47,737 --> 00:06:49,070 Við gætum ekki gert það í C, ekki satt? 149 00:06:49,070 --> 00:06:53,200 Við þurftum að nota fall sem kallast StrComp eða StrEndComp eða 150 00:06:53,200 --> 00:06:54,840 tengdra frænkum sínum. 151 00:06:54,840 --> 00:06:56,980 >> Og svo þegar við sjáum þessa kosti. 152 00:06:56,980 --> 00:07:00,930 Við þurfum ekki að gera eitthvað eins kjánalegt eða kannski unintuitive 153 00:07:00,930 --> 00:07:03,540 og kalla fall sem kallast StrComp ef ég vil bara að prófa 154 00:07:03,540 --> 00:07:05,237 hvort gildi er band. 155 00:07:05,237 --> 00:07:07,820 Ég gæti bara notað jafngildir jafngildir, eins og ég gæti gert neitt annað. 156 00:07:07,820 --> 00:07:09,560 Svo er það kostur. 157 00:07:09,560 --> 00:07:13,350 >> Stundum, við the vegur, þú gætir sjá annað hvort sem eitt orð, elseif. 158 00:07:13,350 --> 00:07:14,910 Og það er allt í lagi í PHP eins og heilbrigður. 159 00:07:14,910 --> 00:07:17,020 Svo stundum þú gætir séð það. 160 00:07:17,020 --> 00:07:17,790 Það er ekki prentvilla. 161 00:07:17,790 --> 00:07:21,830 PHP skilur í raun elseif. 162 00:07:21,830 --> 00:07:23,980 Ég veit ekki hvers vegna þeir ákveðið að innleiða það, 163 00:07:23,980 --> 00:07:28,220 en eins og við höfum séð oft um myndbönd okkar svo langt, 164 00:07:28,220 --> 00:07:30,460 við forritarar elska það ef við getum gert hlutina hratt, 165 00:07:30,460 --> 00:07:33,660 svo að losna við þessi rými er greinilega stór kostur. 166 00:07:33,660 --> 00:07:34,800 >> Svo er það ef og elseif. 167 00:07:34,800 --> 00:07:37,540 Við höfum einnig þríþætt rekstraraðila, muna spurningarmerki ristill, 168 00:07:37,540 --> 00:07:43,262 fyrir mjög stuttu formi ef annað eða skilyrt tré. 169 00:07:43,262 --> 00:07:45,470 Og virðist, í þessu, það sem við erum að reyna að gera hér 170 00:07:45,470 --> 00:07:49,720 er úthluta breytu $ bréf annaðhvort satt eða ósatt, 171 00:07:49,720 --> 00:07:54,110 eftir því hvort $ var er bókstaf. 172 00:07:54,110 --> 00:07:57,320 Svo er þetta nokkuð svipað isalpha sem við erum kunnugir frá C. 173 00:07:57,320 --> 00:07:59,010 Þetta er tegund af jafngildi PHP. 174 00:07:59,010 --> 00:08:01,550 Fallið er greinilega heitir ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 en það er hvernig við gerum það í PHP. 176 00:08:03,450 --> 00:08:08,560 Svo allt þetta er að fara að vera er, ef $ var er bréf, $ bréf er satt. 177 00:08:08,560 --> 00:08:13,820 Ef $ var er ekki bréf, $ bréf er falskur. 178 00:08:13,820 --> 00:08:15,820 >> Við höfum einnig skipta yfirlýsingar enn. 179 00:08:15,820 --> 00:08:17,870 Við muna þá úr C eins og heilbrigður. 180 00:08:17,870 --> 00:08:22,480 Á the mjög toppur þar, það er hvernig við gerum eitthvað eins og Fá INT eða fá band. 181 00:08:22,480 --> 00:08:23,845 Svo hefur PHP sem byggð í. 182 00:08:23,845 --> 00:08:25,470 Við þurfum ekki CS50 bókasafn lengur. 183 00:08:25,470 --> 00:08:27,237 Við getum bara notað virka readline. 184 00:08:27,237 --> 00:08:29,820 Hvað það er að fara að gera er að prenta út skilaboðin, "ástand þitt, 185 00:08:29,820 --> 00:08:33,820 vinsamlegast, "og þá blikka hvetja bíða eftir notanda til að slá 186 00:08:33,820 --> 00:08:34,739 einhverjar upplýsingar. 187 00:08:34,739 --> 00:08:36,530 Nú taka hvað við getum gert með rofa. 188 00:08:36,530 --> 00:08:39,105 Ef þú hefur notað það áður, Þú manst kannski að skipta 189 00:08:39,105 --> 00:08:44,960 takmarkast ansi mikið að heiltölur og stafir, en nú getum við notað strengi. 190 00:08:44,960 --> 00:08:50,190 Og í raun, skiptir yfirlýsingu í PHP er töluvert sveigjanlegri 191 00:08:50,190 --> 00:08:54,880 en frændi hennar frá C. 192 00:08:54,880 --> 00:08:55,380 Lykkjur. 193 00:08:55,380 --> 00:08:58,130 Rétt eins conditionals, öll Old Favorites eru enn þarna. 194 00:08:58,130 --> 00:09:00,740 Við höfum meðan lykkjur sem telja frá 1 til 100 í þessu tilfelli. 195 00:09:00,740 --> 00:09:03,940 Við höfum að gera á meðan lykkjur að telja frá 1 til 100, 196 00:09:03,940 --> 00:09:06,200 og við höfum fyrir lykkjur að telja frá 1 til 100. 197 00:09:06,200 --> 00:09:07,220 Svo ekki stór stökk þar. 198 00:09:07,220 --> 00:09:09,360 The setningafræði er nokkuð mikið nákvæmlega það sama, 199 00:09:09,360 --> 00:09:11,760 nema nú erum við að nota dollaramerki breyta staðinn 200 00:09:11,760 --> 00:09:17,260 af lýsa tölustafi breytur eða eitthvað svoleiðis fyrir teljara okkar. 201 00:09:17,260 --> 00:09:20,090 >> Hér er þar sem hlutirnir fá mikið betri en C, þó. 202 00:09:20,090 --> 00:09:21,020 Fylki. 203 00:09:21,020 --> 00:09:23,020 Svo muna þegar við vorum að tala um C, til þess 204 00:09:23,020 --> 00:09:25,560 fyrir okkur til að vaxa og skreppa sett af upplýsingum, 205 00:09:25,560 --> 00:09:28,310 við þurftum að raða á vanskilum að þessari hugmynd um tengda listanum, 206 00:09:28,310 --> 00:09:30,780 vegna C fylki var fastur í stærð. 207 00:09:30,780 --> 00:09:31,800 Við gátum ekki minnka þær. 208 00:09:31,800 --> 00:09:32,930 Við gátum ekki vaxa þær. 209 00:09:32,930 --> 00:09:36,074 Við þurftum að endurúthluta minni og gera allt þetta brjálæði 210 00:09:36,074 --> 00:09:38,490 eða nota tengist listum, sem taka upp töluvert meira pláss. 211 00:09:38,490 --> 00:09:41,590 En í PHP, eru fylki ekki föst stærð lengur. 212 00:09:41,590 --> 00:09:43,240 Þeir geta vaxið og þeir geta skreppa saman. 213 00:09:43,240 --> 00:09:46,660 Svo aftur, þessi 20 ára sem fyrir hendi á milli fyrstu útgáfu af C 214 00:09:46,660 --> 00:09:49,440 og fyrsta útgáfa PHP, við ákváðum að, þú veist, 215 00:09:49,440 --> 00:09:51,670 það væri mjög mikill ef við gætum gert þetta. 216 00:09:51,670 --> 00:09:54,100 Og svo við framkvæmd þessa. 217 00:09:54,100 --> 00:09:58,040 >> Svo PHP fylki eru ekki föst í stærð, og vegna þess að PHP er í raun ekki 218 00:09:58,040 --> 00:10:03,090 hafa forritari framan-vísi hugmyndir um tegundir, 219 00:10:03,090 --> 00:10:05,110 getum við blandað gagnatög í fylki okkar, líka. 220 00:10:05,110 --> 00:10:08,100 Svo við gerum ekki einu sinni að nota allt heiltölur eða allt fljótandi stig, 221 00:10:08,100 --> 00:10:12,826 við getum haft blöndu af öllum mismunandi tegundir í einum array. 222 00:10:12,826 --> 00:10:14,700 Lýsa fylki er frekar einfalt. 223 00:10:14,700 --> 00:10:16,116 Það er bara eins og allir aðrir breytu. 224 00:10:16,116 --> 00:10:20,020 $ nums = array (1, 2, 3, 4), array vera fall 225 00:10:20,020 --> 00:10:22,760 sem er byggt inn í PHP sem mun skapa fjölda fyrir þig. 226 00:10:22,760 --> 00:10:28,315 Þetta skapar fjölbreytta fjórum gildum, tölur í þessu tilfelli, sem heitir $ nums. 227 00:10:28,315 --> 00:10:29,940 Og það er meira en ein leið til að gera það. 228 00:10:29,940 --> 00:10:32,420 Og við erum að fara að sjá þetta mikið í PHP. 229 00:10:32,420 --> 00:10:36,380 PHP hefur verið þróuð af mörgum mismunandi fólk og vex og vex og vex. 230 00:10:36,380 --> 00:10:40,050 Það er yfirleitt ekki bara tveir eða þrjár leiðir til að gera eitthvað í PHP, 231 00:10:40,050 --> 00:10:42,170 það er oftast eins 10 eða 20. 232 00:10:42,170 --> 00:10:45,300 Hér er bara annar sameiginlegur leið til að lýsa fylki. 233 00:10:45,300 --> 00:10:48,310 $ nums = hornklofi 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Svo er þessi tegund af líkur til horn C er br-- hrokkið Brace merki, frekar. $ - 235 00:10:53,170 --> 00:10:58,525 eða það væri int nums ferningur sviga jafngildir hrokkið Brace 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 Í PHP er það $ nums = ferningur sviga 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 En bæði þessi dæmi hér að gefa mér fylki af fjórum í þessu tilfelli heiltölur. 238 00:11:08,920 --> 00:11:10,920 >> Hvað ef ég vil að tittur eitthvað núna? 239 00:11:10,920 --> 00:11:14,760 Jæja ég get bara sagt $ nums 4, sem aftur, við erum enn að telja frá 0 hér 240 00:11:14,760 --> 00:11:17,800 í PHP, væri fimmta þáttur í fylkinu. 241 00:11:17,800 --> 00:11:18,990 Ég get bara sagt að. 242 00:11:18,990 --> 00:11:22,860 Ég ætla ekki að fara að þjást seg kenna, vegna þess að array minn er bara 243 00:11:22,860 --> 00:11:24,337 að fara að vaxa til móts sem. 244 00:11:24,337 --> 00:11:25,420 Það er nokkuð gott, ekki satt? 245 00:11:25,420 --> 00:11:28,400 Og í raun, ég er ekki einu sinni að tilgreint hvar ég vil setja það. 246 00:11:28,400 --> 00:11:31,220 Ég get bara sagt þetta og bara tittur það rétt á til enda, 247 00:11:31,220 --> 00:11:34,099 eða ég gæti jafnvel bara segjum $ nums 20 eða 1.000. 248 00:11:34,099 --> 00:11:35,140 Það skiptir ekki máli. 249 00:11:35,140 --> 00:11:38,330 Það er samt bara að fara að tittur það rétt á að enda. 250 00:11:38,330 --> 00:11:41,490 >> Svo ég get vaxa, og as-- við erum ekki að fara að taka það í hér, 251 00:11:41,490 --> 00:11:45,360 en ég get splæsa eða ræmur Efnin í fylkinu eins og heilbrigður, 252 00:11:45,360 --> 00:11:50,064 og array mun skreppa til móts sem nú vantar eða tómt rúm. 253 00:11:50,064 --> 00:11:52,230 Það er önnur leið til að tittur eitthvað á fjölda, 254 00:11:52,230 --> 00:11:54,330 sem er fall sem heitir array_push. 255 00:11:54,330 --> 00:11:57,860 Svo aftur, bara þessi hugmynd um að vera fær um að gera hlutina marga mismunandi vegu. 256 00:11:57,860 --> 00:12:01,950 Þannig að við höfum séð þrjár mismunandi leiðir nú að tittur annar þáttur á fylki. 257 00:12:01,950 --> 00:12:06,900 Svo bætir þetta annar þáttur til loka $ nums fylkisins. 258 00:12:06,900 --> 00:12:08,340 Og við getum blandað upp gagnatög okkar. 259 00:12:08,340 --> 00:12:13,110 Þannig að ég gæti hafa fjölbreytta ekki 1, 2, 3, 4, en 1, satt, 3, 4, 260 00:12:13,110 --> 00:12:16,420 þar satt er Boolean, og þá ef ég vil tittur á annar þáttur 261 00:12:16,420 --> 00:12:20,860 að þessi fylking, kannski strengur strengurinn "fimm" Ég gæti gert það. 262 00:12:20,860 --> 00:12:26,110 Og nú array minn myndi vera 1, satt, 3, 4, fimm. 263 00:12:26,110 --> 00:12:28,640 Orðið fimm, ekki heiltala 5. 264 00:12:28,640 --> 00:12:31,270 Svo mikið af sveigjanleika þar. 265 00:12:31,270 --> 00:12:33,290 >> Sveigjanleiki fær jafnvel betra, þó, 266 00:12:33,290 --> 00:12:37,530 vegna þess að PHP hefur stuðning fyrir eitthvað kallað tengin array. 267 00:12:37,530 --> 00:12:40,660 Og við svoleiðis óljóst talað um tengin fylki í C 268 00:12:40,660 --> 00:12:44,740 í tengslum við kjötkássa matskeið, því hvað tengin fylki eru í raun allt 269 00:12:44,740 --> 00:12:48,950 um eru að gera takkann gildi par kortlagning. 270 00:12:48,950 --> 00:12:53,410 Og í þessu tilviki, er keys-- ef við erum kunnugir fylki frá C, 271 00:12:53,410 --> 00:12:55,440 takkarnir eru vísitölu tölur. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 Og þau gildi eru það sem við komumst að því array 0, array 1, array 2, og svo framvegis. 274 00:13:03,070 --> 00:13:06,310 Svo takkarnir eru vísitölur, og gildin eru 275 00:13:06,310 --> 00:13:10,060 hvað er í því fylki stað, tilgreinir vísitölu. 276 00:13:10,060 --> 00:13:15,130 >> En í PHP, þá höfum við ekki að gera þetta hugtakið array 0, array 1, array 2 277 00:13:15,130 --> 00:13:15,830 lengur. 278 00:13:15,830 --> 00:13:21,025 Við getum nú notað raunverulegt orð að kortinu takkana gildum. 279 00:13:21,025 --> 00:13:22,650 Og svo ég gæti sagt eitthvað eins og this. 280 00:13:22,650 --> 00:13:26,710 Ég gæti búið til fylki með því að nota hornklofi setningafræði sem hér segir. 281 00:13:26,710 --> 00:13:30,685 $ pizzur = ferningur krappi "ostur" og þá 282 00:13:30,685 --> 00:13:37,210 Þessi tegund af tvöfaldur ör merki, 8.99, "pepperoni," arrow 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 og svo framvegis. 284 00:13:37,880 --> 00:13:39,060 Og svo það sem er að gerast hér? 285 00:13:39,060 --> 00:13:41,040 Hvað er ég að gera í raun og veru? 286 00:13:41,040 --> 00:13:43,990 Ég er að skapa helstu gildi par kortlagning. 287 00:13:43,990 --> 00:13:49,060 Svo í stað þess að segja, til dæmis, pizzur 0, stykki 1, pizzur 2, 288 00:13:49,060 --> 00:13:52,350 Ég get nú sagt pizzur ostur, pizzur pepperoni, 289 00:13:52,350 --> 00:13:55,120 og vísa til gildum í tengslum við þá. 290 00:13:55,120 --> 00:13:56,970 >> Svo hér eru lyklar okkar í grænu. 291 00:13:56,970 --> 00:13:59,870 Ostur, pepperoni, grænmeti, Buffalo kjúklingur. 292 00:13:59,870 --> 00:14:04,200 Hér er ör sem gerir þetta lykill gildi par kortlagning. 293 00:14:04,200 --> 00:14:07,420 Og þá eru hér gildin á þeim array stað. 294 00:14:07,420 --> 00:14:10,330 Svo það er eins og að segja array 0 er 8.99. 295 00:14:10,330 --> 00:14:11,720 Lykillinn er 0. 296 00:14:11,720 --> 00:14:13,600 Gildi er 8,99. 297 00:14:13,600 --> 00:14:19,370 Ég get nú sagt array ostur, eða í þessu Málið pizzur ostur, ostur er lykillinn, 298 00:14:19,370 --> 00:14:23,340 og það sem ég finn í pizzur ostur er 8.99. 299 00:14:23,340 --> 00:14:25,540 Það er gildi að ég finn það. 300 00:14:25,540 --> 00:14:28,124 >> Svo ég get sagt það eins. $ pizza ostur = 7,99. 301 00:14:28,124 --> 00:14:29,040 Segja að ég ætla að hafa til sölu. 302 00:14:29,040 --> 00:14:31,750 Ég vil dis-- Ég vil falla verð á osti pizza. 303 00:14:31,750 --> 00:14:35,620 Eða ég get notað grænmeti Pizza sem hluti af því ástandi sem, 304 00:14:35,620 --> 00:14:39,990 eða ég get bætt við nýjum þáttum að mínum array, bara eins og ég gæti gert áður. 305 00:14:39,990 --> 00:14:44,680 Ég get bætt við nýjum þáttum að þetta tengin array með lykill "beikoni" 306 00:14:44,680 --> 00:14:49,250 og verðmæti 13.49. 307 00:14:49,250 --> 00:14:53,820 >> En þessi tegund af kynnir vandamál, ef þú hugsar um það fyrir a second. 308 00:14:53,820 --> 00:14:55,721 Hvernig myndum við árétta gegnum þennan fjölda? 309 00:14:55,721 --> 00:14:56,220 Ekki satt? 310 00:14:56,220 --> 00:14:59,820 Í C, myndum við bara hafa fyrir lykkju, yfirleitt, að 311 00:14:59,820 --> 00:15:03,650 myndi hlaupa frá 0 til Stærð fylkisins mínus 1. 312 00:15:03,650 --> 00:15:08,060 The array hefur n þætti í á, sem Gildir Vísitölur eru 0 til n mínus 1. 313 00:15:08,060 --> 00:15:11,530 Þannig að við gætum notað fyrir lykkju til skref í gegnum hvert einasta þáttur. 314 00:15:11,530 --> 00:15:13,530 >> En það er í raun ekki raunin lengur, ekki satt? 315 00:15:13,530 --> 00:15:17,360 Nú þar sem við höfum lykill gildi par kortlagning þar sem takkarnir eru orð, 316 00:15:17,360 --> 00:15:19,970 hvernig eigum við að árétta yfir öll orðin? 317 00:15:19,970 --> 00:15:22,420 Jæja, sem betur fer, PHP hefur leið til að takast á við þetta líka, 318 00:15:22,420 --> 00:15:24,580 og svo við munum stökkva aftur að lykkjur í annað 319 00:15:24,580 --> 00:15:30,780 að kynna fjórða konar lykkju sem er í PHP kallað framhandleggur lykkja. 320 00:15:30,780 --> 00:15:34,430 Og hvað framhandleggur lykkja gerir er það er í rauninni það sama. 321 00:15:34,430 --> 00:15:36,060 Þú getur notað það til hvers konar fylkisins. 322 00:15:36,060 --> 00:15:38,100 En það er í grundvallaratriðum Sama hugmynd og fyrir lykkju, 323 00:15:38,100 --> 00:15:40,750 nema í stað þess að nota vísitölu tölur, þú bara 324 00:15:40,750 --> 00:15:45,830 hafa þetta undarlegt setningafræði hvar þú kalla hvern einasta þáttur 325 00:15:45,830 --> 00:15:47,550 nafn að því er varðar þessa lykkju. 326 00:15:47,550 --> 00:15:49,258 >> Þannig að í þessu tilfelli, framhandleggur ($ array eins og $ lykill). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Í grundvallaratriðum, sem að athugasemd skýringum, inni í því framhandleggur lykkja, 329 00:15:56,450 --> 00:16:00,466 það er að fara að fara yfir hvert einasta þáttur $ array, sem er yfirleitt 330 00:16:00,466 --> 00:16:03,340 að fara að vera tengin array, en geta í raun verið hvers konar fylking 331 00:16:03,340 --> 00:16:05,419 sem þú vilt í PHP. 332 00:16:05,419 --> 00:16:07,210 Og í hvert sinn sem í fyrir lykkju þú gætir 333 00:16:07,210 --> 00:16:13,780 hafa sagt $ array hornklofum $ i, þú gætir bara sagt $ lykill. 334 00:16:13,780 --> 00:16:22,340 Þannig að $ lykill verður til samheiti fyrir hvert Vísitala PHP tengin array þinn, 335 00:16:22,340 --> 00:16:23,710 og svo þú getur notað það eins og þessi. 336 00:16:23,710 --> 00:16:25,897 >> Svo til dæmis, höfum við nú fékk pizzur array okkar. 337 00:16:25,897 --> 00:16:27,730 Ég hef svona matur það í horni þar 338 00:16:27,730 --> 00:16:31,080 svo við getum notað það til að gera a fljótur dæmi. 339 00:16:31,080 --> 00:16:36,420 Ef ég segi framhandleggur ($ pizzur og $ pizza), Jæja, hvað er að gerast? 340 00:16:36,420 --> 00:16:42,400 Jæja, ég ætla að árétta í gegnum alla einn þáttur af array $ pizzur, 341 00:16:42,400 --> 00:16:46,670 og svo að gera, ég ætla að hringja hver þáttur, þegar ég er inni 342 00:16:46,670 --> 00:16:49,400 um líkama sem fyrir lykkju, $ pizzu. 343 00:16:49,400 --> 00:16:52,440 >> Svo er þessi tegund af a standa í, muna, að $ pizza 344 00:16:52,440 --> 00:16:59,140 er a standa-í fyrir að segja $ Pizzur hornklofum $ i 345 00:16:59,140 --> 00:17:03,370 ef við værum að nota fyrir lykkju, þar sem við gæti farið úr $ i = 0 til, í þessu tilfelli, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Ef við ekki hafa lykilinn gildi pör Hér, þetta myndi vera þáttur 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 og við myndum nota fyrir lykkju til að fara $ pizzur 0, $ pizzur 1, $ Pizzur 2, 349 00:17:16,390 --> 00:17:17,750 $ pizzur 3. 350 00:17:17,750 --> 00:17:23,130 Svo nú bara $ pizza er skipta fyrir einstaklinginn takkann. 351 00:17:23,130 --> 00:17:25,630 >> Svo hvað er þetta að fara að prenta út? 352 00:17:25,630 --> 00:17:29,030 Ég er að prenta út $ pizzu. 353 00:17:29,030 --> 00:17:35,270 Hvað er ég að fara að finna at-- ef ég prenta út $ pizzur, $ i? 354 00:17:35,270 --> 00:17:35,770 Ekki satt? 355 00:17:35,770 --> 00:17:38,680 Ef ég er að fara að prenta út sem ith þáttur pizzum, 356 00:17:38,680 --> 00:17:40,070 hvað er ég að fara að prenta? 357 00:17:40,070 --> 00:17:42,580 Ég ætla að prenta út gildi á þeim stað, ekki satt? 358 00:17:42,580 --> 00:17:45,370 Eins og ef við vorum að gera þetta í samhengi við C, 359 00:17:45,370 --> 00:17:49,786 við gerum ekki venjulega notað Iterator okkar breyta, int i = 0, i er minna en 3, 360 00:17:49,786 --> 00:17:52,900 Ég ++, til að prenta út 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Við erum að prenta út array 0, array 1, array 2, array 3. 362 00:17:57,500 --> 00:17:59,580 Og svo er það þetta prentar út er þetta. 363 00:17:59,580 --> 00:18:01,150 Það er listi yfir verð. 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 >> Nú a fljótur í huga hér. 366 00:18:06,900 --> 00:18:10,900 A framhandleggur lykkja er ekki endilega prenta út hlutina í röð. 367 00:18:10,900 --> 00:18:12,770 Það er ekki tryggt. 368 00:18:12,770 --> 00:18:13,550 Það gerir venjulega. 369 00:18:13,550 --> 00:18:17,667 Það er yfirleitt miðað við þess í hvaða þættir eru bættist, 370 00:18:17,667 --> 00:18:18,750 svo bara að hafa það í huga. 371 00:18:18,750 --> 00:18:20,830 Það gæti ekki verið í lagi. 372 00:18:20,830 --> 00:18:23,930 En framhandleggur lykkja mun kunnugt yfir hverjum einasta þætti 373 00:18:23,930 --> 00:18:25,060 fylkisins sem um ræðir. 374 00:18:25,060 --> 00:18:27,980 Í þessu tilviki, aftur, sem array er $ pizzur. 375 00:18:27,980 --> 00:18:32,920 >> Ég get breytt setningafræði, þó, ef Ég vil bæði á takkann og gildi. 376 00:18:32,920 --> 00:18:37,179 Í stað þess að segja $ pizzum og $ pizzu, get ég sagt þetta. 377 00:18:37,179 --> 00:18:39,470 Og ef þú horfir á það sem ég hef lögð áhersla á grænt hér, 378 00:18:39,470 --> 00:18:42,130 það lítur út eins og lykill gildi par kortlagning. 379 00:18:42,130 --> 00:18:45,980 Og svo ef you-- jafnvel ef þú ert ekki alveg viss um hvað það er að fara að gera, 380 00:18:45,980 --> 00:18:49,300 þú geta sennilega giska sem $ úrvals er að fara 381 00:18:49,300 --> 00:18:53,800 að vera lykill í þessu tilfelli og $ verð er að fara til vera the gildi. 382 00:18:53,800 --> 00:18:59,200 Þannig að ég ætla að skipta núna hvert þáttur á $ pizzur sem lykill gildi par, 383 00:18:59,200 --> 00:19:03,900 og nú get ég vísa á takka og gildi, sem gæti vel, 384 00:19:03,900 --> 00:19:05,590 til dæmis, eins og hér segir. 385 00:19:05,590 --> 00:19:10,170 >> "A heild" - þetta er mikið af prentun gerast here-- "A heild" 386 00:19:10,170 --> 00:19:17,300 topping "pizza kostar $" verð, og þá Ég prenta út tímabilið og sviga n. 387 00:19:17,300 --> 00:19:23,420 Svo nú, tilkynning aftur ég hef aðgang að lykill, $ úrvals, og gildi, $ verð. 388 00:19:23,420 --> 00:19:26,647 Svo er hægt að giska hvað þetta er að fara að prenta út? 389 00:19:26,647 --> 00:19:29,480 There 'a einhver fjöldi af prenta yfirlýsingar, en það er bara ein sviga n, 390 00:19:29,480 --> 00:19:33,410 svo það er að fara að prenta eitthvað á An entire-- á einni línu af kóða. 391 00:19:33,410 --> 00:19:36,965 >> Ef ég get átt á takka og gildi, þá nú, 392 00:19:36,965 --> 00:19:39,090 í stað þess bara að vera fær um að prenta út verð, 393 00:19:39,090 --> 00:19:41,330 Ég er að prenta út eitthvað eins og this. 394 00:19:41,330 --> 00:19:43,780 "A heild ostur pizza kostar $ 8,99." 395 00:19:43,780 --> 00:19:47,150 Og nú er ég að nota alla keys-- ostur, pepperoni, grænmeti, 396 00:19:47,150 --> 00:19:49,640 Buffalo chicken-- og gildin. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 So það er bara önnur leið 398 00:19:53,980 --> 00:19:57,840 að gera framhandleggur lykkja að í stað þess bara að gefa þér aðgang að þeim gildum, 399 00:19:57,840 --> 00:20:02,950 það gefur bara you-- það gefur þér aðgang að lyklunum og gildi. 400 00:20:02,950 --> 00:20:04,411 >> Svo prenta út upplýsingar. 401 00:20:04,411 --> 00:20:07,410 Ég hef þegar gert það nokkrum mismunandi leiðir, þú gætir hafa tekið eftir. 402 00:20:07,410 --> 00:20:11,080 Tvær aðgerðir sem við höfum fyrst og fremst séð eru prenta og bergmál. 403 00:20:11,080 --> 00:20:14,380 Og fyrir ansi mikið alla intents og tilgangi, þeir nákvæmlega það sama. 404 00:20:14,380 --> 00:20:17,130 They're-- það er mjög lúmskur Mismunurinn sem er ekki einu sinni þess virði 405 00:20:17,130 --> 00:20:21,130 fá inn, en í grundvallaratriðum alls staðar þú getur notað prenta þú getur sennilega nota 406 00:20:21,130 --> 00:20:22,370 echo eins og heilbrigður. 407 00:20:22,370 --> 00:20:23,610 >> Og það er ekki aðeins tvær. 408 00:20:23,610 --> 00:20:26,970 PHP hefur a einhver fjöldi af mismunandi leiðir til að prenta það út, 409 00:20:26,970 --> 00:20:30,520 og það hefur einnig leiðir til að samþætta breytur í miðjum streng. 410 00:20:30,520 --> 00:20:32,860 Svo muna úr C, gera þér muna hvað virka 411 00:20:32,860 --> 00:20:37,580 við getum notað til að skipta breytur í það sem við viljum prenta út? 412 00:20:37,580 --> 00:20:40,160 Þú notar sennilega þetta virka alveg fullt. 413 00:20:40,160 --> 00:20:42,290 printf, ekki satt? 414 00:20:42,290 --> 00:20:45,290 Svo er þetta það sem við höfðum áður inni á samhengi framhandleggur lykkja okkar. 415 00:20:45,290 --> 00:20:48,000 Við höfðum þessum fimm aðskilin yfirlýsingar prenta, 416 00:20:48,000 --> 00:20:50,330 því það var eina Eins og ég vissi í raun á þeim tíma 417 00:20:50,330 --> 00:20:52,450 hvernig á að prenta út skilaboð. 418 00:20:52,450 --> 00:20:59,560 Ég vissi ekki hvernig á að samþætta breyta $ úrvals í PHP númerið mitt. 419 00:20:59,560 --> 00:21:03,700 Jæja, ef ég tekið bara villtur giska, printf, reyndar það hefði virkað. 420 00:21:03,700 --> 00:21:08,980 printf er fall sem ég get notað í PHP, alveg eins og ég get notað það í C. 421 00:21:08,980 --> 00:21:11,880 >> Og svo eitthvað eins og þetta, printf, aftur, við erum kunnugir því. 422 00:21:11,880 --> 00:21:16,420 Fyrsti% s er skipt með verðmæti $ úrvals. 423 00:21:16,420 --> 00:21:19,700 Annað% s er skipt með verðmæti $ verði. 424 00:21:19,700 --> 00:21:22,630 Og svo ég interpellating, sem er bara fínt leið 425 00:21:22,630 --> 00:21:25,400 að segja ég er stafur sem breytur í þeim stað. 426 00:21:25,400 --> 00:21:31,000 Þannig að ég ætla að tengja í $ úrvals þar sem rauður% s er og $ verð þar sem blár% s 427 00:21:31,000 --> 00:21:36,060 er, og þá myndi ég fá skilaboð, "A heild ostur pizza kostar $ 8,99." 428 00:21:36,060 --> 00:21:37,750 >> Ekki eina leiðin sem ég get gert það, þó. 429 00:21:37,750 --> 00:21:39,760 Kannski myndi ég vilja nota þessa aðferð. 430 00:21:39,760 --> 00:21:44,890 Þetta er í raun það sem er oftast heitir breyta interpellation. 431 00:21:44,890 --> 00:21:45,690 Ég get notað bergmál. 432 00:21:45,690 --> 00:21:47,737 Ég gæti notað prenta líka, eins og við munum sjá. 433 00:21:47,737 --> 00:21:48,820 En hvað er að gerast hér? 434 00:21:48,820 --> 00:21:51,520 >> Fyrst af öllu, ég verð að flýja dollaramerki. 435 00:21:51,520 --> 00:21:55,140 Vegna þess að muna, þegar við vorum í raun prentun út verð á pizzum, 436 00:21:55,140 --> 00:21:59,370 Ég var reyndar að forsníða þá eins peningamálum tölur með dollaramerki. 437 00:21:59,370 --> 00:22:05,635 En við erum að nota dollara merki einnig að tákna breytilegum nöfn í PHP, 438 00:22:05,635 --> 00:22:08,010 einkum þegar ég er nota þessa aðferð á hrokkið 439 00:22:08,010 --> 00:22:10,040 Brace breyta interpellation aðferð, þarf ég 440 00:22:10,040 --> 00:22:13,490 að flýja dollara minn merki svo það er ekki held ég að tala um breytu. 441 00:22:13,490 --> 00:22:16,920 Það er að fara að raunverulega, bókstaflega prentað dollaramerki. 442 00:22:16,920 --> 00:22:19,530 >> Svo konar analogize það til það sem þú sérð í lok þar. 443 00:22:19,530 --> 00:22:22,832 Það er í raun ekki prenta sviga n, ekki satt? 444 00:22:22,832 --> 00:22:24,290 Það prentar út nýja línu staf. 445 00:22:24,290 --> 00:22:26,750 Þetta is-- það er ekki að fara að prenta sviga dollaramerki, 446 00:22:26,750 --> 00:22:30,130 það er að fara að prenta út bara a dollaramerki staf. 447 00:22:30,130 --> 00:22:30,640 Sama hugmynd. 448 00:22:30,640 --> 00:22:32,760 Flýja röð, hvað þessir hlutir eru kallaðir. 449 00:22:32,760 --> 00:22:37,080 >> En eftir því að ég er ekki að gera hvers konar% s leikmannaskipti 450 00:22:37,080 --> 00:22:40,050 Ég er bara bókstaflega að tengja þessara stærða. 451 00:22:40,050 --> 00:22:45,110 Og svo í this-- hvað myndi gerast hér er að verðmæti $ topping-- aftur, 452 00:22:45,110 --> 00:22:48,390 bara að halda við það sem við höfum verið að tala um svo far-- osti vildi fá 453 00:22:48,390 --> 00:22:49,720 tengt í það. 454 00:22:49,720 --> 00:22:54,780 Og $ verð væri hvað sem gildi er á pizzur, hornklofum, ostur, 455 00:22:54,780 --> 00:22:56,270 sem var 8,99. 456 00:22:56,270 --> 00:23:01,860 Og svo þetta myndi líka prentað út "A heild ostur pizza kostar $ 8,99." 457 00:23:01,860 --> 00:23:05,160 Og eins og ég sagði, ég gæti notað prenta hér í stað þess echo, 458 00:23:05,160 --> 00:23:08,040 og virkni vera nánast nákvæmlega það sama. 459 00:23:08,040 --> 00:23:09,660 Það myndi prenta út það sama. 460 00:23:09,660 --> 00:23:12,680 >> Það er önnur leið til að gera það, og þetta er annar kostur 461 00:23:12,680 --> 00:23:14,710 PHP vinna með strengi. 462 00:23:14,710 --> 00:23:17,130 Við getum gert band samtenging. 463 00:23:17,130 --> 00:23:19,660 Við gætum gert þetta í C, of, með fall sem kallast strcat, 464 00:23:19,660 --> 00:23:21,180 en aftur, við þurftum að kalla sérstakar aðgerðir. 465 00:23:21,180 --> 00:23:22,640 Það var allt þetta sóðaskapur að gera. 466 00:23:22,640 --> 00:23:24,590 Við þurftum að pund-fela string.h. 467 00:23:24,590 --> 00:23:25,780 Það var framleiðslu, ekki satt? 468 00:23:25,780 --> 00:23:30,070 En nú get ég bara nota þetta punktur rekstraraðila til concatenate strengi saman. 469 00:23:30,070 --> 00:23:34,910 >> Þannig að ég ætla concatenating "A heild" og þá hvað gildi $ úrvals er, 470 00:23:34,910 --> 00:23:38,860 og þá annað band, "pizza kostar $" 471 00:23:38,860 --> 00:23:42,340 og þá concatenating hvað gildi $ verð er 472 00:23:42,340 --> 00:23:45,670 og þá á mjög lok ég klísturvamandi á tímabili sviga n. 473 00:23:45,670 --> 00:23:47,926 Og svo þetta myndi einnig prenta út "A heild" - aftur, 474 00:23:47,926 --> 00:23:50,550 ef við erum að tala um fyrsta þáttur þess Pizzur array-- 475 00:23:50,550 --> 00:23:54,710 "A heild ostur pizza kostar $ 8,99." 476 00:23:54,710 --> 00:24:01,260 Tímabil, sviga n, aftur, með the $ úrvals og $ verð Stað 477 00:24:01,260 --> 00:24:06,580 fyrir það sem við höfðum fram í framhandleggur okkar lykkja sem lykill gildi par kortlagning. 478 00:24:06,580 --> 00:24:08,050 >> PHP ræður aðgerðir. 479 00:24:08,050 --> 00:24:11,250 Aðgerðir voru konar óaðskiljanlegur C, eins og við sáum. 480 00:24:11,250 --> 00:24:14,870 Eins breytur, þurfum við ekki að tilgreina aftur gerð á hlutverki, 481 00:24:14,870 --> 00:24:16,350 vegna þess að það skiptir ekki máli. 482 00:24:16,350 --> 00:24:18,660 Og við tilgreinir ekki gagnatög af hvaða breytur, 483 00:24:18,660 --> 00:24:21,410 vegna þess að þeir gera ekki raunverulega Sama, eins og við höfum séð í PHP. 484 00:24:21,410 --> 00:24:24,510 Sérhver aðgerð er kynnt með virka leitarorð. 485 00:24:24,510 --> 00:24:27,920 Það er hvernig við benda á PHP sem hvað við erum að tala um er fall. 486 00:24:27,920 --> 00:24:29,720 >> Og við þurfum ekki að takast á við helstu yfirleitt, 487 00:24:29,720 --> 00:24:33,690 vegna þess að túlkur, PHP túlkur, vinnur frá toppi til botn, 488 00:24:33,690 --> 00:24:34,190 óháð. 489 00:24:34,190 --> 00:24:35,640 Ef það sér að þú getur gert fall kalla, verður það 490 00:24:35,640 --> 00:24:37,850 fara að finna virka símtalinu, jafnvel ef það kemur síðar. 491 00:24:37,850 --> 00:24:40,360 En það er að fara að lesa frá toppi til botn, þannig að við þurfum ekki að tilgreina, 492 00:24:40,360 --> 00:24:41,500 hér er þar sem þú byrjar. 493 00:24:41,500 --> 00:24:46,700 Þú byrjar á 1. línu þinn PHP og vinna niður þaðan. 494 00:24:46,700 --> 00:24:49,690 >> Svo hér er hvernig við viljum búa fall sem heitir hard_square. 495 00:24:49,690 --> 00:24:54,100 Það tekur greinilega einn breytu, sem ég er að hringja $ x. 496 00:24:54,100 --> 00:24:58,424 Þessi aðgerð er flókið bara til að sýna ýmislegt. 497 00:24:58,424 --> 00:24:59,590 Við höfum enn aftur gildi. 498 00:24:59,590 --> 00:25:00,870 Ég er að nota fyrir lykkju hér. 499 00:25:00,870 --> 00:25:04,970 En það er í rauninni bara, hvað þetta nemur er bara $ x sinnum $ x. 500 00:25:04,970 --> 00:25:10,520 Það sem ég er í raun að gera er bara að bæta x til 0 x sinnum eða $ x í núll $ x sinnum. 501 00:25:10,520 --> 00:25:15,850 En það er í raun nákvæmlega sama og margfalda $ x sinnum $ x. 502 00:25:15,850 --> 00:25:18,700 Ég get samt skila gildi, í þessu tilfelli $ vegna 503 00:25:18,700 --> 00:25:22,060 og ég hef gert fall í PHP. 504 00:25:22,060 --> 00:25:24,160 >> Hér er hvernig þú getur notað það í samhengi. 505 00:25:24,160 --> 00:25:26,020 Svo kannski er ég inni af einhverjum PHP skrá. 506 00:25:26,020 --> 00:25:29,240 Tilkynningar í bláum þar sem Ég hef notað PHP delimiters mínum, 507 00:25:29,240 --> 00:25:31,010 oddklofi spurningarmerki PHP. 508 00:25:31,010 --> 00:25:35,180 Á milli þeirra eru allt PHP sem ég vil skrifa. 509 00:25:35,180 --> 00:25:37,840 Þannig að ég ætla greinilega að fara að get-- Ég ætla að hvetja notandann 510 00:25:37,840 --> 00:25:41,550 að gefa mér númerið verslun sem breyta, geyma í því breyta $ x, 511 00:25:41,550 --> 00:25:43,320 hvað sem þeir gáfu mér. 512 00:25:43,320 --> 00:25:48,590 Þá ætla ég að enduróma hard_square þess virði, 513 00:25:48,590 --> 00:25:50,370 og virðist fara að tittur á nýja línu 514 00:25:50,370 --> 00:25:53,590 eins og heilbrigður, og þá seinna á ég ætla skilgreina hlutverk hard_square svo 515 00:25:53,590 --> 00:25:55,550 að þegar ég gera kalla til hard_square, 516 00:25:55,550 --> 00:25:58,160 það veit hvað ég er að tala um. 517 00:25:58,160 --> 00:26:00,705 >> Nú gæti ég líka gert eitthvað eins og þetta. 518 00:26:00,705 --> 00:26:02,050 Þetta er aðeins öðruvísi. 519 00:26:02,050 --> 00:26:04,190 Það er nánast nákvæmlega sama og það sem við sáum áður, 520 00:26:04,190 --> 00:26:08,400 nema í stað þess að segja bara $ x þar sem breytu til hard_square, 521 00:26:08,400 --> 00:26:11,730 Ég er að segja $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Svo er þetta dæmi um varnar forritun, 523 00:26:14,330 --> 00:26:17,070 vörð forrit gegn skaðlegum notendum. 524 00:26:17,070 --> 00:26:20,020 >> Þetta er ein leið til að gera sumir villa eftirlit með því að við gerðum í raun ekki 525 00:26:20,020 --> 00:26:24,670 hafa sem valkost í C. Við gætum aldrei tilgreina sjálfgefið gildi eitthvað. 526 00:26:24,670 --> 00:26:27,010 Við höfðum alltaf að athuga hvort, til dæmis, 527 00:26:27,010 --> 00:26:30,820 ef við hringdi til GetString, það var mest viðeigandi ef strax eftir að við 528 00:26:30,820 --> 00:26:33,300 athugað að, merkt við hvort band 529 00:26:33,300 --> 00:26:35,504 sem notandinn gaf okkur er ekki jafn null, 530 00:26:35,504 --> 00:26:37,920 vegna þess að við viljum ekki að byrja vinna með núll streng. 531 00:26:37,920 --> 00:26:39,670 >> Hér, þetta er leið til að verja gegn því. 532 00:26:39,670 --> 00:26:43,480 Ef notandi hefur ekki veitt okkur eitthvað einhvern veginn, hvað við erum að fara að gera? 533 00:26:43,480 --> 00:26:46,080 Jæja, við verðum bara að segja hvað þeir vildu ekki veita okkur, 534 00:26:46,080 --> 00:26:47,705 við erum bara að fara að stinga í 10 í staðinn. 535 00:26:47,705 --> 00:26:52,030 Þannig að ef þeir vildu ekki gefa okkur gildi, bara nota 10 sjálfgefið. Og svo hér, 536 00:26:52,030 --> 00:26:53,940 eftir því að ég er að gera a kalla til hard_square, 537 00:26:53,940 --> 00:26:55,980 en það er engin hvetja til notenda, ekki satt? 538 00:26:55,980 --> 00:26:57,540 Ég ætla bara að gera tóma hringja. 539 00:26:57,540 --> 00:27:00,860 >> En hlutverk mitt hard_square er von á breytu. 540 00:27:00,860 --> 00:27:02,222 Hvað er þetta að fara að prenta út? 541 00:27:02,222 --> 00:27:03,680 Það er að fara að prenta út 100, ekki satt? 542 00:27:03,680 --> 00:27:05,720 Vegna þess að notandi hafi ekki gefa mér neitt. 543 00:27:05,720 --> 00:27:08,970 Og svo ég ætla bara að fara að gera ráð fyrir að 10-- 10 er sjálfgefin. 544 00:27:08,970 --> 00:27:13,760 Og svo þetta myndi prenta út 100 í sinni línu. 545 00:27:13,760 --> 00:27:16,390 >> PHP skrár þurfa ekki að vera bara einn skrá. 546 00:27:16,390 --> 00:27:19,480 Þú getur sameinað margar skrár saman, bara eins og þú getur í C. leið 547 00:27:19,480 --> 00:27:24,330 við gerðum það í C var yfirleitt að gera a #include að fá header skrár dreginn í. 548 00:27:24,330 --> 00:27:26,180 Við gerum það ekki í PHP. 549 00:27:26,180 --> 00:27:29,110 Við gerum eitthvað sem heitir require_once. 550 00:27:29,110 --> 00:27:33,360 Og þá er það þetta allt hlutur, hvað er þetta __dir__? 551 00:27:33,360 --> 00:27:36,510 Það er bara sérstakt breyta, eða sérstökum stöðug, 552 00:27:36,510 --> 00:27:39,030 í raun, sem skilgreinir hvað núverandi möppu er. 553 00:27:39,030 --> 00:27:41,320 Og svo það er að fara að líta í núverandi möppuna 554 00:27:41,320 --> 00:27:44,900 að skrá sem heitir cs50.php í þessu dæmi hér, 555 00:27:44,900 --> 00:27:50,490 og það er að fara að standa að skrá efst á PHP program, 556 00:27:50,490 --> 00:27:56,980 að því gefnu að þú setur þurfa einu sinni línu efst á PHP skrá. 557 00:27:56,980 --> 00:28:01,474 >> Svo PHP er aðallega notað, en ekki eingöngu notað, 558 00:28:01,474 --> 00:28:03,140 sem tungumál fyrir vefur-undirstaða forritun. 559 00:28:03,140 --> 00:28:05,270 Það er í raun hvernig það kom til að vera. 560 00:28:05,270 --> 00:28:06,980 En það er fullt tungumál, eins og við höfum séð. 561 00:28:06,980 --> 00:28:10,105 Við höfum séð nokkuð mikið allt það að það er hægt að gera sem eru svipaðar C, 562 00:28:10,105 --> 00:28:13,290 og það geta gera a Heck af mikið meira en það. 563 00:28:13,290 --> 00:28:16,950 >> En vegna þess að það er fullt tungumál og við getur gert stjórn lína forritun í það. 564 00:28:16,950 --> 00:28:18,630 Við getum keyrt skipanalínu forrit. 565 00:28:18,630 --> 00:28:22,580 Allt sem þarf til að keyra skipun lína forrit sem er skrifað í PHP 566 00:28:22,580 --> 00:28:24,260 er að þú ert með PHP túlkur. 567 00:28:24,260 --> 00:28:27,460 Svo það er tegund af hliðstætt hafa þýðanda á vélinni þinni 568 00:28:27,460 --> 00:28:31,100 ef þú vilt að safna saman C númerið þitt til að snúa það inn í executable skrá. 569 00:28:31,100 --> 00:28:33,810 Þú þarft að hafa a PHP túlkur sem er á vélinni þinni 570 00:28:33,810 --> 00:28:37,330 þannig að þú getur túlkað PHP skjöl. 571 00:28:37,330 --> 00:28:40,370 >> Miðað við að þú gerir, og yfirleitt þetta túlkur heitir PHP, 572 00:28:40,370 --> 00:28:44,300 og það er yfirleitt búnt með flest niður eða innsetningar á PHP 573 00:28:44,300 --> 00:28:47,430 sem þú getur fengið á netinu, og vissulega nafn PHP túlkur 574 00:28:47,430 --> 00:28:49,550 við höfum í CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Allt sem þú gera er að slá PHP skrá. 576 00:28:51,819 --> 00:28:53,610 Og hvaða forrit þinnar að fara að gera það er 577 00:28:53,610 --> 00:28:55,360 að fara að keyra í gegnum túlkurinn, það er 578 00:28:55,360 --> 00:28:58,040 að fara að hunsa allt sem er ekki á milli viðkomandi mark-- 579 00:28:58,040 --> 00:29:03,160 eða, oddklofi spurningarmerki PHP, PHP delimiters, og prenta það út, 580 00:29:03,160 --> 00:29:07,660 og það mun túlka og framkvæma númer innan PHP afmarkararnir þínum. 581 00:29:07,660 --> 00:29:12,850 >> Svo skulum skjóta yfir CS50 IDE og hafa a líta á nokkrar af PHP skrá, 582 00:29:12,850 --> 00:29:19,850 keyra nokkra PHP skrá í stjórn lína tengi af CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Svo hér erum við í CS50 IDE, og ég hef leyft mér 584 00:29:22,100 --> 00:29:25,800 þess að opna skrá sem heitir hello1.php. 585 00:29:25,800 --> 00:29:29,920 Og virðist, innihald þetta skrá eru bara PHP delimiters þar, 586 00:29:29,920 --> 00:29:32,220 og þar á milli, echo ("Halló, heimur"). 587 00:29:32,220 --> 00:29:34,710 Þetta er frekar einfalt PHP forrit. 588 00:29:34,710 --> 00:29:37,670 Ég ætla bara að fara að fletta niður til stöðvarinnar gluggann minn hér, 589 00:29:37,670 --> 00:29:44,320 og ég ætla að slá php hello1.php, högg koma inn í. 590 00:29:44,320 --> 00:29:44,950 Halló heimur. 591 00:29:44,950 --> 00:29:48,110 Það er líklega það sem við vorum von á því að gera, ekki satt? 592 00:29:48,110 --> 00:29:51,140 >> Við skulum fara upp og taka annars líta á dagskrá. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Laglegur mikill the sami hlutur, ekki mikið að gerast hér. 595 00:29:55,090 --> 00:29:57,190 Í þetta sinn, þó, ég er að fara að hvetja notandinn að gefa mér upp nöfn þeirra. 596 00:29:57,190 --> 00:29:59,290 Ég er að nota þessi readline virka aftur. 597 00:29:59,290 --> 00:30:01,340 $ name = readline. 598 00:30:01,340 --> 00:30:03,070 Það er að hvetja, "Hvað heitir þú?" 599 00:30:03,070 --> 00:30:04,880 >> Apparently ég prentun það á eigin línu. 600 00:30:04,880 --> 00:30:07,220 Og þá, svo línan neðan sem verður hvetja 601 00:30:07,220 --> 00:30:08,750 þar sem notandinn getur slegið inn nafn. 602 00:30:08,750 --> 00:30:12,030 Og þá er ég að nota smá breyta interpellation hér á línu 3 603 00:30:12,030 --> 00:30:14,780 að prenta út "halló" og hvað notandinn slær. 604 00:30:14,780 --> 00:30:22,040 Svo er þetta hliðstætt segja, Hello, komma,% s ef við værum að nota printf í C. 605 00:30:22,040 --> 00:30:24,910 >> Svo skulum við fara og túlka þetta forrit. 606 00:30:24,910 --> 00:30:27,400 Svo aftur, ég skruna niður til stöðvarinnar gluggann minn. 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 Hvað heitir þú? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Halló, Doug. 612 00:30:36,526 --> 00:30:39,440 Ég hef líka annað skrá sem heitir hello3.php. 613 00:30:39,440 --> 00:30:42,850 Ég ætla að hreinsa minn skjár með Control L, 614 00:30:42,850 --> 00:30:46,210 og ég ætla að framkvæma það. 615 00:30:46,210 --> 00:30:47,640 Hvað heitir þú? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Halló, Doug. 618 00:30:49,780 --> 00:30:56,540 Svo er hegðun eins og hello2.php, en hvers vegna er það hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Jæja, hér er munurinn. 620 00:30:58,040 --> 00:31:00,620 Í þessu tilviki, tilkynning að á línu 1 hér, 621 00:31:00,620 --> 00:31:04,270 Ég hef eitthvað sem er ekki á milli PHP afmarkararnir. 622 00:31:04,270 --> 00:31:07,760 Ég ætla bara að prenta out-- eða ég bara slegið, "Hvað heitir þú?" 623 00:31:07,760 --> 00:31:12,060 Þegar PHP túlkur sér þetta það hefur ekki hugmynd um hvernig á að túlka það eins og PHP, 624 00:31:12,060 --> 00:31:15,060 og svo í stað þess að láta hjá líða, það er bara að fara að spýta það út. 625 00:31:15,060 --> 00:31:19,010 >> Svo eftir á línu 3 hafa köllun mína til að readline, það er engin hvetja lengur. 626 00:31:19,010 --> 00:31:21,750 Ég ætla bara að í raun að fara to-- þegar PHP túlkur sér þetta 627 00:31:21,750 --> 00:31:23,400 það er að fara að prenta út "Hvað heitir þú?" 628 00:31:23,400 --> 00:31:25,941 Þá sér það, ó, OK, here's-- allt annað er að fara að vera 629 00:31:25,941 --> 00:31:29,970 túlka sem PHP, svo það er hvers vegna þetta virkar. 630 00:31:29,970 --> 00:31:34,990 Ég þarf ekki að endilega hvetja notandi to-- inni readline, 631 00:31:34,990 --> 00:31:37,490 Ég get bara haft það fyrir utan af PHP afmarkararnir 632 00:31:37,490 --> 00:31:41,490 og leyfa túlkur bara prenta það út fyrir mér. 633 00:31:41,490 --> 00:31:45,364 >> Svo þú ert ekki í raun aðeins hafa að hafa eitt sett af PHP afmarkararnir 634 00:31:45,364 --> 00:31:46,030 í forritinu. 635 00:31:46,030 --> 00:31:49,887 Þú getur raunverulega hafa nokkrir af þeim, opna og loka þeim eftir þörfum. 636 00:31:49,887 --> 00:31:51,720 Svo skulum taka a líta á nokkra forritum 637 00:31:51,720 --> 00:31:55,070 í CS50 IDE þar sem við skýra þessa hugmynd af having 638 00:31:55,070 --> 00:31:58,376 mörg sett af afmarkast PHP. 639 00:31:58,376 --> 00:32:02,010 >> OK, þannig að ég hef opnað skrá hér kallað add1.php. 640 00:32:02,010 --> 00:32:03,390 Og taka eftir hvað er að gerast hér. 641 00:32:03,390 --> 00:32:08,077 Rétt eins og áður, ég er með einn PHP setja af afmarkararnir. 642 00:32:08,077 --> 00:32:10,660 Ég ætla að prenta út skilaboð, "Gef mér að tala." 643 00:32:10,660 --> 00:32:13,394 Þá er ég að fara að lesa línu og geyma það í breytu $ num1. 644 00:32:13,394 --> 00:32:14,810 Þá er ég að fara að prenta út aftur. 645 00:32:14,810 --> 00:32:16,310 Gefðu mér annað númer. 646 00:32:16,310 --> 00:32:20,450 Lesa línu frá notanda, verslun hvað þeir slegið á í $ num2. 647 00:32:20,450 --> 00:32:23,980 Bæta þeim saman og geyma það leitt til breytu sem heitir $ summa, 648 00:32:23,980 --> 00:32:26,180 og síðan prentað út, "The Summa þessara tveggja talna 649 00:32:26,180 --> 00:32:29,254 er, "og þá interpellate það breytu $ summa. 650 00:32:29,254 --> 00:32:31,170 Svo skulum hlaupa bara þetta gegnum túlk 651 00:32:31,170 --> 00:32:33,720 til að staðfesta að þetta er það sem við gerum ráð fyrir. 652 00:32:33,720 --> 00:32:37,540 PHP add1.php. 653 00:32:37,540 --> 00:32:38,665 Vinsamlegast gefið mér nokkur, 3. 654 00:32:38,665 --> 00:32:40,410 Vinsamlegast gefið mér annað númer, 4. 655 00:32:40,410 --> 00:32:43,370 Summa þessara tveggja talna er 7. 656 00:32:43,370 --> 00:32:45,030 Það er 3 plús 4. 657 00:32:45,030 --> 00:32:45,530 OK? 658 00:32:45,530 --> 00:32:47,770 Svo ekkert hræðilega ímynda það. 659 00:32:47,770 --> 00:32:51,080 >> Og nú skulum opna add2.php. 660 00:32:51,080 --> 00:32:54,460 Hér hef ég fengið nokkrar PHP afmarkast setur það, ekki satt? 661 00:32:54,460 --> 00:32:59,107 Línur 1, 3-- línur 1 og 3 hafa engin PHP delimiters. 662 00:32:59,107 --> 00:33:00,940 Svo þegar túlkur sér þá, það er bara 663 00:33:00,940 --> 00:33:03,220 að fara að spýta út nákvæmlega það sem ég hef slegið það. 664 00:33:03,220 --> 00:33:05,011 Svo er það þar sem ég er gera allt mitt vekur. 665 00:33:05,011 --> 00:33:11,220 Á línum 2 og 4, sjáum við mjög þekki $? PHP konar afmarkararnir, 666 00:33:11,220 --> 00:33:15,210 svo þessir tvær línur eru að fara að framkvæma og PHP. 667 00:33:15,210 --> 00:33:18,270 Og þá á línu 5, hef ég þetta undarlegt hlutur hérna, ekki satt? 668 00:33:18,270 --> 00:33:20,480 Þetta oddklofi spurningarmerki merkið. 669 00:33:20,480 --> 00:33:22,660 Ég jafnvel stækka svolítið lengra. 670 00:33:22,660 --> 00:33:29,270 Þú getur séð þetta er það sem ég er að tala um þarna, þetta $? =. 671 00:33:29,270 --> 00:33:33,420 >> Það kemur í ljós að það er svo algengt að ástæðan fyrir því að við opna upp sett af PHP 672 00:33:33,420 --> 00:33:36,055 delimiters er að prenta út gildi. 673 00:33:36,055 --> 00:33:37,430 Og það er allt sem við erum að fara að gera. 674 00:33:37,430 --> 00:33:39,220 En það er jafnvel styttingin fyrir það. 675 00:33:39,220 --> 00:33:46,490 $? = Er PHP styttingin fyrir að segja eitthvað eins og $? php echo summan 676 00:33:46,490 --> 00:33:48,350 af num1 og num2. 677 00:33:48,350 --> 00:33:51,900 Svo er þetta bara annað styttingin fyrir það. 678 00:33:51,900 --> 00:33:55,550 >> Þannig að ef ég keyra þetta forrit, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Ég stækka niður smá. 680 00:33:57,530 --> 00:33:59,000 Vinsamlegast gefið mér nokkur, 4. 681 00:33:59,000 --> 00:34:00,350 Vinsamlegast gefið mér annað númer. 682 00:34:00,350 --> 00:34:04,650 Og þar sem ég er ekki alveg sama um gagnatög í PHP, get ég sagt 4.8. 683 00:34:04,650 --> 00:34:07,160 Summa þessara tveggja talna er 8,8. 684 00:34:07,160 --> 00:34:10,179 Sem virka hagar ansi mikið nákvæmlega það sama og við myndum búast við, 685 00:34:10,179 --> 00:34:10,989 einnig. 686 00:34:10,989 --> 00:34:13,114 Og ég hef eitt opnað upp hér kallað dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Reyna þetta aftur. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Ég hef eitt hér kallað dice1.php, sem einnig sjá, 691 00:34:33,280 --> 00:34:37,440 hefur þessi oddklofi spurningu merkja merkið tákn í það, 692 00:34:37,440 --> 00:34:40,659 en taka eftir því að í þessu tilfelli er ég hringja í fallinu rand, sem eins og þú 693 00:34:40,659 --> 00:34:42,790 gæti búist býr handahófi númer. 694 00:34:42,790 --> 00:34:46,889 "Þú vals a," og það er að fara að reikna sumir af handahófi númer, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Þannig að ætla að gefa mér númerið á bilinu 1 til að 6. 697 00:34:49,989 --> 00:34:53,040 >> Mundu að unga fólkið 6 myndi gefa mér a tala á bilinu 0 til 5, 698 00:34:53,040 --> 00:34:56,630 en ef ég er að líkja teningar rúlla, sem er það sem ég er að gera hér, 699 00:34:56,630 --> 00:35:00,040 Ég vil ekki þetta teningar til að fara frá 0 5, ég vil teningar sem fara frá 1 til 6. 700 00:35:00,040 --> 00:35:02,800 Og svo er þetta leið til að fá mig á bilinu 1 til að 6. 701 00:35:02,800 --> 00:35:04,720 Ég er að gera þetta tvisvar. 702 00:35:04,720 --> 00:35:08,630 Svo virðist ég veltingur tveir teningar í þessari áætlun. 703 00:35:08,630 --> 00:35:15,210 >> Svo ég ætla að hreinsa skjáinn minn, og ég ætla að gera PHP dice1.php. 704 00:35:15,210 --> 00:35:16,640 Þú velti 4 og 2. 705 00:35:16,640 --> 00:35:19,156 Og ef ég hlaupa the program aftur, þú velti 5 og 5. 706 00:35:19,156 --> 00:35:21,780 Svo í hvert skipti sem ég hlaupa the program, Ég fæ mismunandi tölur, 707 00:35:21,780 --> 00:35:24,280 því í hvert skipti sem ég geri svo, að það er að byrja á. 708 00:35:24,280 --> 00:35:27,250 Það er að fara að búa til nýja Sudoku setja af handahófi tölur fyrir mig. 709 00:35:27,250 --> 00:35:29,790 >> Þannig að ef við erum að nota til keyrandi frá C, 710 00:35:29,790 --> 00:35:32,520 við erum að nota til að skrifa ./ á nafn af a program, ekki satt? 711 00:35:32,520 --> 00:35:35,090 Það er hvernig við höfum gert allt forrit okkar í C ​​svo langt. 712 00:35:35,090 --> 00:35:37,555 Við getum gert þetta í PHP sem með því að bæta eitthvað sem kallast 713 00:35:37,555 --> 00:35:40,026 a klabbið til the toppur af PHP skrá okkar. 714 00:35:40,026 --> 00:35:41,400 Ég veit að það er góður af a kjánalegt orð. 715 00:35:41,400 --> 00:35:44,540 Það er stutt fyrir kjötkássa Bang. 716 00:35:44,540 --> 00:35:46,300 Það er fyrsta tvo stafi þar. 717 00:35:46,300 --> 00:35:50,030 Mundu að við köllum upphrópunarmerki oft Bang í tölvunarfræði. 718 00:35:50,030 --> 00:35:51,690 Einnig mætti ​​vera fyrir beittum Bang. 719 00:35:51,690 --> 00:35:53,273 Það er a par leiðir að túlka það. 720 00:35:53,273 --> 00:35:57,320 En það er í rauninni sérstakt konar af stjórn sem PHP túlkur 721 00:35:57,320 --> 00:36:00,160 skilur eins, ó, ég vil þú þarft að framkvæma þessa áætlun, 722 00:36:00,160 --> 00:36:05,250 sem er greinilega / notandi / bin / PHP, sem er í raun þar sem PHP túlkur 723 00:36:05,250 --> 00:36:08,590 sérstaklega býr á kerfinu okkar. 724 00:36:08,590 --> 00:36:12,530 Svo it's-- hvað gerist hér er túlkurinn skilji, ó, 725 00:36:12,530 --> 00:36:17,270 Ég virðist eiga að nota í þessari áætlun til að keyra þessa skrá. 726 00:36:17,270 --> 00:36:20,010 Og svo það gerir þér að sleppa yfir skref 727 00:36:20,010 --> 00:36:22,979 þess að þurfa að segja PHP something.php. 728 00:36:22,979 --> 00:36:25,020 Það er eitt annað veiða hér, sem er að ef við 729 00:36:25,020 --> 00:36:27,320 vilt áætlanir okkar til sem skyldi, við 730 00:36:27,320 --> 00:36:30,220 þarf að gera eitthvað sem kallast skrá leyfi breyting. 731 00:36:30,220 --> 00:36:33,380 Og við munum go-- og við tala svolítið aðeins meira um File permission breytingar 732 00:36:33,380 --> 00:36:37,550 í vídeó okkar á MVC, en nægja að segja að þetta er það sem þú þarft að gera 733 00:36:37,550 --> 00:36:42,760 í því skyni að gera þinn .php skrá executable. 734 00:36:42,760 --> 00:36:49,330 Svo skulum taka a líta á þetta sem endanleg dæmi okkar yfir í CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Svo hér í IDE ég hafa tvær skrár í þetta PHP skrá sem virðast ekki vera 736 00:36:53,910 --> 00:36:55,310 kallað .php. 737 00:36:55,310 --> 00:36:58,170 Ég hef fall kallast add-- Ég er með skrá sem heitir add3 738 00:36:58,170 --> 00:37:00,650 og skrá sem heitir dice2. 739 00:37:00,650 --> 00:37:03,680 Svo skulum taka a fljótur útlit og opna add3. 740 00:37:03,680 --> 00:37:08,300 Og eins og þú geta sjá, í upphafi af skrá minn ég hef þetta klabbið, ekki satt? 741 00:37:08,300 --> 00:37:11,420 Þetta kjötkássa merki upphrópunarmerki. 742 00:37:11,420 --> 00:37:15,115 Nú, þú munt einnig kannski taka eftir því að fyrir sumir ástæða, 743 00:37:15,115 --> 00:37:16,990 Ég hef ekki neina setningafræði auðkenning lengur, 744 00:37:16,990 --> 00:37:20,198 og þetta er það sem ég vék að áðan, sem var að ef ég nefna ekki skrá minn 745 00:37:20,198 --> 00:37:23,040 .php, ég hef ekki gagn af setningafræði auðkenning lengur. 746 00:37:23,040 --> 00:37:26,220 Þessi skrá er bara kallað add3. 747 00:37:26,220 --> 00:37:30,960 Svo að ég get keyrt það síðar með ./ add3 og ekki ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Svo reason-- það er samt fínn, það er enn í gildi PHP, 749 00:37:33,680 --> 00:37:37,000 en það er ekki setningafræði hápunktur, því þessi skrá er ekki kallað something.php. 750 00:37:37,000 --> 00:37:41,580 Það er eini raunverulegur munur hér, auk klabbið. 751 00:37:41,580 --> 00:37:45,170 Svo skulum sjá hvað gerist þegar Ég reyni og keyra þetta forrit. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, alveg eins og ég vildi með C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Add3 aðgangi hafnað. 754 00:37:53,190 --> 00:37:55,390 Þetta er það sem þú ert að fara til að sjá hvort þú gleymir 755 00:37:55,390 --> 00:37:59,280 að nota chmod skipunina til að breyta aðgangsstýringar á skrá. 756 00:37:59,280 --> 00:38:03,845 >> Eins og það kemur í ljós, venjulegur PHP skrá er ekki bara að framkvæma. 757 00:38:03,845 --> 00:38:06,970 Þeir geta að túlka, en við erum gera eitthvað svolítið öðruvísi hér. 758 00:38:06,970 --> 00:38:07,761 Við erum keyrður. 759 00:38:07,761 --> 00:38:12,970 Og svo ég þarf að bæta leyfi framkvæmd, chmod a + x til add3. 760 00:38:12,970 --> 00:38:15,680 Þá get ég sagt ./ add3. 761 00:38:15,680 --> 00:38:16,860 Vinsamlegast gefið mér númer. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Summa þessara tveggja talna er 11. 764 00:38:20,490 --> 00:38:26,530 >> Á sama hátt, ég hef nú þegar chmoded dice2, svo ég get bara slegið ./ dice2, 765 00:38:26,530 --> 00:38:31,260 þú velt a 1 og 1, þú velti 5 og 4, og svo framvegis. 766 00:38:31,260 --> 00:38:33,680 >> Svo er það ansi mikið að Hugmyndin um PHP setningafræði, ekki satt? 767 00:38:33,680 --> 00:38:35,221 There 'a einhver fjöldi til að komast í gegnum, ég veit. 768 00:38:35,221 --> 00:38:39,160 En vonandi að þú hefur séð nú að PHP er í raun ekki að öðruvísi C 769 00:38:39,160 --> 00:38:43,670 og raunverulega gefur okkur möguleika að taka það upp hak eða tvö. 770 00:38:43,670 --> 00:38:48,230 Við í raun ekki að hafa áhyggjur of mikið about-- við í raun ekki 771 00:38:48,230 --> 00:38:51,605 að hafa áhyggjur of mikill óður lágmark-láréttur flötur upplýsingar sem við 772 00:38:51,605 --> 00:38:52,980 þurfti að hafa áhyggjur af með C, ekki satt? 773 00:38:52,980 --> 00:38:56,170 Við getum áherslu á hærri stigi efni sem PHP 774 00:38:56,170 --> 00:39:01,090 gerir okkur kleift að gera og að taka fyrir sjálfsagðan hlut að það mun virka fyrir okkur. 775 00:39:01,090 --> 00:39:04,350 Svo það gefur okkur möguleika núna, breyting frá C til PHP, 776 00:39:04,350 --> 00:39:08,280 að gera áætlanir sem eru mikið meira flókið og kannski mikið öflugri. 777 00:39:08,280 --> 00:39:13,070 >> Svo ég vona að þú hafir gaman að vinna PHP, og ég er Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Þetta er CS50. 779 00:39:15,050 --> 00:39:17,637