1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Dus het ons gedoen 'n baie werk in C, 3 00:00:07,370 --> 00:00:09,536 en C is 'n baie cool taal, want dit gee jou 4 00:00:09,536 --> 00:00:12,840 die vermoë om werklik te duik lae vlak in jou programme. 5 00:00:12,840 --> 00:00:16,810 Ons kry om dinge te doen soos regtig minuut manipuleer 6 00:00:16,810 --> 00:00:18,800 individuele grepe van die geheue. 7 00:00:18,800 --> 00:00:21,420 Onthou dat baie wenke ons toelaat dat buigsaamheid. 8 00:00:21,420 --> 00:00:25,260 >> Maar moet ons altyd het wat fyn graan vlak van detail 9 00:00:25,260 --> 00:00:26,820 in ons programme? 10 00:00:26,820 --> 00:00:28,210 Waarskynlik nie, reg? 11 00:00:28,210 --> 00:00:30,376 En as ons gaan hê 'n trade-off tussen ' 12 00:00:30,376 --> 00:00:32,911 kan regtig nie, regtig minuut dinge en baie, baie 13 00:00:32,911 --> 00:00:35,910 groot dinge wat ons nie hoef te dink oor, het ons nie te implementeer 14 00:00:35,910 --> 00:00:40,290 hierdie werklik groot idees as hulle reeds gebou in vir ons, 15 00:00:40,290 --> 00:00:43,980 algemeen vir die bou van 'n groot programme of groot projekte, 16 00:00:43,980 --> 00:00:49,130 ons is waarskynlik gaan om te dwaal op die kant van meer tale dinge gebou in 17 00:00:49,130 --> 00:00:51,300 vir ons, in plaas van om die lae-vlak dinge. 18 00:00:51,300 --> 00:00:53,970 En dit is waar PHP werklik kom in. 19 00:00:53,970 --> 00:00:58,200 >> Nou, een van die redes dat ons leer PHP in CS50 20 00:00:58,200 --> 00:01:01,020 is dat dit swaar geïnspireer deur C. En in werklikheid, in my mening, 21 00:01:01,020 --> 00:01:05,140 daar eintlik twee stamvader tale wat 22 00:01:05,140 --> 00:01:08,200 is baie algemeen deesdae. 23 00:01:08,200 --> 00:01:10,110 C en LISP. 24 00:01:10,110 --> 00:01:13,280 En hulle is stamvader tale want elke ander moderne programmeertaal 25 00:01:13,280 --> 00:01:17,380 taal wat ontwikkel Sedertdien is geïnspireer 26 00:01:17,380 --> 00:01:20,330 deur een of die ander sintakties. 27 00:01:20,330 --> 00:01:26,160 PHP is baie soortgelyk sintakties C, terwyl tale soos Skema, 28 00:01:26,160 --> 00:01:27,900 byvoorbeeld, wat jy dalk gehoor het van, 29 00:01:27,900 --> 00:01:32,070 is swaar geïnspireer deur 'n taal genoem LISP, wat is 'n ouer taal. 30 00:01:32,070 --> 00:01:34,220 >> So die rede waarom ons leer PHP in CS50 is dat, 31 00:01:34,220 --> 00:01:37,730 deur te weet C as fundamenteel as jy doen op hierdie punt, 32 00:01:37,730 --> 00:01:41,280 optel PHP, waarin jy die gee vermoë om veel hoër vlak dinge te doen 33 00:01:41,280 --> 00:01:44,710 as C nie, is nie dat baie van 'n hindernis, 34 00:01:44,710 --> 00:01:48,230 want jy het reeds die basiese idee van die sintaksis. 35 00:01:48,230 --> 00:01:50,590 C is om vir bykans 45 jaar op hierdie punt. 36 00:01:50,590 --> 00:01:52,780 PHP is om vir ongeveer 20 jaar. 37 00:01:52,780 --> 00:01:57,080 En in dié 25 jaar tussen, programmeerders 38 00:01:57,080 --> 00:02:01,540 bepaal dat hulle sou veel eerder 'n hoër vlak vermoëns, 39 00:02:01,540 --> 00:02:04,970 en die foute en stryd van die 20 jaar tussen 40 00:02:04,970 --> 00:02:08,210 gelei tot PHP en ander moderne tale. 41 00:02:08,210 --> 00:02:11,039 >> PHP is 'n groot keuse van taal vir sagteware 42 00:02:11,039 --> 00:02:14,042 dat allow-- vir sagteware that-- waar jy 43 00:02:14,042 --> 00:02:16,250 nodig het om dinge te doen wat in C is eintlik ingewikkeld. 44 00:02:16,250 --> 00:02:18,480 So byvoorbeeld, werk met stringe in C 45 00:02:18,480 --> 00:02:21,709 is baie ingewikkeld, want soos ons dit ken, stringe in C 46 00:02:21,709 --> 00:02:23,250 is regtig net skikkings van karakters. 47 00:02:23,250 --> 00:02:25,230 Dit is nie 'n ingeboude datatipe. 48 00:02:25,230 --> 00:02:28,220 Of dalk meer fundamenteel, iets wat ons het nie eens dek in C, 49 00:02:28,220 --> 00:02:30,360 Wat gebeur as jy hoef te doen sommige rekenaarnetwerke? 50 00:02:30,360 --> 00:02:30,860 Alles reg? 51 00:02:30,860 --> 00:02:34,920 >> C het die vermoë om dit te doen nie, maar dit is so arcane en so moeilik om werklik te doen. 52 00:02:34,920 --> 00:02:37,580 Sou dit nie lekker wees as die taal het 'n ingeboude, maklike manier 53 00:02:37,580 --> 00:02:38,910 te implementeer netwerk? 54 00:02:38,910 --> 00:02:43,420 En PHP is 'n taal wat dit maak, of fasiliteer dat nogal 'n bietjie meer. 55 00:02:43,420 --> 00:02:47,740 Soos ek gesê het, PHP is baie swaar geïnspireerde deur C. Die sintaksis is baie soortgelyk. 56 00:02:47,740 --> 00:02:51,760 En so moet dit hopelik die oorgang van die een na die ander 57 00:02:51,760 --> 00:02:54,710 'n bietjie sagter as sommige ander tale kan wees. 58 00:02:54,710 --> 00:02:58,800 >> Om te begin skryf PHP, net oop 'n lêer met die .php lêer uitbreiding. 59 00:02:58,800 --> 00:03:00,670 Tegnies is dit nie werklik nodig, 60 00:03:00,670 --> 00:03:04,495 maar as jy dinge soos sintaksis wil beklemtoon in IDE, so dat die tipe 61 00:03:04,495 --> 00:03:07,620 name, of veranderlike name, funksies, jy weet, die sleutelwoorde van die taal 62 00:03:07,620 --> 00:03:10,090 uitgelig in 'n spesifieke kleur, jy in die algemeen 63 00:03:10,090 --> 00:03:14,020 wil jou lêers te noem met 'n bepaalde lêer uitbreiding. 64 00:03:14,020 --> 00:03:18,430 So het ons ons naam met 'n lêer .php uitbreiding, maar dan ook met PHP, 65 00:03:18,430 --> 00:03:23,310 al die PHP-kode skryf ons in daardie lêer moet ingesluit in hierdie PHP 66 00:03:23,310 --> 00:03:25,190 delimiters wat ons sien hier op die skerm. 67 00:03:25,190 --> 00:03:27,910 Hoekhakie? Php om te begin. 68 00:03:27,910 --> 00:03:30,860 Dan skryf ons almal van ons PHP kode wat ons wil tussen in. 69 00:03:30,860 --> 00:03:32,260 En toe ? 70 00:03:32,260 --> 00:03:34,710 hoek bracket te sluit. 71 00:03:34,710 --> 00:03:37,170 >> As ons dit nie doen nie, dan wat gaan gebeur? 72 00:03:37,170 --> 00:03:38,170 Dit gaan nie te crash. 73 00:03:38,170 --> 00:03:39,410 Dit gaan nie om regtig ruïneer ons program. 74 00:03:39,410 --> 00:03:41,440 Maar dit is nie van plan om die effek wat ons wil hê. 75 00:03:41,440 --> 00:03:44,540 Wat gaan gebeur, regtig, is dat wanneer ons probeer en hardloop hierdie program 76 00:03:44,540 --> 00:03:50,330 nie alles tussen diegene delimiters gaan woordeliks uitgedruk word. 77 00:03:50,330 --> 00:03:52,210 Dit gaan nie om die kode eintlik voer, 78 00:03:52,210 --> 00:03:56,010 dit gaan net druk dit woordeliks uit. 79 00:03:56,010 --> 00:03:57,320 >> Nou hoekom is dit die geval? 80 00:03:57,320 --> 00:04:00,416 So C is wat bekend staan as 'n saamgestel taal. 81 00:04:00,416 --> 00:04:03,040 Is jy waarskynlik vertroud met die stap van die maak van jou programme, 82 00:04:03,040 --> 00:04:07,820 draai die .c lêers en .H lêers in 'n enkele uitvoerbare met make, 83 00:04:07,820 --> 00:04:11,130 in die besonder die gebruik van Klang as ons samesteller. 84 00:04:11,130 --> 00:04:13,030 PHP, al is, nie hierdie ekwivalent. 85 00:04:13,030 --> 00:04:15,600 PHP is wat 'n beroep geïnterpreteer taal. 86 00:04:15,600 --> 00:04:16,760 En wat beteken dit? 87 00:04:16,760 --> 00:04:20,680 >> Wel, dit beteken dat ons nie hoef te omskep ons bron-kode te nulle en ene 88 00:04:20,680 --> 00:04:21,470 vooraf. 89 00:04:21,470 --> 00:04:23,900 Inteendeel, daar is 'n program, wat ook genoem 90 00:04:23,900 --> 00:04:29,771 PHP, wat PHP en verstaan kan soort van dit op die vlieg. 91 00:04:29,771 --> 00:04:32,520 Dit is nie regtig presies akkuraat, maar dit is 'n goeie analogie 92 00:04:32,520 --> 00:04:33,760 van wat gebeur. 93 00:04:33,760 --> 00:04:37,230 Dit is die uitleg van die nulle en ene op die vlieg. 94 00:04:37,230 --> 00:04:40,160 En so as dit nie weet hoe om iets te verwerk, 95 00:04:40,160 --> 00:04:42,800 as dit nie weet hoe om proses PHP, het jy waarskynlik 96 00:04:42,800 --> 00:04:44,680 wou dat die teks daar te stel, reg? 97 00:04:44,680 --> 00:04:48,960 >> Jy wou waarskynlik die kode in te sit daar, selfs al is dit nie tussen PHP-- 98 00:04:48,960 --> 00:04:50,035 die PHP delimiters. 99 00:04:50,035 --> 00:04:51,910 But-- so dit gaan nie om dit vir jou te verwyder, 100 00:04:51,910 --> 00:04:53,576 dit is net gaan om te basies weggooi nie. 101 00:04:53,576 --> 00:04:55,550 So dit gaan druk dit uit die skerm. 102 00:04:55,550 --> 00:04:57,150 >> Dit lyk asof dit 'n slegte ding, maar eintlik is dit 103 00:04:57,150 --> 00:04:58,220 gaan 'n werklik goeie ding, soos ons sal 104 00:04:58,220 --> 00:05:00,390 sien wanneer ons praat oor PHP web ontwikkeling, 105 00:05:00,390 --> 00:05:04,010 want dit beteken ons kan deurspek PHP en HTML. 106 00:05:04,010 --> 00:05:06,640 Ons kan hulle saam gebruik om skep 'n meer dinamiese webblad. 107 00:05:06,640 --> 00:05:10,650 Maar meer oor dit in die video op PHP web ontwikkeling. 108 00:05:10,650 --> 00:05:12,021 >> So, wat is die sintaksis van PHP? 109 00:05:12,021 --> 00:05:13,520 Dit is wat hierdie video is alles oor. 110 00:05:13,520 --> 00:05:14,850 Kom ons praat oor dit. 111 00:05:14,850 --> 00:05:16,490 >> So om te begin, veranderlikes. 112 00:05:16,490 --> 00:05:18,030 PHP veranderlikes bestaan ​​nie. 113 00:05:18,030 --> 00:05:20,067 Daar is net twee groot verskille van C. 114 00:05:20,067 --> 00:05:21,900 Die eerste is dat daar nee-tipe specific. 115 00:05:21,900 --> 00:05:24,245 Ons hoef nie te int sê char, vlot, al daardie dinge. 116 00:05:24,245 --> 00:05:25,620 Ons hoef nie te wat meer doen nie. 117 00:05:25,620 --> 00:05:26,810 PHP is 'n moderne taal. 118 00:05:26,810 --> 00:05:28,910 Dit kan uit te vind wat jy probeer om te doen of 'n beste 119 00:05:28,910 --> 00:05:30,451 raai oor wat jy probeer om te doen. 120 00:05:30,451 --> 00:05:31,700 So dis nogal nice. 121 00:05:31,700 --> 00:05:35,330 >> Die ander ding is dat al veranderlike name moet begin met 'n dollar teken. 122 00:05:35,330 --> 00:05:36,940 Dit is net iets om gewoond te raak aan. 123 00:05:36,940 --> 00:05:39,496 Dit is 'n bietjie vreemd, want dit is so dat PHP kan verstaan 124 00:05:39,496 --> 00:05:40,870 Wat is 'n veranderlike is en wat nie. 125 00:05:40,870 --> 00:05:43,340 So elke veranderlike naam begin met 'n dollar teken. 126 00:05:43,340 --> 00:05:46,884 So in C ons dalk iets te sê soos hierdie, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Ons het nie meer te doen in PHP. 128 00:05:48,550 --> 00:05:52,540 Ons kan net sê $ x = 54. 129 00:05:52,540 --> 00:05:55,920 En ons kan sê, byvoorbeeld, in C, as ons pond ingesluit die CS50 .H 130 00:05:55,920 --> 00:06:00,314 header lêer, kan ons sê string frase = "Dit is CS50." 131 00:06:00,314 --> 00:06:01,980 Ons hoef nie te doen wat in PHP, al is. 132 00:06:01,980 --> 00:06:04,865 Ons kan net sê $ frase = "Dit is CS50." 133 00:06:04,865 --> 00:06:08,760 En in die feit, string is nou 'n ingeboude datatipe in PHP, 134 00:06:08,760 --> 00:06:10,950 of eerder PHP verstaan wat 'n string is. 135 00:06:10,950 --> 00:06:15,612 Dit is apart van 'n verskeidenheid karakters soos dit is in C. 136 00:06:15,612 --> 00:06:17,570 Al jou gunsteling voorwaardelike verklarings van C 137 00:06:17,570 --> 00:06:19,520 is nog beskikbaar vir jou om te gebruik. 138 00:06:19,520 --> 00:06:21,140 So geen groot oorgang daar. 139 00:06:21,140 --> 00:06:23,400 Ons kan say-- ons kan hê indien state soos hierdie. 140 00:06:23,400 --> 00:06:28,210 As $ y 43 of $ z = 15. 141 00:06:28,210 --> 00:06:29,690 So dit is redelik eenvoudig. 142 00:06:29,690 --> 00:06:31,980 Ons kan indien en anders. 143 00:06:31,980 --> 00:06:34,210 Ons kan indien en anders as het. 144 00:06:34,210 --> 00:06:36,430 >> En let iets hier mooi mooi, en dit 145 00:06:36,430 --> 00:06:39,620 is 'n soort van een van daardie voordele van PHP versus C, kennisgewing 146 00:06:39,620 --> 00:06:41,510 Watter funksie Ons is nie hier gebruik nie? 147 00:06:41,510 --> 00:06:47,737 Ons gebruik == te vergelyk 'n veranderlike naam $, om 'n string. 148 00:06:47,737 --> 00:06:49,070 Ons kon dit nie doen nie in C, reg? 149 00:06:49,070 --> 00:06:53,200 Ons het 'n funksie genoem gebruik StrComp of StrEndComp of enige 150 00:06:53,200 --> 00:06:54,840 van sy verwante neefs. 151 00:06:54,840 --> 00:06:56,980 >> En so sien ons reeds hierdie voordele. 152 00:06:56,980 --> 00:07:00,930 Ons het nie 'om iets te doen as dom of dalk unintuitive 153 00:07:00,930 --> 00:07:03,540 as 'n funksie genoem noem StrComp as ek wil net om te toets 154 00:07:03,540 --> 00:07:05,237 of 'n waarde is gelyk aan 'n string. 155 00:07:05,237 --> 00:07:07,820 Ek kon net gebruik gelyk gelykes, soos ek kon enigiets anders te doen. 156 00:07:07,820 --> 00:07:09,560 So daar is 'n voordeel. 157 00:07:09,560 --> 00:07:13,350 >> Soms, by the way, kan jy sien anders as as een woord, elseif. 158 00:07:13,350 --> 00:07:14,910 En dit is OK in PHP as well. 159 00:07:14,910 --> 00:07:17,020 So soms jy kan sien. 160 00:07:17,020 --> 00:07:17,790 Dit is nie 'n tikfout. 161 00:07:17,790 --> 00:07:21,830 PHP verstaan ​​eintlik elseif. 162 00:07:21,830 --> 00:07:23,980 Ek weet nie hoekom hulle besluit om te implementeer dat 163 00:07:23,980 --> 00:07:28,220 maar soos ons het baie keer gesien in ons videos so ver, 164 00:07:28,220 --> 00:07:30,460 ons programmeerders is mal daaroor as ons kan dinge vinnig te doen, 165 00:07:30,460 --> 00:07:33,660 so om ontslae te raak van daardie ruimte is blykbaar 'n groot voordeel. 166 00:07:33,660 --> 00:07:34,800 >> So dis nou as en elseif. 167 00:07:34,800 --> 00:07:37,540 Ons het ook die drieledige operateur, Onthou vraagteken kolon, 168 00:07:37,540 --> 00:07:43,262 vir baie kort vorm indien anders of voorwaardelike vertakking. 169 00:07:43,262 --> 00:07:45,470 En blykbaar, in hierdie, wat ons probeer om hier te doen 170 00:07:45,470 --> 00:07:49,720 is toewys die veranderlike $ brief waar of vals is, 171 00:07:49,720 --> 00:07:54,110 afhangende van of $ var is 'n alfabetletter. 172 00:07:54,110 --> 00:07:57,320 So dit is redelik soortgelyk aan isalpha dat ons vertroud is met van C. 173 00:07:57,320 --> 00:07:59,010 Dit is 'n soort van die ekwivalent in PHP. 174 00:07:59,010 --> 00:08:01,550 Die funksie is blykbaar genoem ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 maar dit is hoe ons dit doen in PHP. 176 00:08:03,450 --> 00:08:08,560 So dit alles gaan wees is, as $ var is 'n brief, $ brief is waar. 177 00:08:08,560 --> 00:08:13,820 As $ var is nie 'n brief, $ brief is onwaar. 178 00:08:13,820 --> 00:08:15,820 >> Ons het ook 'n skakelaar state steeds. 179 00:08:15,820 --> 00:08:17,870 Ons onthou dié van C as well. 180 00:08:17,870 --> 00:08:22,480 Op die heel boonste daar, dit is hoe ons dit doen iets soos get int of kry string. 181 00:08:22,480 --> 00:08:23,845 So PHP het dat gebou in. 182 00:08:23,845 --> 00:08:25,470 Ons het nie die CS50 biblioteek nodig nie. 183 00:08:25,470 --> 00:08:27,237 Ons kan net gebruik die funksie read line. 184 00:08:27,237 --> 00:08:29,820 Wat dit gaan doen is om druk uit die boodskap, "Jou staat, 185 00:08:29,820 --> 00:08:33,820 asseblief, "en dan flikkerende vinnige wag vir die gebruiker om insette 186 00:08:33,820 --> 00:08:34,739 sommige inligting. 187 00:08:34,739 --> 00:08:36,530 Nou sien wat anders ons kan doen met skakelaar. 188 00:08:36,530 --> 00:08:39,105 As jy dit het gebruik jy kan daardie skakelaar onthou 189 00:08:39,105 --> 00:08:44,960 is pretty much beperk tot heelgetalle en karakters, maar nou kan ons snare te gebruik. 190 00:08:44,960 --> 00:08:50,190 En in die feit, die skakelaar verklaring in PHP is nogal 'n bietjie meer buigsaam 191 00:08:50,190 --> 00:08:54,880 as sy neef van C. 192 00:08:54,880 --> 00:08:55,380 Loops. 193 00:08:55,380 --> 00:08:58,130 Net soos conditionals, al jou ou gunstelinge is nog steeds daar. 194 00:08:58,130 --> 00:09:00,740 Ons het terwyl loops wat tel 1-100 in hierdie geval. 195 00:09:00,740 --> 00:09:03,940 Ons het te doen terwyl loops wat tel 1-100, 196 00:09:03,940 --> 00:09:06,200 en ons het vir sirkelroetes wat tel 1-100. 197 00:09:06,200 --> 00:09:07,220 Sodat daar geen groot sprong daar. 198 00:09:07,220 --> 00:09:09,360 Die sintaksis is redelik veel presies dieselfde, 199 00:09:09,360 --> 00:09:11,760 behalwe ons nou met behulp van dollar teken veranderlike plaas 200 00:09:11,760 --> 00:09:17,260 verklaar heelgetal veranderlikes of iets soos dit vir ons tellers. 201 00:09:17,260 --> 00:09:20,090 >> Hier is waar dinge 'n baie beter as C, though. 202 00:09:20,090 --> 00:09:21,020 Skikkings. 203 00:09:21,020 --> 00:09:23,020 So onthou toe ons praat oor C, ten einde 204 00:09:23,020 --> 00:09:25,560 vir ons om te groei en krimp stelle van inligting, 205 00:09:25,560 --> 00:09:28,310 ons nodig het om te sorteer van wanbetaling om hierdie idee van 'n geskakelde lys, 206 00:09:28,310 --> 00:09:30,780 omdat C skikkings is vasgestel in grootte. 207 00:09:30,780 --> 00:09:31,800 Ons kon hulle nie krimp. 208 00:09:31,800 --> 00:09:32,930 Ons kon hulle nie te laat groei. 209 00:09:32,930 --> 00:09:36,074 Ons moes geheue hertoeken en al hierdie waansin 210 00:09:36,074 --> 00:09:38,490 of gebruik geskakelde lyste, wat neem nogal 'n bietjie meer ruimte. 211 00:09:38,490 --> 00:09:41,590 Maar in PHP, skikkings is meer nie in grootte vasgestel. 212 00:09:41,590 --> 00:09:43,240 Hulle kan groei en hulle kan krimp. 213 00:09:43,240 --> 00:09:46,660 So weer, hierdie 20 jaar wat bestaan tussen die eerste vrystelling van C 214 00:09:46,660 --> 00:09:49,440 en die eerste release PHP, het ons besluit dat, jy weet, 215 00:09:49,440 --> 00:09:51,670 Dit sou werklik groot wees as ons kan dit doen. 216 00:09:51,670 --> 00:09:54,100 En so het ons geïmplementeer hierdie. 217 00:09:54,100 --> 00:09:58,040 >> So PHP skikkings is nie in vaste grootte, en omdat PHP nie regtig 218 00:09:58,040 --> 00:10:03,090 het programmeerder front-gesig staar opvattings van tipes, 219 00:10:03,090 --> 00:10:05,110 kan ons datatipes meng in ons skikkings ook. 220 00:10:05,110 --> 00:10:08,100 Sodat ons nie eens te gebruik almal heelgetalle of al swaai punte, 221 00:10:08,100 --> 00:10:12,826 kan ons 'n mengsel van almal verskillende soorte in 'n enkele skikking. 222 00:10:12,826 --> 00:10:14,700 Verklaar 'n skikking is redelik eenvoudig. 223 00:10:14,700 --> 00:10:16,116 Dit is net soos enige ander veranderlike. 224 00:10:16,116 --> 00:10:20,020 $ nume = array (1, 2, 3, 4), verskeidenheid om 'n funksie 225 00:10:20,020 --> 00:10:22,760 dit is gebou in PHP dat sal 'n verskeidenheid vir jou te skep. 226 00:10:22,760 --> 00:10:28,315 Dit skep 'n verskeidenheid van vier waardes, getalle in hierdie geval, die sogenaamde $ nume. 227 00:10:28,315 --> 00:10:29,940 En daar is meer as een manier om dit te doen. 228 00:10:29,940 --> 00:10:32,420 En ons gaan sien dit baie in PHP. 229 00:10:32,420 --> 00:10:36,380 PHP is ontwikkel deur baie verskillende mense en groei en groei en groei. 230 00:10:36,380 --> 00:10:40,050 Daar is gewoonlik nie net twee of drie maniere om iets te doen in PHP, 231 00:10:40,050 --> 00:10:42,170 daar is gewoonlik soos 10 of 20. 232 00:10:42,170 --> 00:10:45,300 Hier is net nog 'n algemene manier om 'n skikking te verklaar. 233 00:10:45,300 --> 00:10:48,310 $ nume = vierkante bracket 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 So dit is soort van soortgelyk aan C se hoek br-- krullerige brace notasie, eerder. $ - 235 00:10:53,170 --> 00:10:58,525 of dit sou int nume vierkant hakies gelyk krullerige brace 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 In PHP dit is $ nume = vierkante hakies 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Maar beide van hierdie voorbeelde hier gee my 'n verskeidenheid van vier in hierdie geval heelgetalle. 238 00:11:08,920 --> 00:11:10,920 >> Wat gebeur as ek iets wil ryg op nou? 239 00:11:10,920 --> 00:11:14,760 Wel, ek kan net sê $ nume 4, wat weer, ons nog steeds tel van 0 hier 240 00:11:14,760 --> 00:11:17,800 in PHP, sou die vyfde wees element van die skikking. 241 00:11:17,800 --> 00:11:18,990 Ek kan net sê dat. 242 00:11:18,990 --> 00:11:22,860 Ek is nie van plan om 'n seg ly skuld, want my skikking is net 243 00:11:22,860 --> 00:11:24,337 gaan om te groei om te akkommodeer nie. 244 00:11:24,337 --> 00:11:25,420 Dit is redelik mooi, reg? 245 00:11:25,420 --> 00:11:28,400 En in die feit, ek weet nie eens nodig om spesifiseer waar ek wil om dit te sit. 246 00:11:28,400 --> 00:11:31,220 Ek kan dit en net net sê ryg dit reg op die einde, 247 00:11:31,220 --> 00:11:34,099 of ek kon selfs net sê $ nume 20 of 1000. 248 00:11:34,099 --> 00:11:35,140 Dit maak nie regtig saak nie. 249 00:11:35,140 --> 00:11:38,330 Dit is nog steeds net gaan om ryg dit reg op die einde. 250 00:11:38,330 --> 00:11:41,490 >> So ek kan groei, en ons is as-- gaan dit nie te dek in hier, 251 00:11:41,490 --> 00:11:45,360 maar ek kan Splice of strook elemente uit die skikking asook, 252 00:11:45,360 --> 00:11:50,064 en die skikking sal krimp om te akkommodeer wat nou ontbreek of leë ruimte. 253 00:11:50,064 --> 00:11:52,230 Daar is nog 'n manier om te ryg iets op 'n skikking, 254 00:11:52,230 --> 00:11:54,330 wat is 'n funksie genoem array_push. 255 00:11:54,330 --> 00:11:57,860 So weer, net die idee van ' kan doen dinge baie verskillende maniere. 256 00:11:57,860 --> 00:12:01,950 So het ons gesien drie verskillende maniere nou na 'n ander element ryg op 'n skikking. 257 00:12:01,950 --> 00:12:06,900 So dit voeg 'n ander element tot aan die einde van die $ nume skikking. 258 00:12:06,900 --> 00:12:08,340 En ons kan meng ons data tipes. 259 00:12:08,340 --> 00:12:13,110 So kon ek 'n verskeidenheid van nie 1, 2, 3, 4, maar 1, waar, 3, 4, 260 00:12:13,110 --> 00:12:16,420 waar ware is 'n Boole, en dan as ek wil om te ryg op 'n ander element 261 00:12:16,420 --> 00:12:20,860 dat die verskeidenheid, miskien 'n string, die string "vyf," Ek kon dit doen. 262 00:12:20,860 --> 00:12:26,110 En nou is my array sou 1, waar, 3, 4, vyf. 263 00:12:26,110 --> 00:12:28,640 Die woord vyf nie die heelgetal 5. 264 00:12:28,640 --> 00:12:31,270 So 'n baie buigsaamheid daar. 265 00:12:31,270 --> 00:12:33,290 >> Die buigsaamheid kry nog beter, al is, 266 00:12:33,290 --> 00:12:37,530 want PHP het ondersteuning vir iets genoem 'n assosiatiewe skikking. 267 00:12:37,530 --> 00:12:40,660 En ons soort van vaagweg gepraat oor assosiatiewe skikkings in C 268 00:12:40,660 --> 00:12:44,740 in die konteks van hash tabelle, omdat wat assosiatiewe skikkings is regtig 269 00:12:44,740 --> 00:12:48,950 oor maak sleutel waarde pair afbeeldings. 270 00:12:48,950 --> 00:12:53,410 En in hierdie geval, die keys-- as ons is vertroud met skikkings van C, 271 00:12:53,410 --> 00:12:55,440 die sleutels is indekssyfers. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 En die waardes is wat ons vind dat array 0, 1 verskeidenheid, array 2, en so aan. 274 00:13:03,070 --> 00:13:06,310 So het die sleutels is indekse, en die waardes is 275 00:13:06,310 --> 00:13:10,060 wat in daardie reeks plek, wat deur die indeks. 276 00:13:10,060 --> 00:13:15,130 >> Maar in PHP, het ons nie om dit te doen idee van array 0, 1 verskeidenheid, array 2 277 00:13:15,130 --> 00:13:15,830 meer. 278 00:13:15,830 --> 00:13:21,025 Ons kan nou die werklike woorde om sleutels kaart waardes. 279 00:13:21,025 --> 00:13:22,650 En so kan ek iets soos hierdie te sê. 280 00:13:22,650 --> 00:13:26,710 Ek kon 'n verskeidenheid te skep met behulp van die vierkante bracket sintaksis soos volg. 281 00:13:26,710 --> 00:13:30,685 $ pizzas = vierkante bracket "kaas" en dan 282 00:13:30,685 --> 00:13:37,210 hierdie soort van dubbel pyl notasie, 8,99, "pepperoni," arrow 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 en so aan. 284 00:13:37,880 --> 00:13:39,060 En ja, wat gaan hier aan? 285 00:13:39,060 --> 00:13:41,040 Wat ek eintlik? 286 00:13:41,040 --> 00:13:43,990 Ek skep sleutel waarde pair afbeeldings. 287 00:13:43,990 --> 00:13:49,060 So in plaas van sê, byvoorbeeld, pizzas 0, stukke 1, pizzas 2, 288 00:13:49,060 --> 00:13:52,350 Ek kan nou sê pizzas kaas, pizzas pepperoni, 289 00:13:52,350 --> 00:13:55,120 en verwys na die waardes wat verband hou met hulle. 290 00:13:55,120 --> 00:13:56,970 >> So hier is ons sleutels in die groen. 291 00:13:56,970 --> 00:13:59,870 Kaas, pepperoni, groente, buffels hoender. 292 00:13:59,870 --> 00:14:04,200 Hier is die pyl wat maak hierdie sleutel waarde pair kartering. 293 00:14:04,200 --> 00:14:07,420 En dan hier is die waardes op daardie verskeidenheid plek. 294 00:14:07,420 --> 00:14:10,330 So dit is soos om te sê verskeidenheid 0 gelyk 8,99. 295 00:14:10,330 --> 00:14:11,720 Die sleutel is 0. 296 00:14:11,720 --> 00:14:13,600 Die waarde is 8,99. 297 00:14:13,600 --> 00:14:19,370 Ek kan nou sê verskeidenheid kaas, of in hierdie geval pizzas kaas, kaas is die sleutel, 298 00:14:19,370 --> 00:14:23,340 en wat ek vind op pizzas kaas is 8,99. 299 00:14:23,340 --> 00:14:25,540 Dit is die waarde wat ek daar vind. 300 00:14:25,540 --> 00:14:28,124 >> So ek kan sê dinge wil. $ pizza kaas = 7,99. 301 00:14:28,124 --> 00:14:29,040 Sê Ek het 'n verkoop. 302 00:14:29,040 --> 00:14:31,750 Ek wil dis-- Ek wil om te daal die prys van die kaas pizza. 303 00:14:31,750 --> 00:14:35,620 Of ek kan die groente te gebruik pizza as deel van 'n toestand, 304 00:14:35,620 --> 00:14:39,990 of ek kan 'n nuwe element te voeg aan my skikking, net soos ek voorheen kon doen nie. 305 00:14:39,990 --> 00:14:44,680 Ek kan 'n nuwe element te voeg tot hierdie assosiatiewe skikking met die sleutel "spek" 306 00:14:44,680 --> 00:14:49,250 en die waarde 13,49. 307 00:14:49,250 --> 00:14:53,820 >> Maar hierdie soort van 'n probleem stel, As jy dink oor dit vir 'n tweede. 308 00:14:53,820 --> 00:14:55,721 Hoe sou ons Itereer deur middel van hierdie verskeidenheid? 309 00:14:55,721 --> 00:14:56,220 Reg? 310 00:14:56,220 --> 00:14:59,820 In C, sou ons net 'n lus, tipies, wat 311 00:14:59,820 --> 00:15:03,650 sou loop van 0 tot die grootte van die skikking minus 1. 312 00:15:03,650 --> 00:15:08,060 Die skikking het n elemente by die geldig indekse is 0 tot N minus 1. 313 00:15:08,060 --> 00:15:11,530 Sodat ons kan gebruik om 'n lus vir die om stap vir stap deur elke enkele element. 314 00:15:11,530 --> 00:15:13,530 >> Maar dit is nie regtig die geval nie, reg? 315 00:15:13,530 --> 00:15:17,360 Nou waar ons sleutel waarde pair afbeeldings waar die sleutels is woorde, 316 00:15:17,360 --> 00:15:19,970 hoe kan ons Itereer oor al die woorde? 317 00:15:19,970 --> 00:15:22,420 Wel, gelukkig, PHP het 'n manier om te gaan met hierdie, 318 00:15:22,420 --> 00:15:24,580 en so sal ons terug spring om lusse vir 'n tweede 319 00:15:24,580 --> 00:15:30,780 om 'n vierde soort lus stel dat bestaan ​​in PHP genoem foreach lus. 320 00:15:30,780 --> 00:15:34,430 En wat 'n lus foreach doen, is dit is basies dieselfde idee. 321 00:15:34,430 --> 00:15:36,060 Jy kan dit gebruik vir enige soort skikking. 322 00:15:36,060 --> 00:15:38,100 Maar dit is basies die dieselfde idee as 'n lus, 323 00:15:38,100 --> 00:15:40,750 behalwe plaas van die gebruik indeks nommers, jy net 324 00:15:40,750 --> 00:15:45,830 het die vreemde sintaksis waar jy elke enkele element noem 325 00:15:45,830 --> 00:15:47,550 'n naam vir die doeleindes van hierdie lus. 326 00:15:47,550 --> 00:15:49,258 >> So in hierdie geval, foreach ($ array as $ sleutel). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Basies, as daardie kommentaar notas, binnekant van die foreach lus, 329 00:15:56,450 --> 00:16:00,466 dit gaan om te gaan oor elke enkele element van $ skikking, wat is tipies 330 00:16:00,466 --> 00:16:03,340 gaan 'n assosiatiewe skikking wees, maar kan regtig enige soort verskeidenheid wees 331 00:16:03,340 --> 00:16:05,419 wat jy wil in PHP. 332 00:16:05,419 --> 00:16:07,210 En elke keer dat 'n lus vir die jy dalk 333 00:16:07,210 --> 00:16:13,780 het gesê $ array vierkantige hakies $ i, kan jy net sê $ sleutel. 334 00:16:13,780 --> 00:16:22,340 Sodat $ sleutel word 'n alias vir elke indeks van jou PHP assosiatiewe skikking, 335 00:16:22,340 --> 00:16:23,710 en so kan jy dit gebruik soos dit. 336 00:16:23,710 --> 00:16:25,897 >> So byvoorbeeld, het ons nou het ons pizzas skikking. 337 00:16:25,897 --> 00:16:27,730 Ek het soort van ingesteek dit in die hoek is daar 338 00:16:27,730 --> 00:16:31,080 sodat ons dit kan gebruik om 'n vinnige voorbeeld te doen. 339 00:16:31,080 --> 00:16:36,420 As ek sê foreach ($ pizzas as $ pizza), wel, wat gebeur? 340 00:16:36,420 --> 00:16:42,400 Wel, ek gaan Itereer deur elke enkele element van die skikking $ pizzas, 341 00:16:42,400 --> 00:16:46,670 en sodoende, ek gaan om te bel elke element, wanneer ek binne 342 00:16:46,670 --> 00:16:49,400 van die liggaam van daardie lus, $ pizza. 343 00:16:49,400 --> 00:16:52,440 >> So dit is soort van 'n stand-in, onthou, dat $ pizza 344 00:16:52,440 --> 00:16:59,140 is 'n stand-in om te sê $ pizzas vierkantige hakies $ i 345 00:16:59,140 --> 00:17:03,370 as ons met behulp van 'n lus vir die, waar ons kon gaan van $ i = 0 om, in hierdie geval, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 As ons nie die sleutel waarde pare gehad het hier, sal hierdie element 0, 1, 2, 3 wees, 348 00:17:09,780 --> 00:17:16,390 en ons wil 'n gebruik vir lus om te gaan $ pizzas 0, $ pizzas 1, $ 2 pizzas, 349 00:17:16,390 --> 00:17:17,750 $ pizzas 3. 350 00:17:17,750 --> 00:17:23,130 So nou net $ pizza is vervang vir die individu sleutel. 351 00:17:23,130 --> 00:17:25,630 >> So, wat gaan dit om uit te druk? 352 00:17:25,630 --> 00:17:29,030 Ek is uit te druk $ pizza. 353 00:17:29,030 --> 00:17:35,270 Wat gaan ek at-- vind as ek druk $ pizzas, $ i? 354 00:17:35,270 --> 00:17:35,770 Reg? 355 00:17:35,770 --> 00:17:38,680 As ek gaan uit te druk die ith element van pizzas, 356 00:17:38,680 --> 00:17:40,070 wat gaan ek om te druk? 357 00:17:40,070 --> 00:17:42,580 Ek gaan die druk van die waardes op die plek, reg? 358 00:17:42,580 --> 00:17:45,370 Soos as ons doen dit in die konteks van C, 359 00:17:45,370 --> 00:17:49,786 ons gewoonlik nie gebruik maak van ons Iterator veranderlike, int i = 0, i is minder as 3, 360 00:17:49,786 --> 00:17:52,900 i ++, uit te druk 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Ons druk uit array 0, array 1, 2 array, verskeidenheid 3. 362 00:17:57,500 --> 00:17:59,580 En ja, wat die druk uit is dit. 363 00:17:59,580 --> 00:18:01,150 Dit is die lys van die pryse. 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 >> Nou 'n vinnige nota hier. 366 00:18:06,900 --> 00:18:10,900 A foreach lus nie noodwendig druk dinge in orde is. 367 00:18:10,900 --> 00:18:12,770 Dit is nie gewaarborg nie. 368 00:18:12,770 --> 00:18:13,550 Dit maak gewoonlik. 369 00:18:13,550 --> 00:18:17,667 Dit is gewoonlik gebaseer op die volgorde watter elemente word bygevoeg om die skikking, 370 00:18:17,667 --> 00:18:18,750 so net dra dit in gedagte. 371 00:18:18,750 --> 00:18:20,830 Dit mag dalk nie in orde is. 372 00:18:20,830 --> 00:18:23,930 Maar 'n foreach lus sal Itereer oor elke enkele element 373 00:18:23,930 --> 00:18:25,060 van die skikking in die vraag. 374 00:18:25,060 --> 00:18:27,980 In hierdie geval, weer, wat opgestel is $ pizzas. 375 00:18:27,980 --> 00:18:32,920 >> Ek kan die sintaksis te verander, al is, as Ek wil beide die sleutel en die waarde daarvan. 376 00:18:32,920 --> 00:18:37,179 In plaas van sê $ pizzas as $ pizza, kan ek sê. 377 00:18:37,179 --> 00:18:39,470 En as jy kyk na wat ek uitgelig in groen hier, 378 00:18:39,470 --> 00:18:42,130 dit lyk soos 'n sleutel waarde pair kartering. 379 00:18:42,130 --> 00:18:45,980 En so as you-- selfs as jy is nie heeltemal seker wat dit gaan doen, 380 00:18:45,980 --> 00:18:49,300 jy kan seker raai dat $ bolaag gaan 381 00:18:49,300 --> 00:18:53,800 om die sleutel in hierdie geval wees en $ prys gaan om die waarde te wees. 382 00:18:53,800 --> 00:18:59,200 So ek vervang nou elke element van $ pizzas as 'n belangrike waarde pair, 383 00:18:59,200 --> 00:19:03,900 en nou kan ek verwys na die sleutel en die waarde, wat kan handig te pas, 384 00:19:03,900 --> 00:19:05,590 byvoorbeeld soos volg. 385 00:19:05,590 --> 00:19:10,170 >> "'N hele" - dit is 'n baie druk gaan here-- "'n hele" 386 00:19:10,170 --> 00:19:17,300 bolaag "pizza kos $" prys, en dan Ek druk 'n tydperk en 'n backslash n. 387 00:19:17,300 --> 00:19:23,420 So nou, kennisgewing ek weer toegang tot 'n belangrike, $ bolaag, en 'n waarde $ prys. 388 00:19:23,420 --> 00:19:26,647 So kan jy dink wat dit gaan uit te druk? 389 00:19:26,647 --> 00:19:29,480 Daar is 'n baie druk state, maar daar is net een backslash n, 390 00:19:29,480 --> 00:19:33,410 so dit gaan om iets op te druk 'n entire-- op 'n enkele lyn van die kode. 391 00:19:33,410 --> 00:19:36,965 >> As ek kan verwys na die sleutel en die waarde, dan nou, 392 00:19:36,965 --> 00:19:39,090 in plaas van net om te kan om die druk van die pryse, 393 00:19:39,090 --> 00:19:41,330 Ek kan druk iets soos hierdie. 394 00:19:41,330 --> 00:19:43,780 "'N Hele kaas pizza kos $ 8,99." 395 00:19:43,780 --> 00:19:47,150 En nou is ek met al die keys-- kaas, pepperoni, groente, 396 00:19:47,150 --> 00:19:49,640 buffels chicken-- en die waardes. 397 00:19:49,640 --> 00:19:53,980 8,99, 9,99, 10,99, 11,99 So dit is net 'n ander manier 398 00:19:53,980 --> 00:19:57,840 'n foreach lus te doen dat in plaas van net gee jou toegang tot die waardes, 399 00:19:57,840 --> 00:20:02,950 dit gee net you-- dit gee jou toegang tot die sleutels en die waardes. 400 00:20:02,950 --> 00:20:04,411 >> So uit te druk inligting. 401 00:20:04,411 --> 00:20:07,410 Ek het dit reeds gedoen 'n paar verskillende maniere, kan jy opgemerk. 402 00:20:07,410 --> 00:20:11,080 Die twee funksies wat ons het hoofsaaklik gesien is druk en eggo. 403 00:20:11,080 --> 00:20:14,380 En pretty much alle praktiese doeleindes, hulle is presies dieselfde. 404 00:20:14,380 --> 00:20:17,130 They're-- daar is 'n baie subtiele verskil dit is nie eens die moeite werd 405 00:20:17,130 --> 00:20:21,130 om in nie, maar basies oral jy kan druk gebruik kan jy waarskynlik gebruik 406 00:20:21,130 --> 00:20:22,370 eggo as well. 407 00:20:22,370 --> 00:20:23,610 >> En dit is nie die enigste twee. 408 00:20:23,610 --> 00:20:26,970 PHP het 'n baie verskillende maniere om dinge uit te druk, 409 00:20:26,970 --> 00:20:30,520 en dit het ook maniere om te integreer veranderlikes in die middel van string. 410 00:20:30,520 --> 00:20:32,860 So onthou uit C, het jy onthou wat funksie 411 00:20:32,860 --> 00:20:37,580 ons kan gebruik om veranderlikes te vervang in die dinge wat ons wil uit te druk? 412 00:20:37,580 --> 00:20:40,160 Jy gebruik waarskynlik hierdie funksioneer nogal 'n baie. 413 00:20:40,160 --> 00:20:42,290 printf, reg? 414 00:20:42,290 --> 00:20:45,290 So dit is wat ons voor die binnekant het van die konteks van ons foreach lus. 415 00:20:45,290 --> 00:20:48,000 Ons het hierdie vyf aparte druk state, 416 00:20:48,000 --> 00:20:50,330 want dit was die enigste manier wat ek regtig geweet teen die tyd 417 00:20:50,330 --> 00:20:52,450 hoe om uit te druk boodskappe. 418 00:20:52,450 --> 00:20:59,560 Ek het nie geweet hoe om die integreer veranderlike $ bolaag in my PHP-kode. 419 00:20:59,560 --> 00:21:03,700 Wel, as ek 'n wilde raaiskoot net geneem, printf, sou dit eintlik gewerk het. 420 00:21:03,700 --> 00:21:08,980 printf is 'n funksie wat ek kan gebruik in PHP, net soos ek dit kan gebruik in C. 421 00:21:08,980 --> 00:21:11,880 >> En so iets soos hierdie, printf, weer, ons is vertroud met dit. 422 00:21:11,880 --> 00:21:16,420 Die eerste% s vervang met die waarde van $ bolaag. 423 00:21:16,420 --> 00:21:19,700 Die tweede% s vervang met die waarde van $ prys. 424 00:21:19,700 --> 00:21:22,630 En so ek interpellating, wat net 'n fancy manier 425 00:21:22,630 --> 00:21:25,400 sê ek steek die veranderlikes in die plek. 426 00:21:25,400 --> 00:21:31,000 So ek steek in $ bolaag waar die rooi% s is en $ prys waar die blou% s 427 00:21:31,000 --> 00:21:36,060 is, en dan sal ek die boodskap kry, "'N Hele kaas pizza kos $ 8,99." 428 00:21:36,060 --> 00:21:37,750 >> Nie die enigste manier wat ek dit kan doen, al is. 429 00:21:37,750 --> 00:21:39,760 Miskien sou ek wil hierdie metode te gebruik. 430 00:21:39,760 --> 00:21:44,890 Dit is eintlik wat is die mees algemene genoem veranderlike interpellatie. 431 00:21:44,890 --> 00:21:45,690 Ek kan 'n eggo gebruik. 432 00:21:45,690 --> 00:21:47,737 Ek kon 'n afdruk te gebruik, soos ons sal sien. 433 00:21:47,737 --> 00:21:48,820 Maar wat hier gebeur? 434 00:21:48,820 --> 00:21:51,520 >> Eerste van alles, moet ek ontsnap die dollar teken. 435 00:21:51,520 --> 00:21:55,140 Want onthou, wanneer ons eintlik was druk die pryse van die pizzas, 436 00:21:55,140 --> 00:21:59,370 Ek was eintlik hulle opmaak as monetêre syfers met 'n dollar teken. 437 00:21:59,370 --> 00:22:05,635 Maar ons gebruik dollar tekens ook veranderlike name verteenwoordig in PHP, 438 00:22:05,635 --> 00:22:08,010 en in die besonder wanneer ek die gebruik van hierdie metode van die krullerige 439 00:22:08,010 --> 00:22:10,040 brace veranderlike interpellatie metode, moet ek 440 00:22:10,040 --> 00:22:13,490 my dollar teken ontsnap sodat dit nie dink ek praat oor 'n veranderlike. 441 00:22:13,490 --> 00:22:16,920 Dit gaan eintlik, letterlik druk van 'n dollar teken. 442 00:22:16,920 --> 00:22:19,530 >> So soort van analogize dit wat jy sien aan die einde daar. 443 00:22:19,530 --> 00:22:22,832 Dit maak nie eintlik Druk backslash n, reg? 444 00:22:22,832 --> 00:22:24,290 Dit druk uit 'n nuwe lyn karakter. 445 00:22:24,290 --> 00:22:26,750 Dit is-- dit gaan nie om Druk backslash dollar teken 446 00:22:26,750 --> 00:22:30,130 dit gaan net buite te druk 'n dollar teken karakter. 447 00:22:30,130 --> 00:22:30,640 Dieselfde idee. 448 00:22:30,640 --> 00:22:32,760 Ontsnap rye, wat hierdie dinge genoem word. 449 00:22:32,760 --> 00:22:37,080 >> Maar let dat ek nie doen enige soort van% s substitusies, 450 00:22:37,080 --> 00:22:40,050 Ek is net letterlik steek in hierdie veranderlikes. 451 00:22:40,050 --> 00:22:45,110 En so in this-- wat hier sal gebeur is dat die waarde van $ topping-- weer 452 00:22:45,110 --> 00:22:48,390 net om met dit wat ons het is praat oor so far-- kaas sou kry 453 00:22:48,390 --> 00:22:49,720 ingeprop daar. 454 00:22:49,720 --> 00:22:54,780 En $ prys sou wees wat waarde is op pizzas, vierkantige hakies, kaas, 455 00:22:54,780 --> 00:22:56,270 wat was 8,99. 456 00:22:56,270 --> 00:23:01,860 En so sal dit ook uit te druk "'N Hele kaas pizza kos $ 8,99." 457 00:23:01,860 --> 00:23:05,160 En soos ek gesê het, ek kon gebruik druk hier plaas van eggo, 458 00:23:05,160 --> 00:23:08,040 en die funksie wees pretty much presies dieselfde. 459 00:23:08,040 --> 00:23:09,660 Dit sou dieselfde ding druk. 460 00:23:09,660 --> 00:23:12,680 >> Daar is nog 'n manier om dit te doen, en dit is nog 'n voordeel 461 00:23:12,680 --> 00:23:14,710 PHP werk met snare. 462 00:23:14,710 --> 00:23:17,130 Ons kan string aaneenskakellling doen. 463 00:23:17,130 --> 00:23:19,660 Ons kan dit doen in C ook met behulp van 'n funksie genoem strcat, 464 00:23:19,660 --> 00:23:21,180 maar weer, moes ons noem aparte funksies. 465 00:23:21,180 --> 00:23:22,640 Dit was hierdie hele gemors te doen. 466 00:23:22,640 --> 00:23:24,590 Ons moes pond-sluit string.h. 467 00:23:24,590 --> 00:23:25,780 Dit was 'n produksie, reg? 468 00:23:25,780 --> 00:23:30,070 Maar nou kan ek net hierdie dot operateur snare saam koppel. 469 00:23:30,070 --> 00:23:34,910 >> So ek concatenating "'n hele" en dan ongeag die waarde van $ bolaag is, 470 00:23:34,910 --> 00:23:38,860 en dan nog string, "pizza koste $" 471 00:23:38,860 --> 00:23:42,340 en dan concatenating ookal die waarde van $ prys is, 472 00:23:42,340 --> 00:23:45,670 en dan aan die einde Ek is rygwerk op tydperk backslash n. 473 00:23:45,670 --> 00:23:47,926 En so sou dit ook druk "'n hele" - weer, 474 00:23:47,926 --> 00:23:50,550 As ons praat oor die eerste element van daardie pizzas array-- 475 00:23:50,550 --> 00:23:54,710 "'N Hele kaas pizza kos $ 8,99." 476 00:23:54,710 --> 00:24:01,260 Tydperk, backslash N, weer, met die $ bolaag en $ prys plaasvervangende 477 00:24:01,260 --> 00:24:06,580 vir dit wat ons in ons foreach het gespesifiseer lus as die sleutel waarde pair kartering. 478 00:24:06,580 --> 00:24:08,050 >> PHP kan funksies kan hanteer. 479 00:24:08,050 --> 00:24:11,250 Funksies was soort van integrale deel C, soos ons gesien het. 480 00:24:11,250 --> 00:24:14,870 Soos veranderlikes, het ons nie nodig om spesifiseer die terugkeer tipe van die funksie, 481 00:24:14,870 --> 00:24:16,350 omdat dit nie regtig saak nie. 482 00:24:16,350 --> 00:24:18,660 En ons het nie spesifiseer die data tipes enige parameters, 483 00:24:18,660 --> 00:24:21,410 omdat hulle nie regtig saak, soos ons gesien het in PHP. 484 00:24:21,410 --> 00:24:24,510 Elke funksie bekendgestel met die funksie navraag. 485 00:24:24,510 --> 00:24:27,920 Dit is hoe ons aan te dui dat die PHP wat ons praat, is 'n funksie. 486 00:24:27,920 --> 00:24:29,720 >> En ons hoef nie te hanteer belangrikste glad 487 00:24:29,720 --> 00:24:33,690 omdat die tolk, die PHP tolk, werk van bo tot onder, 488 00:24:33,690 --> 00:24:34,190 ongeag. 489 00:24:34,190 --> 00:24:35,640 As dit sien jy kan maak 'n funksie oproep, sal dit 490 00:24:35,640 --> 00:24:37,850 gaan die funksie oproep te vind, selfs as dit later kom. 491 00:24:37,850 --> 00:24:40,360 Maar dit gaan om te lees van bo na bodem, sodat ons nie nodig het om te spesifiseer, 492 00:24:40,360 --> 00:24:41,500 hier is waar jy begin. 493 00:24:41,500 --> 00:24:46,700 Jy begin op die lyn 1 van jou PHP en werk af van daar af. 494 00:24:46,700 --> 00:24:49,690 >> So hier is hoe ons sou skep 'n funksie genoem hard_square. 495 00:24:49,690 --> 00:24:54,100 Dit neem blykbaar een parameter, wat ek vra $ x. 496 00:24:54,100 --> 00:24:58,424 Hierdie funksie is net ingewikkeld verskeie dinge te illustreer. 497 00:24:58,424 --> 00:24:59,590 Ons het nog terugkeer waardes. 498 00:24:59,590 --> 00:25:00,870 Ek het 'n lus vir die hier. 499 00:25:00,870 --> 00:25:04,970 Maar dit is basies net, wat hierdie neerkom, is net $ x keer $ x. 500 00:25:04,970 --> 00:25:10,520 Wat ek eintlik doen, is voeg net x 0 x keer of $ x nul $ x keer. 501 00:25:10,520 --> 00:25:15,850 Maar dit is presies die effektief dieselfde as $ x keer $ x vermenigvuldig. 502 00:25:15,850 --> 00:25:18,700 Ek kan nog steeds 'n waarde terugkeer, in hierdie geval $ gevolg, 503 00:25:18,700 --> 00:25:22,060 en ek het 'n funksie in PHP gemaak. 504 00:25:22,060 --> 00:25:24,160 >> Hier is hoe jy dit kan gebruik in konteks. 505 00:25:24,160 --> 00:25:26,020 So miskien is ek binne 'n paar van die PHP-lêer. 506 00:25:26,020 --> 00:25:29,240 Kennis blou daar dat Ek het my PHP delimiters gebruik, 507 00:25:29,240 --> 00:25:31,010 hoekhakie vraagteken PHP. 508 00:25:31,010 --> 00:25:35,180 In tussen diegene is al die PHP wat ek wil skryf. 509 00:25:35,180 --> 00:25:37,840 So ek glo gaan get-- Ek gaan die gebruiker gevra 510 00:25:37,840 --> 00:25:41,550 Gee my 'n nommer, winkel wat veranderlike, winkel in daardie veranderlike $ x, 511 00:25:41,550 --> 00:25:43,320 alles wat hulle vir my gegee het. 512 00:25:43,320 --> 00:25:48,590 Toe ek gaan eggo hard_square van daardie waarde, 513 00:25:48,590 --> 00:25:50,370 en blykbaar gaan om te ryg op 'n nuwe reël 514 00:25:50,370 --> 00:25:53,590 sowel, en dan later op sal ek definieer die funksie so hard_square 515 00:25:53,590 --> 00:25:55,550 dat wanneer ek die bel om hard_square, 516 00:25:55,550 --> 00:25:58,160 dit weet wat ek praat. 517 00:25:58,160 --> 00:26:00,705 >> Nou, ek kan dit ook doen iets soos hierdie. 518 00:26:00,705 --> 00:26:02,050 Dit is effens anders. 519 00:26:02,050 --> 00:26:04,190 Dit is presies die byna dieselfde as wat ons voor sien, 520 00:26:04,190 --> 00:26:08,400 behalwe in plaas van sê net $ x daar as die parameter om hard_square, 521 00:26:08,400 --> 00:26:11,730 Ek sê $ x = 10. 522 00:26:11,730 --> 00:26:14,330 So, dit is 'n voorbeeld van defensiewe programmeringstegnieke, 523 00:26:14,330 --> 00:26:17,070 bewaking van jou programme teen kwaadwillige gebruikers. 524 00:26:17,070 --> 00:26:20,020 >> Dit is een manier om 'n paar foute te doen nagaan dat ons het nie regtig 525 00:26:20,020 --> 00:26:24,670 het as 'n opsie in C. Ons kon nooit spesifiseer die standaard waarde van iets. 526 00:26:24,670 --> 00:26:27,010 Ons het altyd om te kyk of die, byvoorbeeld, 527 00:26:27,010 --> 00:26:30,820 As ons 'n oproep om GetString, was dit mees behoorlike as onmiddellik na ons 528 00:26:30,820 --> 00:26:33,300 bewys dat ons nagegaan of die string 529 00:26:33,300 --> 00:26:35,504 wat die gebruiker aan ons gegee het is nie gelyk aan nul 530 00:26:35,504 --> 00:26:37,920 omdat ons nie wil begin werk met 'n nul string. 531 00:26:37,920 --> 00:26:39,670 >> Hier is dit 'n manier om te waak teen daardie. 532 00:26:39,670 --> 00:26:43,480 As die gebruiker verskaf nie vir ons iets een of ander manier, wat gaan ons doen? 533 00:26:43,480 --> 00:26:46,080 Wel, ons sal net sê wat hulle het nie aan ons verskaf, 534 00:26:46,080 --> 00:26:47,705 ons net gaan om te prop in 10 plaas. 535 00:26:47,705 --> 00:26:52,030 So as hulle nie gee ons 'n waarde, net gebruik 10 by verstek. En so hier, 536 00:26:52,030 --> 00:26:53,940 sien dat ek maak 'n oproep tot hard_square, 537 00:26:53,940 --> 00:26:55,980 maar daar is geen vinnige aan die gebruiker, reg? 538 00:26:55,980 --> 00:26:57,540 Ek is net die maak van 'n leë oproep. 539 00:26:57,540 --> 00:27:00,860 >> Maar my funksie hard_square verwag 'n parameter. 540 00:27:00,860 --> 00:27:02,222 Wat gaan dit om uit te druk? 541 00:27:02,222 --> 00:27:03,680 Dit gaan om uit te druk 100, reg? 542 00:27:03,680 --> 00:27:05,720 Omdat die gebruiker het nie gee my nie. 543 00:27:05,720 --> 00:27:08,970 En so is ek net gaan om te aanvaar dat 10-- 10 is die standaard waarde. 544 00:27:08,970 --> 00:27:13,760 En so sou druk uit 100 op sy eie lyn. 545 00:27:13,760 --> 00:27:16,390 >> PHP lêers hoef nie net 'n enkele lêer. 546 00:27:16,390 --> 00:27:19,480 Jy kan veelvuldige lêers saam te kombineer, net soos wat jy kan in C. Die manier 547 00:27:19,480 --> 00:27:24,330 ons het dit in C was tipies 'n doen include te kry header lêers getrek in. 548 00:27:24,330 --> 00:27:26,180 Ons doen dit nie in PHP. 549 00:27:26,180 --> 00:27:29,110 Ons doen iets genoem require_once. 550 00:27:29,110 --> 00:27:33,360 En dan is daar die hele ding, wat is hierdie __dir__? 551 00:27:33,360 --> 00:27:36,510 Dit is net 'n spesiale veranderlike, of spesiale konstante, 552 00:27:36,510 --> 00:27:39,030 regtig, wat spesifiseer watter jou huidige gids is. 553 00:27:39,030 --> 00:27:41,320 En so gaan dit om te kyk in jou huidige gids 554 00:27:41,320 --> 00:27:44,900 vir 'n lêer genaamd cs50.php hier hierdie voorbeeld 555 00:27:44,900 --> 00:27:50,490 en dit gaan om die lêer te hou aan die bokant van jou PHP program, 556 00:27:50,490 --> 00:27:56,980 die veronderstelling dat jy die benodig keer die lyn by die top van jou PHP-lêer. 557 00:27:56,980 --> 00:28:01,474 >> So PHP word hoofsaaklik gebruik, maar nie uitsluitlik gebruik word, 558 00:28:01,474 --> 00:28:03,140 as 'n taal vir web-gebaseerde programme. 559 00:28:03,140 --> 00:28:05,270 Dit is regtig hoe dit gekom het om te wees. 560 00:28:05,270 --> 00:28:06,980 Maar dit is 'n volle taal, soos ons gesien het. 561 00:28:06,980 --> 00:28:10,105 Ons het pretty much al die dinge gesien dat dit kan doen wat soortgelyk is aan C is, 562 00:28:10,105 --> 00:28:13,290 en dit kan 'n heck van doen 'n baie meer as dit. 563 00:28:13,290 --> 00:28:16,950 >> Maar, want dit is 'n volle taal en ons kan command line program doen dit. 564 00:28:16,950 --> 00:28:18,630 Ons kan command line programme te hardloop. 565 00:28:18,630 --> 00:28:22,580 Al wat nodig is om 'n opdrag uit te voer line program wat geskryf in PHP 566 00:28:22,580 --> 00:28:24,260 is dat jy 'n PHP tolk. 567 00:28:24,260 --> 00:28:27,460 So dit is soort van analoog aan 'n samesteller op jou stelsel 568 00:28:27,460 --> 00:28:31,100 as jy wil om jou C-kode saamstel om dit te omskep in uitvoerbare lêers. 569 00:28:31,100 --> 00:28:33,810 Jy moet 'n PHP tolk wat bestaan ​​op jou stelsel 570 00:28:33,810 --> 00:28:37,330 sodat jy kan PHP lêers interpreteer. 571 00:28:37,330 --> 00:28:40,370 >> Veronderstel jy doen, en gewoonlik hierdie tolk genoem PHP, 572 00:28:40,370 --> 00:28:44,300 en dit is gewoonlik saam met die meeste downloads of installasies van PHP 573 00:28:44,300 --> 00:28:47,430 dat jy aanlyn kan kry, en beslis die naam van die PHP tolk 574 00:28:47,430 --> 00:28:49,550 ons het in CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Al wat jy doen is tik php lêer. 576 00:28:51,819 --> 00:28:53,610 En wat jou program se gaan doen, is dit 577 00:28:53,610 --> 00:28:55,360 gaan om te loop deur die tolk, dit is 578 00:28:55,360 --> 00:28:58,040 gaan alles wat te ignoreer nie tussen vraag mark-- 579 00:28:58,040 --> 00:29:03,160 of, hoek bracket vraagteken php, die PHP delimiters, en druk dit uit, 580 00:29:03,160 --> 00:29:07,660 en dit sal interpreteer en voer die kode binnekant van jou PHP delimiters. 581 00:29:07,660 --> 00:29:12,850 >> So laat pop aan CS50 IDE en 'n blik op 'n paar van PHP lêers, 582 00:29:12,850 --> 00:29:19,850 bestuur van 'n paar van die PHP lêers in command line interface van CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 So hier is ons in CS50 IDE, en ek het die vryheid geneem 584 00:29:22,100 --> 00:29:25,800 van die opening van 'n lêer genaamd hello1.php. 585 00:29:25,800 --> 00:29:29,920 En blykbaar, die inhoud van hierdie lêer is net die PHP delimiters daar 586 00:29:29,920 --> 00:29:32,220 en tussen in, eggo ("hello, wêreld"). 587 00:29:32,220 --> 00:29:34,710 Dit is 'n redelik eenvoudige PHP program. 588 00:29:34,710 --> 00:29:37,670 Ek gaan net om af te beweeg hier my terminale venster, 589 00:29:37,670 --> 00:29:44,320 en ek gaan php tik hello1.php, druk enter. 590 00:29:44,320 --> 00:29:44,950 Hello Wêreld. 591 00:29:44,950 --> 00:29:48,110 Dit is waarskynlik wat ons was verwag om dit te doen nie, reg? 592 00:29:48,110 --> 00:29:51,140 >> Kom ons gaan en neem 'n ander kyk na 'n program. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Pretty much dieselfde ding, nie 'n baie gaan op hier. 595 00:29:55,090 --> 00:29:57,190 Hierdie tyd, al is, ek gaan vinnig die gebruiker om my hul name te gee. 596 00:29:57,190 --> 00:29:59,290 Ek gebruik dit read line funksie weer. 597 00:29:59,290 --> 00:30:01,340 $ name = read line. 598 00:30:01,340 --> 00:30:03,070 Dit is die vinnige, "Wat is jou naam?" 599 00:30:03,070 --> 00:30:04,880 >> Blykbaar Ek is druk dit op sy eie lyn. 600 00:30:04,880 --> 00:30:07,220 En dan, so die lyn hieronder wat sal die vinnige wees 601 00:30:07,220 --> 00:30:08,750 waar die gebruiker kan hul naam in te voer. 602 00:30:08,750 --> 00:30:12,030 En dan Ek het 'n bietjie van veranderlike interpellatie hier op die lyn 3 603 00:30:12,030 --> 00:30:14,780 om uit te druk "Hallo" en Wat ook al die gebruiker. 604 00:30:14,780 --> 00:30:22,040 So dit is analoog aan te sê, Hello, komma,% s as ons met behulp van printf in C. 605 00:30:22,040 --> 00:30:24,910 >> So laat ons gaan en hierdie program interpreteer. 606 00:30:24,910 --> 00:30:27,400 So weer, sal ek en af ​​te beweeg my terminale venster. 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 Wat is jou naam? 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 Ek het ook 'n ander lêer genaamd hello3.php. 613 00:30:39,440 --> 00:30:42,850 Ek gaan my duidelik skerm met Control L, 614 00:30:42,850 --> 00:30:46,210 en ek gaan om uit te voer nie. 615 00:30:46,210 --> 00:30:47,640 Wat is jou naam? 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 So die gedrag is identies aan hello2.php, maar hoekom is dit hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Wel, hier is die verskil. 620 00:30:58,040 --> 00:31:00,620 In hierdie geval, kennisgewing wat op die lyn 1 hier, 621 00:31:00,620 --> 00:31:04,270 Ek het iets wat nie tussen die PHP delimiters. 622 00:31:04,270 --> 00:31:07,760 Ek is net die druk van out-- of ek net getik, "Wat is jou naam?" 623 00:31:07,760 --> 00:31:12,060 Wanneer die PHP tolk sien, is dit het geen idee hoe om dit te interpreteer as PHP, 624 00:31:12,060 --> 00:31:15,060 en so in plaas van die versuim, dit is net gaan om dit uit te spoeg. 625 00:31:15,060 --> 00:31:19,010 >> So sien op die lyn 3 nou, my oproep om read line, daar is geen vinnige meer. 626 00:31:19,010 --> 00:31:21,750 Ek is net eintlik gaan aan- wanneer die PHP tolk sien dit, 627 00:31:21,750 --> 00:31:23,400 dit gaan om uit te druk "Wat is jou naam?" 628 00:31:23,400 --> 00:31:25,941 Toe sien dit, o, OK, here's-- alles anders gaan wees 629 00:31:25,941 --> 00:31:29,970 geïnterpreteer as PHP, so dit is hoekom dit werk. 630 00:31:29,970 --> 00:31:34,990 Ek hoef nie te noodwendig gevra die gebruiker aan- binnekant van read line, 631 00:31:34,990 --> 00:31:37,490 Ek kan net buite het dit van die PHP delimiters 632 00:31:37,490 --> 00:31:41,490 en laat die tolk net druk dit uit vir my. 633 00:31:41,490 --> 00:31:45,364 >> Sodat jy nie eintlik net om een ​​stel PHP delimiters het 634 00:31:45,364 --> 00:31:46,030 in jou program. 635 00:31:46,030 --> 00:31:49,887 Jy kan eintlik 'n paar van hulle, opening en sluiting van hulle as wat nodig is. 636 00:31:49,887 --> 00:31:51,720 So laat ons 'n blik na 'n paar van die programme 637 00:31:51,720 --> 00:31:55,070 in CS50 IDE waar ons illustreer hierdie idee van ' 638 00:31:55,070 --> 00:31:58,376 verskeie stelle van afgebaken PHP. 639 00:31:58,376 --> 00:32:02,010 >> OK, so ek het 'n lêer geopen hier genoem add1.php. 640 00:32:02,010 --> 00:32:03,390 En sien wat hier gebeur. 641 00:32:03,390 --> 00:32:08,077 Net soos voorheen, ek het 'n enkele PHP stel delimiters. 642 00:32:08,077 --> 00:32:10,660 Ek gaan die druk van die boodskap, "Gee my asseblief 'n nommer." 643 00:32:10,660 --> 00:32:13,394 Dan gaan ek 'n lyn te lees en stoor dit in die veranderlike $ num1. 644 00:32:13,394 --> 00:32:14,810 Dan gaan ek weer uit te druk. 645 00:32:14,810 --> 00:32:16,310 Gee my 'n tweede getal. 646 00:32:16,310 --> 00:32:20,450 Lees 'n lyn van die gebruiker, stoor wat hulle getik in in $ num2. 647 00:32:20,450 --> 00:32:23,980 Voeg hulle saam en bêre dit lei tot 'n veranderlike genaamd $ som, 648 00:32:23,980 --> 00:32:26,180 en dan uit te druk, "Die som van hierdie twee getalle 649 00:32:26,180 --> 00:32:29,254 is, "en dan interpelleren daar is die veranderlike $ som. 650 00:32:29,254 --> 00:32:31,170 So laat ons net hierdie hardloop deur die tolk 651 00:32:31,170 --> 00:32:33,720 om te bevestig dat dit is wat ons verwag. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Gee my asseblief 'n nommer, 3. 654 00:32:38,665 --> 00:32:40,410 Gee my asseblief 'n tweede nommer, 4. 655 00:32:40,410 --> 00:32:43,370 Die som van hierdie twee getalle is 7. 656 00:32:43,370 --> 00:32:45,030 Dit is 3 plus 4. 657 00:32:45,030 --> 00:32:45,530 OK? 658 00:32:45,530 --> 00:32:47,770 So niks vreeslik fancy daar. 659 00:32:47,770 --> 00:32:51,080 >> En nou, laat se oop add2.php. 660 00:32:51,080 --> 00:32:54,460 Hier het ek 'n paar van PHP het afgebaken stelle daar, reg? 661 00:32:54,460 --> 00:32:59,107 Lyne 1, 3-- lyne 1 en 3 het geen PHP delimiters. 662 00:32:59,107 --> 00:33:00,940 So wanneer die tolk sien hulle, dit is net 663 00:33:00,940 --> 00:33:03,220 gaan presies spoeg uit wat ek daar getik het. 664 00:33:03,220 --> 00:33:05,011 So dit is waar ek is al my waarna doen. 665 00:33:05,011 --> 00:33:11,220 Op die lyne 2 en 4, sien ons die heel vertroud $? php soort delimiters, 666 00:33:11,220 --> 00:33:15,210 sodat diegene twee lyne gaan voer as PHP. 667 00:33:15,210 --> 00:33:18,270 En dan op die lyn 5, ek het hierdie weird ding reg hier, reg? 668 00:33:18,270 --> 00:33:20,480 Hierdie hoek bracket vraagteken gelykaanteken. 669 00:33:20,480 --> 00:33:22,660 Ek sal selfs in 'n bietjie verder te vergroot. 670 00:33:22,660 --> 00:33:29,270 Jy kan sien dit is wat ek is praat oor net daar, hierdie $? =. 671 00:33:29,270 --> 00:33:33,420 >> Dit blyk dat dit is so algemeen dat die rede dat ons maak 'n stel van PHP 672 00:33:33,420 --> 00:33:36,055 delimiters is om uit te druk 'n waarde. 673 00:33:36,055 --> 00:33:37,430 En dit is al wat ons gaan doen. 674 00:33:37,430 --> 00:33:39,220 Maar daar is selfs snelskrif vir daardie. 675 00:33:39,220 --> 00:33:46,490 $? = Is PHP snelskrif om te sê iets soos $? PHP eggo die som 676 00:33:46,490 --> 00:33:48,350 van num1 en num2. 677 00:33:48,350 --> 00:33:51,900 So dit is net nog 'n snelskrif vir daardie. 678 00:33:51,900 --> 00:33:55,550 >> So as ek hardloop hierdie program, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Ek sal af zoom 'n bietjie. 680 00:33:57,530 --> 00:33:59,000 Gee my asseblief 'n nommer, 4. 681 00:33:59,000 --> 00:34:00,350 Gee my asseblief 'n tweede nommer. 682 00:34:00,350 --> 00:34:04,650 En omdat ek nie regtig omgee tipes data in PHP, kan ek sê 4,8. 683 00:34:04,650 --> 00:34:07,160 Die som van hierdie twee getalle is 8,8. 684 00:34:07,160 --> 00:34:10,179 Daardie funksie optree pretty much presies dieselfde as ons sou verwag, 685 00:34:10,179 --> 00:34:10,989 ook. 686 00:34:10,989 --> 00:34:13,114 En ek het nog een oop hier genoem dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Probeer weer. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Ek het nog een hier genoem dice1.php, wat ook te sien, 691 00:34:33,280 --> 00:34:37,440 het die vraag hoekhakie merk gelykaanteken notasie daar, 692 00:34:37,440 --> 00:34:40,659 maar sien dat ek in hierdie geval is roep die funksie rand, soos wat jy 693 00:34:40,659 --> 00:34:42,790 kan verwag genereer 'n ewekansige getal. 694 00:34:42,790 --> 00:34:46,889 "Jy gerol a," en dit gaan bereken paar random nommer, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Sodat my sal getal gee in die reeks van 1 tot 6. 697 00:34:49,989 --> 00:34:53,040 >> Onthou dat mod 6 sou gee my 'n aantal in die reeks van 0-5, 698 00:34:53,040 --> 00:34:56,630 maar as ek dice rolle simuleer, en dit is wat ek hier doen, 699 00:34:56,630 --> 00:35:00,040 Ek wil nie hierdie dice om te gaan van 0 5, ek wil dice wat gaan van 1 tot 6. 700 00:35:00,040 --> 00:35:02,800 En so dit is 'n manier om te kry my in die reeks van 1 tot 6. 701 00:35:02,800 --> 00:35:04,720 Ek is hierdie keer doen. 702 00:35:04,720 --> 00:35:08,630 So glo ek rollende twee dobbelstene in hierdie program. 703 00:35:08,630 --> 00:35:15,210 >> So ek sal my skerm skoon te maak, en ek sal php dice1.php doen. 704 00:35:15,210 --> 00:35:16,640 Jy gerol 'n 4 en 'n 2. 705 00:35:16,640 --> 00:35:19,156 En as ek die program weer, moet jy 'n 5 gerol en 'n 5. 706 00:35:19,156 --> 00:35:21,780 So elke keer as ek hardloop die program, Ek kry verskillende getalle, 707 00:35:21,780 --> 00:35:24,280 want elke keer as ek doen so is, is dit die begin van oor. 708 00:35:24,280 --> 00:35:27,250 Dit gaan om 'n nuwe te genereer stel van ewekansige getalle vir my. 709 00:35:27,250 --> 00:35:29,790 >> So as ons gebruik word om aktiewe programme van C, 710 00:35:29,790 --> 00:35:32,520 ons gebruik om te tik ./ die naam van 'n program, reg? 711 00:35:32,520 --> 00:35:35,090 Dit is hoe ons almal gedoen het van ons programme in C so ver. 712 00:35:35,090 --> 00:35:37,555 Ons kan dit doen in PHP sowel deur iets te voeg genoem 713 00:35:37,555 --> 00:35:40,026 'n kaboedel die top van ons PHP lêer. 714 00:35:40,026 --> 00:35:41,400 Ek weet dit is soort van 'n dom woord. 715 00:35:41,400 --> 00:35:44,540 Dit is kort vir hash bang. 716 00:35:44,540 --> 00:35:46,300 Dit is die eerste twee karakters daar. 717 00:35:46,300 --> 00:35:50,030 Onthou ons uitroepteken noem dikwels 'n knal in rekenaarwetenskap. 718 00:35:50,030 --> 00:35:51,690 Dit is ook mag wees vir 'n skerp knal. 719 00:35:51,690 --> 00:35:53,273 Daar is 'n paar maniere om dit te interpreteer. 720 00:35:53,273 --> 00:35:57,320 Maar dit is basies 'n spesiale soort van beveel dat die PHP tolk 721 00:35:57,320 --> 00:36:00,160 verstaan ​​as, o, ek wil jy hierdie program uit te voer, 722 00:36:00,160 --> 00:36:05,250 wat blykbaar / gebruiker / bin / php, wat is eintlik waar die PHP tolk 723 00:36:05,250 --> 00:36:08,590 spesifiek lewens op ons stelsel. 724 00:36:08,590 --> 00:36:12,530 So it's-- wat hier gebeur is die tolk verstaan, o, 725 00:36:12,530 --> 00:36:17,270 Ek glo veronderstel om te gebruik in hierdie program hierdie lêer hardloop. 726 00:36:17,270 --> 00:36:20,010 En so het dit laat jou om oor te slaan oor die stap 727 00:36:20,010 --> 00:36:22,979 van om php something.php sê. 728 00:36:22,979 --> 00:36:25,020 Daar is 'n ander catch hier, en dit is dat as ons 729 00:36:25,020 --> 00:36:27,320 wil ons programme om werk soos verwag, het ons 730 00:36:27,320 --> 00:36:30,220 nodig het om iets te doen genoem 'n lêer toestemming verandering. 731 00:36:30,220 --> 00:36:33,380 En ons sal go-- en ons praat 'n bietjie bietjie meer oor lêer toestemming veranderinge 732 00:36:33,380 --> 00:36:37,550 in ons video op MVC, maar is dit voldoende om sê dat dit is wat jy hoef te doen 733 00:36:37,550 --> 00:36:42,760 ten einde te maak jou Php lêers uitvoerbare. 734 00:36:42,760 --> 00:36:49,330 So laat ons neem 'n blik op hierdie as ons finale voorbeeld oor in CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> So hier in IDE Ek het twee lêers in hierdie PHP gids wat nie blyk te wees 736 00:36:53,910 --> 00:36:55,310 genoem .php. 737 00:36:55,310 --> 00:36:58,170 Ek het 'n funksie genoem add-- Ek het 'n lêer genaamd add3 738 00:36:58,170 --> 00:37:00,650 en 'n lêer genaamd dice2. 739 00:37:00,650 --> 00:37:03,680 So laat ons neem 'n vinnige kyk en maak add3. 740 00:37:03,680 --> 00:37:08,300 En soos jy kan sien, aan die begin van my lêer Ek het hierdie kaboedel, reg? 741 00:37:08,300 --> 00:37:11,420 Dit hash merk uitroepteken. 742 00:37:11,420 --> 00:37:15,115 Nou, sal jy ook dalk agterkom dat een of ander rede, 743 00:37:15,115 --> 00:37:16,990 Ek het nie sintaksis het beklemtoon nie, 744 00:37:16,990 --> 00:37:20,198 en dit is wat ek vroeër verwys het, wat was dat as ek nie my lêernaam 745 00:37:20,198 --> 00:37:23,040 Php, ek het nie die voordeel het van accentuering nie. 746 00:37:23,040 --> 00:37:26,220 Hierdie lêer is net geroep add3. 747 00:37:26,220 --> 00:37:30,960 Sodat ek kan dit later op loop met ./ add3 en nie ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> So die reason-- dit is nog steeds fyn, dit is nog steeds geldig PHP, 749 00:37:33,680 --> 00:37:37,000 maar dit is nie sintaksis uitgelig, want hierdie lêer is nie genoem something.php. 750 00:37:37,000 --> 00:37:41,580 Dit is die enigste werklike verskil hier, plus die kaboedel. 751 00:37:41,580 --> 00:37:45,170 So laat ons sien wat gebeur wanneer Ek probeer en hardloop hierdie program. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, net soos ek sou met C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Add3 toestemming geweier. 754 00:37:53,190 --> 00:37:55,390 Dit is wat jy gaan om te sien of jy vergeet 755 00:37:55,390 --> 00:37:59,280 die chmod opdrag gebruik om te verander die regte van die lêer. 756 00:37:59,280 --> 00:38:03,845 >> Soos dit blyk, gereelde PHP lêers kan net nie uitgevoer word nie. 757 00:38:03,845 --> 00:38:06,970 Hulle kan geïnterpreteer, maar ons is iets wat 'n bietjie anders hier. 758 00:38:06,970 --> 00:38:07,761 Ons uitvoering daarvan. 759 00:38:07,761 --> 00:38:12,970 En so het ek nodig om die toestemming te voeg van die uitvoering, chmod n + x om add3. 760 00:38:12,970 --> 00:38:15,680 Dan kan ek ./ add3 sê. 761 00:38:15,680 --> 00:38:16,860 Gee my asseblief 'n nommer. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Die som van hierdie twee getalle is 11. 764 00:38:20,490 --> 00:38:26,530 >> Net so, het ek reeds chmoded dice2, so ek kan tik net ./ dice2, 765 00:38:26,530 --> 00:38:31,260 jy gerol n 1 en 'n 1, jy gerol n 5 en 'n 4, en so aan. 766 00:38:31,260 --> 00:38:33,680 >> So dit is pretty much die idee van 'n PHP sintaksis, reg? 767 00:38:33,680 --> 00:38:35,221 Daar is 'n baie om te kry deur, ek weet. 768 00:38:35,221 --> 00:38:39,160 Maar hopelik het jy nou gesien dat PHP is nie regtig wat verskil van C 769 00:38:39,160 --> 00:38:43,670 en regtig gee ons die vermoë om dinge te neem op 'n kerf of twee. 770 00:38:43,670 --> 00:38:48,230 Ons het nie regtig hoef te bekommer te veel about-- ons nie regtig 771 00:38:48,230 --> 00:38:51,605 het te veel bekommer oor die lae-vlak details ons 772 00:38:51,605 --> 00:38:52,980 moes bekommer oor met C, reg? 773 00:38:52,980 --> 00:38:56,170 Ons kan fokus op die hoër vlak dinge wat PHP 774 00:38:56,170 --> 00:39:01,090 ons toelaat om te doen en om te neem vir vanselfsprekend aanvaar dat dit sal werk vir ons. 775 00:39:01,090 --> 00:39:04,350 So dit gee ons die vermoë nou, oorgang van C na PHP, 776 00:39:04,350 --> 00:39:08,280 programme wat 'n baie meer is maak komplekse en miskien 'n baie meer robuuste. 777 00:39:08,280 --> 00:39:13,070 >> So ek hoop jy het baie pret werk met PHP, en ek is Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Dit is CS50. 779 00:39:15,050 --> 00:39:17,637