Doug LLOYD: Taigi mes padaryti daug darbo C, ir C yra tikrai cool kalba, nes ji suteikia jums gebėjimas nardyti tikrai žemo lygio į savo programas. Mes gauname daryti dalykus, kaip tikrai minučių kaip manipuliuoti individualūs baitų atminties. Prisiminkite, kad patarimų tikrai leidžia mums, kad lankstumo. Bet mes visada reikia turėti kad bauda grūdų detalumas mūsų programas? Tikriausiai ne, tiesa? Ir jei mes ketiname turėti kompromisas tarp buvimo gali padaryti tikrai, tikrai minutės dalykų ir tikrai, tikrai didelių dalykų, kad mes neturime galvoti apie, mes neturime įgyvendinti Šie tikrai didelis idėjos jei jie jau pastatytas už mus, paprastai pastato didelė programos arba stambių projektų, mes tikriausiai klysta į šoną padarius daugiau kalba Daiktai pastatytas už mus, vietoj to, kad žemo lygio dalykų. Ir tai, kai PHP tikrai ateina. Dabar, viena iš priežasčių, kad mes mokome PHP CS50 yra tai, kad labai įkvėpė C. Ir iš tiesų, mano nuomone, yra tikrai du kamieninėms kalbos, kad yra labai dažnas šiandien. C ir Lisp. Ir jie kamieninių kalbos nes kiekvieno kito šiuolaikinio programavimo kalba, kuri sukūrė nuo tada įkvėpė viena arba kita sintaksiškai. PHP yra labai panašus sintaksiškai C, o kalbomis, pavyzdžiui, schemos, Pavyzdžiui, kuri Jūs galbūt girdėjote apie, yra labai įkvėpė kalba vadinamas Lisp, kuris yra vyresnio amžiaus, kalba. Taigi tos priežasties mes mokome PHP CS50 yra tai, kad žinant C, kaip iš esmės kaip jūs darote šiuo metu, įlaipinami PHP, kuri suteikia Jums gebėjimas daryti daug aukštesnio lygio dalykus nei C daro, yra ne kad daug apie kliūtį, nes jūs jau turite Pagrindinė idėja sintaksę. C buvo maždaug už beveik 45 metai šiuo metu. PHP buvo maždaug apie 20 metų. Ir tuo, kad 25 metų tarp programuotojų, Nustatyta, kad jie būtų kiek o turi aukštesnio lygio gebėjimus, ir klaidų ir kovos iš 20 metų, kai tarp lėmė PHP ir kitų šiuolaikinių kalbų. PHP puikus pasirinkimas kalba programinė įranga kad allow-- už Programinė įranga that-- kur jus reikia daryti dalykus, kad C iš tikrųjų yra sudėtinga. Taigi, pavyzdžiui, darbo su styginiams C yra labai sudėtinga, nes kaip mes žinome, įsipareigojimų C yra tikrai tik matricos simbolių. Tai ne įmontuotą duomenų tipas. O gal labiau iš esmės, ką mes net nebuvo padengti C, Ką daryti, jei jums reikia padaryti, Kai kurie kompiuterių tinklų? Gerai? C turi gebėjimą tai daryti, bet tai taip slaptas ir taip sunku iš tikrųjų. Ar nebūtų malonu, jei kalba turėjo built-in, lengvai įgyvendinti tinklų? Ir PHP yra kalba, kuri leidžia, kad arba palengvina, kad gana šiek tiek daugiau. Kaip jau sakiau, PHP yra labai labai įkvėpė "C" Sintaksė yra labai panašūs. Ir todėl ji turėtų tikiuosi padaryti perėjimas nuo vieno prie kito šiek tiek minkštesnė nei kai Kitos kalbos gali būti. Norėdami pradėti rašyti PHP, tiesiog atverti failas su Php failo plėtinys. Techniškai tai nėra iš tikrųjų reikia, bet jei norite dalykų, pavyzdžiui, sintaksės pabrėžiant IDE, todėl šios rūšies pavadinimai, ar kintamųjų vardai, funkcijos, žinote, iš kalbos žodžius yra pabrėžtas specifinė spalva, jums paprastai noriu pavadinti failus su ypač failo plėtinys. Taigi mes pavadintas mūsų failą su .php pratęsimo, bet tada taip pat su PHP, visi PHP kodas rašome, kad Failas turi būti uždengtas šių PHP separatoriai, kad mes matome čia ekrane. Kampinis laikiklis? Php pradėti. Tada mes rašome visi mūsų PHP kodas, kuris norime tarp. Ir tada ? kampas laikiklis uždaryti. Jei mes to nepadarysime, tada kas nutiks? Jis nesiruošia į avariją. Jis nesiruošia tikrai sugadinti mūsų programą. Bet jis nesiruošia turėti poveikis, kad mes norime. Kas nutiks, tikrai, yra kad kai mes išbandyti ir paleisti šią programą, viskas ne tarp tų separatoriai bus išspausdintas pažodžiui. Jis nesiruošia realiai vykdyti kodą, jis ketina tik atspausdinti jį pažodžiui. Dabar kodėl atveju? Taigi C yra tai, kas vadinama kaip parengtą kalbą. Jūs tikriausiai susipažinęs su iš padaryti savo programas žingsnis, tekinimo .c failus ir .h failus į vieną vykdomąjį su markę, ypač naudojant Klingsėti kaip mūsų kompiliatorių. PHP, nors nėra turi šį ekvivalentą. PHP yra kas vadinama aiškinama kalba. Ir ką tai reiškia? Na, tai reiškia, kad mes neturime konvertuoti Mūsų kodą į nulių ir iš anksto. Atvirkščiai, ten programa, kuris taip pat vadinamas PHP, kad supranta, PHP ir gali rūšiuoti padaryti jį skristi. Tai tikrai nėra tiksliai tiksliai, bet tai gana gera analogija kas vyksta. Tai žodžiu tiems, nuliais ir tie skristi. Ir todėl, jei jis nežino, Kaip tvarkyti kažką, jei jis nežino, kaip procesas PHP, tikriausiai norėjau įdėti, kad tekstą ten, tiesa? Jūs tikriausiai norėjo įdėti kodą ten, net jei ji nėra tarp PHP-- PHP separatoriai. But-- todėl jis nesiruošia ištrinti tai už jus, tai tik ketina iš esmės jį išmeskite. Taigi jis ketina spausdinti jį į ekraną. Tai atrodo, kad tai blogai dalykas, bet iš tikrųjų tai bus tikrai geras dalykas, nes mes matyti, kai mes kalbame apie PHP Web Development, nes tai reiškia, kad mes galime prikaišioti PHP ir HTML. Mes galime naudoti juos kartu sukurti daugiau dinamišką internetinį puslapį. Bet daugiau apie tai į Vaizdo PHP Web Development. Taigi, kas yra PHP sintaksė? Štai ką šis vaizdo įrašas yra visa informacija apie. Pakalbėkime apie tai. Taigi, norint pradėti, kintamieji. PHP kintamieji egzistuoja. Yra tik du dideli skirtumai nuo C Pirmoji yra ta, kad ten ne tipo specifikatorius. Neturime pasakyti int, char, plūdės, visi, kad kita. Neturime daryti, kad nebėra. PHP yra modernus kalba. Tai gali išsiaiškinti, kas esate bando daryti arba padaryti geriausias atspėti, ką jūs bandote daryti. Taigi tai gana gražus. Kitas dalykas yra tai, kad visas kintamąsias pavadinimai turi prasidėti dolerio ženklas. Tai tiesiog kažkas priprasti. Tai šiek tiek keista, nes tai, kad PHP gali suprasti Kas yra kintamasis, o kas ne. Taigi kiekvieną kintamojo vardas prasideda dolerio ženklas. Taigi C mes galime ką nors pasakyti kaip tai, int x = 54. Neturime daryti, kad nebėra PHP. Galime tik pasakyti, $ x = 54. Ir galėtume pasakyti, pavyzdžiui, C, jei būtume svaras-įtrauktas CS50 .h antraštės failas, mes galime pasakyti, styginių frazė = "Tai CS50". Neturime padaryti, kad PHP, nors. Galime tik pasakyti $ frazę = "Tai CS50". Ir iš tiesų, styginių dabar built-in duomenų tipas PHP, ar veikiau PHP supranta kas eilutė yra. Tai atskiras nuo masyvo simbolių, kaip tai yra C Visi jūsų mėgstamiausia sąlyginiai teiginiai iš C vis dar yra prieinami jums naudoti. Taigi nėra didelė perėjimas ten. Mes galime say-- mes galime turėti jei ataskaitose, kaip šis. jei $ y 43 arba $ z = 15. Taigi tai gana paprasta. Mes galime turėti, jei ir kitur. Mes galime turėti, jei ir kitur, jei. Ir pastebėsite kažką labai gražus čia, ir tai yra tarsi vienas iš tų Privalumai PHP, palyginti su C, pranešimu kokią funkciją mes ne naudojant čia? Mes naudodami == į palyginkite kintamasis, $ vardas, į eilutę. Mes negalėjome padaryti, kad C, tiesa? Mes turėjo naudoti funkcija vadinama StrComp arba StrEndComp ar su juo susijusių pusbroliai. Ir taip jau matome šiuos privalumus. Neturime ką nors padaryti kaip kvaila ar galbūt unintuitive kaip skambinti funkcija vadinama StrComp jei aš tik noriu išbandyti ar vertė yra lygi eilutę. Galėčiau tiesiog naudokite lygus lygiomis teisėmis, kaip aš galėjau daryti ką nors kita. Taigi ten privalumas. Kartais, beje, jums gali matyti kitur, jei taip vienu žodžiu, elseif. Ir tai viskas OK PHP taip pat. Taigi kartais jūs galite pamatyti, kad. Tai ne klaidos. PHP tikrųjų supranta elseif. Aš nežinau, kodėl jie nusprendė įgyvendinti, kad bet kaip mes matėme daug kartų visoje mūsų video šiol, mes programuotojai tai patinka jei mes galime padaryti kažką greitai, taip atsikratyti tos erdvės matyt didelis privalumas. Štai tada ir elseif. Mes taip pat turime trejopo operatorius, Prisiminkite klaustukas gaubtinės žarnos, už tikrai trumpą formą, jei dar ar sąlyginė šakojasi. Ir, matyt,, šioje, ką mes bandome padaryti čia yra priskirti kintamajam $ raidžių arba true arba false, priklausomai nuo to, ar $ var yra raidinis simbolis. Taigi, tai yra gana panašus į IsAlpha kad mes susipažinę su iš C. Tai tarsi iš PHP ekvivalentą. Ši funkcija yra, matyt, vadinamas ctype_alpha, bet tai kaip mes tai darome PHP. Taigi visa tai bus taip, jei $ var yra raidė, $ laiškas yra tiesa. Jei $ var nėra raidžių, $ laiškas yra klaidinga. Mes taip pat turime jungiklis pareiškimus dar. Mes prisimename tuos iš C taip pat. Pačiame viršuje ten, tai kaip mes tai darome kažkas panašaus GET int arba gauti eilutę. Taigi PHP turi, kad pastatyta. Mums nereikia, kad CS50 biblioteką nebėra. Mes galime tiesiog naudokite funkciją readline. Ką tai ketina padaryti, tai Spausdinti iš pranešimo: "Jūsų valstybė, Prašome, "ir tada mirksi eilutę laukia prie įėjimo vartotojas tam tikra informacija. Dabar pastebėsite, ką dar mes galime padaryti su jungikliu. Jei jūs jį naudojo anksčiau, jums gali prisiminti, kad jungiklis apsiriboja gana daug skaičių ir simbolių, tačiau dabar mes galime naudoti eilutes. Ir iš tiesų, jungiklis pareiškimas PHP yra gana šiek tiek lankstesnis nei jo pusbrolis iš C. Kilpas. Tiesiog kaip sąlyginių visi seni draugai yra vis dar ten. Mes turime, o kilpas, kad įskaitomi nuo 1 iki 100, šiuo atveju. Mes padaryti, o kilpos kad skaičius nuo 1 iki 100, ir mes turime kilpų kad skaičius nuo 1 iki 100. Taigi ne didelis šuolis ten. Sintaksė yra gana kiek tiksliai tas pats, išskyrus dabar mes naudojame dolerio ženklas kintamasis, o ne skelbiantis sveikasis kintamieji arba kažką panašaus, kad mūsų skaitikliai. Štai kur viskas gauti daug geriau nei C, nors. Masyvai. Taigi Prisimenu, kai mes buvome kalbame apie C, siekiant mums augti ir trauktis informacijos rinkiniai, mums reikia rūšiuoti pagal nutylėjimą į šį susietojo sąrašo idėja, nes C matricas buvo fiksuotas dydis. Mes negalime trauktis juos. Mes negalėjome juos auginti. Mes turėjome perskirstyti atminties ir daryti visa tai beprotybė arba naudokite susijusių sąrašus, kuriuose imtis gana šiek tiek daugiau erdvės. Bet PHP, matricos nėra fiksuotas dydis nebėra. Jie gali augti ir jie gali susitraukti. Taigi dar kartą, šie 20 metų, kad egzistavo tarp pirmojo išleidimo C ir pirmoji laida PHP, mes nusprendėme, kad, žinote, tai būtų tikrai didelis jei galėtume tai padaryti. Ir taip mes įgyvendinome tai. Taigi PHP masyvų nėra nustatyta dydis, ir dėl PHP tikrai ne turi programuotojas priekyje atsukta sąvokos tipų, mes galime maišyti duomenų tipai mūsų masyvų, taip pat. Taigi, mes net neturime naudoti visas sveikieji skaičiai arba visus plaukiojančios taškai, mes gali turėti visi mišinį skirtingų rūšių į vieną masyvą. Skelbiu masyvas yra gana paprasta. Tai tiesiog kaip bet kuris kitas kintamasis. $ nums = array (1, 2, 3, 4), masyvo yra funkcija kad pastatytas į PHP, kad sukurs jums masyvo. Tai sukuria keturių verčių matrica, numeriai, šiuo atveju, vadinamas $ nums. Ir yra daugiau nei vienas būdas tai padaryti. Ir mes ketiname pamatyti šį PHP aikštelė. PHP buvo sukurtas daug skirtingų žmonių ir auga ir auga ir auga. Yra paprastai ne tik dviejų ar Trys būdai, kaip ką nors padaryti, PHP, ten paprastai kaip 10 ar 20. Štai tik dar vienas bendras būdas paskelbti masyvą. $ nums = kvadratinių laikiklis 1, 2, 3, 4. Taigi tai yra tarsi panaši į C anketa kampu br-- garbanotas petnešomis notacijos, o. $ - ar tai būtų int nums aikštė skliausteliuose lygus garbanotas petnešomis 1, 2, 3, 4. PHP tai $ nums = aikštė kronšteinai 1, 2, 3, 4. Tačiau abu šie pavyzdžiai čia man duoti daroma keturių masyvo šiuo atveju sveikieji skaičiai. Ką daryti, jei noriu smeigtuko kažką dabar? Na galiu tik pasakyti $ nums 4, kuris vėl, mes vis dar skaičiuojant nuo 0 Spragtelėkite čia PHP programavimo kalba, būtų penktas elementas masyve. Galiu tik pasakyti, kad. Nesiruošiu patirti SEG kaltės, nes mano matrica yra tik augs, kad tilptų, kad. Tai gana gražus, tiesa? Ir iš tiesų, aš net nereikia nurodyti, kur aš noriu įdėti ją. Galiu tik pasakyti, tai ir tik smeigtuko ją tiesiai ant iki galo, ar galėjau net tik pasakyti $ nums 20 arba 1000. Jis tikrai ne klausimas. Jis vis dar tik ketina smeigtuko ją tiesiai ant galo. Taigi aš galiu augti ir as-- mes nesiruošia ją padengti čia bet galiu sumegzti arba juostelių elementai iš masyvo, taip pat, ir masyvo susitrauks, kad tilptų kad dabar trūksta arba tuščia vieta. Yra dar vienas būdas smeigtuko kažkas ant masyvą, kuris yra funkcija vadinama array_push. Taigi dar kartą, tik šį būties idėja galėtų daryti tai, ko daug skirtingų būdų. Taigi mes matėme tris skirtingus būdus dabar smeigtuko kitą elementą į masyvą. Taigi, tai prideda dar vieną elementą į $ nums masyvo pabaigos. Ir mes galime išmaišyti mūsų duomenų tipus. Taigi, aš gali turėti ne masyvas 1, 2, 3, 4, bet 1, teisinga, 3, 4, kur teisinga yra loginis, ir tada jei noriu kursas apie kito elemento to masyvo, galbūt eilutė, eilutė "penki", galėčiau tai padaryti. Ir dabar mano masyvas būtų būti 1, teisinga, 3, 4, penkių. Žodis penkių, o ne sveikas skaičius, 5. Taigi lankstumas daug ten. Lankstumą gauna dar geriau, nors, nes PHP paramą kažką vadinamas masyvą. Ir mes tarsi miglotai kalbėjo apie Association masyvai C į maišos lentelių kontekste, nes kas asociatyvūs matricos yra tikrai visi apie darysite raktą vertė pora rodymo. Ir šiuo atveju, jei keys-- mes susipažinę su masyvų iš C, raktai indekso numeriai. 0, 1, 2, 3. Ir vertybės yra tai, ką mes matome, kad masyvo 0, 1 masyvas, 2, ir taip toliau. Taigi raktai indeksai, ir vertybės kas toje masyvo vietoje, nurodyta šio indekso. Bet PHP, mes neturime tai padaryti sąvoka masyvo 0, 1 masyvas, 2 nebėra. Dabar mes galime naudoti faktines žodžius į žemėlapį klavišus vertybes. Ir taip galėčiau pasakyti kažką panašaus į tai. Galėčiau sukurti masyvą naudojant kvadratinių laikiklis sintaksė taip. $ picos = kvadratinių laikiklis "sūris" ir tada Ši dviguba rodykle žymėjimo rūšiuoti, 8.99 "Peperoni" arrow 10.99-- 9.99, ir taip toliau. Ir taip, kas čia vyksta? Ką aš iš tikrųjų daro? Aš sukuriant pagrindines vertė pora rodymo. Taigi, vietoj to, suprantama, pavyzdžiui, picos 0, 1 vnt, picos 2, Dabar galiu pasakyti, picos sūris, picos Peperoni, ir kreiptis į vertybes susijęs su jais. Taigi, čia yra mūsų raktai žalia spalva. Sūris, Peperoni, daržovių, buivolų vištienos. Čia yra rodyklė, kuri leidžia Tai rakto pora žemėlapių. Ir tada čia yra vertybės tuo masyvo vietą. Taigi, tai tarsi sakydamas masyvo 0 lygus 8.99. Svarbiausia yra 0. Vertė yra 8,99. Dabar galiu pasakyti, masyvo sūrio, arba tokia atveju picos sūris, sūris yra raktas, ir ką manau esant picos sūris yra 8.99. Štai vertė, kad aš ten rasti. Taigi galiu pasakyti, kas patinka. $ picos sūris = 7.99. Pasakykite man kyla pardavimą. Noriu dis-- Noriu lašas Sūrio picos kaina. Arba galiu naudoti daržovių picos kaip dalis būklės, ar galiu pridėti naują elementą į mano masyvas, kaip galėčiau tai padaryti anksčiau. Galiu pridėti naują elementą į tai masyvą su rakto "kumpio" o vertė 13.49. Bet tai tarsi pristato problemos jei jūs manote apie tai per sekundę. Kaip mes pakartoti per šio masyvo? Teisė? C, mes tiesiog turime už kilpos, paprastai, kad būtų paleisti nuo 0 į dydis masyvo minus 1. Masyvas yra n elementų tuo, The Galioja indeksai yra nuo 0 iki n minus 1. Taigi, mes galime naudoti už kilpa žingsnis per kiekvieną elementą. Bet tai tikrai ne atveju nebėra, tiesa? Dabar, kai mes turime rakto pora rodymo, kur raktai yra žodžiai, kaip mes pakartoti per visus žodžius? Na, laimei, PHP turi būdas susidoroti su tai taip, ir todėl mes peršokti atgal į kilpų sekundę įvesti ketvirtą rūšies kilpa, kad egzistuoja PHP vadinamas foreach ciklą. Ir kas foreach ciklas daro, yra tai iš esmės tą pačią idėją. Jūs galite naudoti ją bet masyvo natūra. Tačiau tai iš esmės pati idėja kaip kilpa, išskyrus, o ne naudojant indekso numeriai, jūs tiesiog keistai sintaksę kur skambinate kiekvieną elementą pavadinimas pagal šią kilpą tikslais. Taigi, šiuo atveju, foreach ($ masyvas kaip $ raktas). Iš esmės, kaip kad komentaras pastabose, viduje tos foreach ciklas, jis ketina eiti per kiekvieną elementas $ masyvo, kuris paprastai yra bus Association masyvas, bet tikrai gali būti bet kuris iš masyvo natūra kad norite PHP. Ir kiekvieną kartą, kad už kilpa jums gali sakė $ masyvas skliaustus $ i, galite tiesiog pasakyti $ klavišą. Taigi, kad $ raktas tampa už kiekvieną slapyvardį indeksas PHP masyvą, ir todėl jūs galite naudoti ją kaip kad. Taigi, pavyzdžiui, mes dabar turime mūsų picos masyvo. Aš rūšies sukišti ją į ten kampe todėl mes galime jį naudoti padaryti greitai pavyzdys. Jei aš sakau foreach ($ picos, kaip $ pica), gerai, kas vyksta? Na, aš ruošiuosi kartoti per kiekvieną vienas elementas iš masyvo $ picos, ir taip, aš ruošiuosi skambinti kiekvienas elementas, kai aš viduje iš to organo kilpa, $ pica. Štai tarsi stovėti-in, prisiminti, kad $ pica yra stendas-in sakydamas $ picos skliaustus $ i jei mes buvome naudojant už kilpos, kur mes gali eiti nuo $ i = nuo 0 iki, šiuo atveju, $ i = 3. Jei mes neturėjome rakto poros čia, tai būtų elementas 0, 1, 2, 3, ir mes naudoti for ciklas eiti $ picos 0, $ picos 1, $ 2, picos $ picos 3 d. Taigi, dabar tik $ pica pakeisti tos individualios raktu. Taigi, kas tai vyksta atsispausdinti? Aš spausdinti $ pica. Ką aš ketinu rasti at-- jei aš atsispausdinti $ picas, $ i? Teisė? Jei aš ruošiuosi atsispausdinti i-asis elementas picos, ką aš ketinu spausdinti? Aš ruošiuosi atsispausdinti vertės toje vietoje, tiesa? Pavyzdžiui, jei mes darome ši į C kontekste, mes neturime paprastai naudoti mūsų iteratorių kintamasis, int i = 0, i yra mažesnis nei 3, i ++, spausdinti 0, 1, 2, 3. Mes spausdinti masyvo 0, 1 masyvas, 2, 3 masyvas. Ir taip, kas tai spausdina tai. Tai kainų sąrašas. 8.99, 9,99, 10,99, 11,99. Dabar greitai pastaba čia. Foreach ciklas nebūtinai spausdinti dalykų tvarka. Tai nėra garantuojamas. Ji paprastai daro. Tai paprastai remiasi į tam kurie elementai yra pridedami prie masyvo, tad tiesiog turėti tai omenyje. Tai gali būti ne iš eilės. Bet foreach ciklas bus pakartoti visoje kiekvieno elemento nagrinėjamo masyvo. Šiuo atveju, vėl, kad masyvas $ picos. Galiu pakeisti sintaksę, nors, jei Noriu tiek klavišą ir vertę. Vietoj sakydamas $ picas kaip $ picos, galiu pasakyti tai. Ir jei jums atrodo, ką aš paryškinamas žalia čia jis atrodo kaip esminė vertybė poros žemėlapių. Ir todėl, jei you-- net jei esate ne visiškai tikras, ką jis ketina daryti, jūs tikriausiai galite atspėti kad $ įdaras vyksta būti šiuo atveju raktas ir $ kaina bus vertė. Taigi, aš pakeisti dabar kiekvieną elementą nuo $ picos, kaip rakto pora, ir dabar aš galiu kreiptis į raktą ir vertė, kurie gali praversti, pavyzdžiui, taip. "Visa" - tai daug spausdinimas vyksta here-- "visuma" papildymo "pica kainuoja $" kainą, o tada Aš atsispausdinti laikotarpis ir backslash n. Taigi dabar, pranešimas vėl aš turėti prieigą prie pagrindinis, $ įdaras, ir vertės, $ kaina. Taigi jūs galite atspėti, kas tai ketina atsispausdinti? Yra daug spausdinimo ataskaitose daug, bet ten tik vienas Backslash N, todėl ketina spausdinti kažką on vieną eilutę kodo entire--. Jei aš galiu kreiptis į raktą ir vertė, tada dabar o ne tik, kad galėtų spausdinti kainas, Galiu atsispausdinti kažką panašaus į tai. "Visa sūrio pica kainuoja $ 8,99." Ir dabar aš naudoju visus keys-- sūris, Peperoni, daržovių, Buffalo chicken-- ir vertybes. 8.99, 9,99, 10,99, 11,99 Taigi tai tik kitoks būdas padaryti foreach ciklą, kad vietoj tiesiog suteikia jums prieigą prie vertybių, jis tiesiog suteikia you-- ji suteikia jums Prieiga prie raktų ir vertybes. Taigi spausdinti informaciją. Aš jau padariau jam porą įvairių būdų, galite pastebėjau. Dvi funkcijos mes pirmiausia matyti yra spausdinimo ir aido. Ir gana daug visų ketinimų ir tikslais, jie tiksliai ta pati. They're-- ten labai subtilus skirtumas tai net neverta patekti į, bet iš esmės visur galite naudoti spausdinti jūs tikriausiai galite naudoti echo taip pat. Ir tai ne tik du. PHP turi daug skirtingų daug spausdinimo būdai dalykus, ir ji taip pat turi būdų, kaip integruoti kintamuosius į viduryje eilutę. Taigi prisimenu iš C, tai jums prisiminti, ką funkcija mes galime naudoti pakeisti kintamuosius į ką norime atspausdinti? Jūs tikriausiai naudoti šį veikti gana daug. printf, tiesa? Taigi tai yra tai, ką mes turėjome prieš viduje iš mūsų foreach kilpa kontekste. Mes turėjome šių penkių atskiri spausdinimo ataskaitos, nes tai buvo vienintelis Kaip aš tikrai žinojo tuo metu, Kaip atsispausdinti pranešimus. Aš nežinojau, kaip integruoti Kintamasis $ papildymo į mano PHP kodą. Na, jei aš tiesiog paimti laukinį spėti, printf, ji iš tikrųjų būtų dirbę. printf yra funkcija, kuri galiu naudoti PHP, kaip aš galiu jį naudoti C Ir taip kažką panašaus į tai, printf, vėl, mes susipažinę su tuo. Pirmasis% s pakeitė su $ įdaras vertės. Antrasis% s pakeitė su $ kainos vertės. Ir todėl aš interpellating, kuri yra tik išgalvotas būdas sakydamas aš klijuoti kintamuosius į tą vietą. Taigi, aš prijungti $ įdaras kur raudona% s yra ir $ kaina kur mėlynas% s yra, ir tada aš būtų gauti pranešimą, "Visa sūrio pica kainuoja $ 8,99." Ne vienintelis būdas aš galiu tai padaryti, nors. Gal aš noriu naudoti šį metodą. Tai iš tikrųjų, kas dažniausiai vadinamas kintamos interpeliacija. Galiu naudoti aidą. Aš galėtų naudoti spaudinį taip pat, kaip matysime. Bet kas čia vyksta? Pirmiausia, aš turiu pabėgti dolerio ženklas. Nes atsimenu, kai mes iš tikrųjų buvo spausdinti iš picų kainas, Aš iš tikrųjų buvo formatuoti juos kaip pinigų skaičiai dolerio ženklas. Bet mes naudojame doleris ženklai taip pat atstovauti kintamųjų vardai PHP, o ypač, kai aš naudojant šį metodą garbanotieji petnešomis kintamasis interpeliacija metodas, man reikia pabėgti mano dolerio ženklas, todėl ji nėra manau, kad aš kalbu apie kintamąjį. Tai vyksta iš tikrųjų, tiesiog atspausdinti dolerio ženklas. Taigi tarsi Analogizować jį tai, ką matote pabaigoje ten. Tai iš tikrųjų nėra Spausdinti Backslash N, tiesa? Jis spausdina naują eilutę charakterį. Tai is-- jis nesiruošia Spausdinti Backslash dolerio ženklas, jis ketina išspausdinti tik dolerio ženklas simbolių. Pačią idėją. Pabėgti sekas, ką šie dalykai yra vadinamas. Tačiau pastebite, kad aš nesu daro bet% s pavadavimų rūšiuoti, Aš tiesiog pažodžiui prijungti į šiuos kintamuosius. Ir taip this-- kas nutiktų čia yra tai, kad $ topping-- vertė vėl, tiesiog laikyti ką mes buvome kalbame apie taip far-- sūrio gaus prijungtas ten. Ir $ kaina būtų kokia reikšmė yra ne picos, skliausteliuose, sūris, kuris buvo 8,99. Ir taip, tai taip pat spausdinti "Visa sūrio pica kainuoja $ 8,99." Ir kaip sakiau, aš galėtų naudoti spausdinti čia vietoj echo, o funkcionalumas bus beveik lygiai tas pats. Būtų atsispausdinti tą patį. Yra dar vienas būdas tai padaryti, ir tai yra dar vienas privalumas PHP dirbti su stygos. Mes galime padaryti simbolių eilučių sujungimas. Mes galime tai padaryti C, taip pat, naudojant funkciją, vadinamą strcat, bet vėlgi, mes turėjome skambinti atskiras funkcijas. Tai buvo visas šis netvarka daryti. Mes turėjome svarą-yra string.h. Tai buvo gamyba, tiesa? Bet dabar galiu tik naudoti šią dot operatorius Jungiant eilutes kartu. Taigi, aš concatenating "visuma" ir tada nepriklausomai nuo $ įdaras yra, vertės nėra, ir tada kitas eilutė "picos kainuoja $" ir tada concatenating kokia nuo $ kainą yra, vertės nėra, ir tada pačioje pabaigoje aš Spręsti laikotarpis pasvirąjį n. Ir taip tai galėtų spausdinti "visuma", - vėl jei mes kalbame apie pirmą elementas tos picos array-- "Visa sūrio pica kainuoja $ 8,99." Laikotarpis, Backslash N, vėlgi, su $ įdaras ir $ kaina pakaito už tai, ką mes jau nurodyta mūsų foreach kilpa kaip rakto poros žemėlapių. PHP gali tvarkyti funkcijas. Funkcijos buvo tarsi neatsiejama C, kaip matėme. Kaip kintamųjų, mes nereikia nurodyti grįžimo tipo funkciją, nes tai tikrai ne klausimas. Ir mes neturime nurodėte duomenų tipų jokių parametrų, nes jie tikrai ne Nesvarbu, kaip mes matėme PHP. Kiekvienas funkcija yra įdiegta su funkcija raktinį žodį. Štai kaip mes nurodyti PHP kalba ką mes kalbame apie tai funkcija. Ir mes neturime spręsti pagrindinis ne visi, nes vertėjo, PHP interpretatorius, veikia nuo viršaus į apačią, nepriklausomai. Jei jis mato galite padaryti funkcija skambutis, jis bus eiti rasti skambinimo funkcijos, net jei jis ateina vėliau. Bet ji ketina skaityti iš viršaus į apačioje, todėl nereikia nurodyti, čia, kur jums pradėti. Jūs pradedate nuo 1 eilutėje jūsų PHP ir dirbti žemyn iš ten. Taigi čia yra, kaip mes norėtume sukurti funkcija vadinama hard_square. Tai, matyt, užima vieną parametras, kuris aš skambinti $ x. Ši funkcija yra sudėtingas tik iliustruoti įvairių dalykų. Mes vis dar turime grąžinimo vertybes. Aš naudoju for ciklas čia. Tačiau tai iš esmės tik, ką šis sudaro vos $ x $ x kartų. Ką aš iš tikrųjų daro tiesiog pridedant x 0 x kartų arba $ x $ nulinės x kartų. Bet tai iš tikrųjų tiksliai tas pats kaip dauginant $ x $ x kartų. Aš vis dar gali grįžti vertę, šiuo atveju $ rezultatas, ir aš atlikau PHP funkciją. Štai kaip jūs galite naudoti ją kontekste. Taigi gal aš viduje tam tikru PHP failą. Nuoroda mėlyna ten, kad Aš naudojau savo PHP skirtukus, kampas laikiklis klaustukas PHP. Tarp jų yra visi PHP, kad aš noriu rašyti. Taigi, aš, matyt, ketina get-- Aš ruošiuosi paskatinti vartotoją man duoti numerį, parduotuvė, kuri kintamasis, parduotuvė, kad kintamasis $ x, ką jie man davė. Tada aš ruošiuosi echo hard_square šios vertės, ir, matyt, vyksta smeigtuko naują eilutę taip pat, o vėliau ant aš apibrėžti funkciją hard_square taip kad kai aš padaryti skambinti hard_square, jis žino, ką aš kalbu apie. Dabar, aš taip pat galėtų padaryti kažkas panašaus į tai. Tai yra šiek tiek kitoks. Tai beveik tiksliai pats, ką mes matėme anksčiau, išskyrus vietoj sakydamas tik $ x ten kaip parametras hard_square, Aš sakau $ x = 10. Taigi, šis yra pavyzdys Gynybinės programavimas, saugojo savo programas nuo kenkėjiškų vartotojams. Tai yra vienas būdas padaryti tam tikrą klaidą tikrinti, kad mes tikrai ne turi kaip alternatyva C Galėtume niekada nurodyti numatytąją vertę kažką. Mes visada turėjo patikrinti ar, pavyzdžiui, jei mes padarėme paskambinti GetString, tai buvo Tinkamiausia jei iš karto po to, patikrinti, kad mes patikrino ar eilutę kad vartotojas davė mums nėra lygus nuliui, nes mes nenorime pradėti dirbti su null eilutę. Čia, tai yra būdas apsisaugoti nuo tai. Jei vartotojas nepateikia mums kažką kažkaip, ką mes ketiname daryti? Na, mes tiesiog pasakyti kokia jie nebuvo pateikti mums, mes tik ketina prijungti 10 vietoj. Taigi, jei jie nebuvo pateikti mums vertę, tiesiog naudokite 10 pagal nutylėjimą. Ir taip čia pastebėsite, kad aš padaryti kvietimas hard_square, bet ten ne laiku vartotojui, tiesa? Aš tiesiog padaryti tuščią pokalbį. Bet mano funkcija hard_square laukiasi parametrą. Kas tai vyksta atsispausdinti? Ji ketina išspausdinti 100, tiesa? Kadangi vartotojas nebuvo man nieko. Ir todėl aš tik ketina prisiimti kad 10-- 10 yra numatytoji reikšmė. Ir taip tai spausdinti iš 100 atskiroje eilutėje. PHP failus neturite būti tik vieną failą. Galite derinti kelis failus kartu, kaip jūs galite į C. būdas mes padarėme, kad C buvo paprastai padaryti šiek #include gauti header files ištrauktas. Mes nedarome, kad PHP. Mes darome kažką vadinama require_once. Ir tada ten visa ši dalykas, kas tai __dir__? Tai tiesiog ypatinga kintamasis, arba specialus pastovus, tikrai, kad nurodoma, ką jūsų dabartinis katalogas yra. Ir todėl jis ketina ieškoti Jūsų einamojo katalogo failo vadinamas cs50.php Šiame pavyzdyje čia ir jis ketina laikytis tą failą ne jūsų PHP programos viršuje darant prielaidą, kad jūs galėsite įdėti reikalauja kai eilėje prie jūsų PHP failo viršuje. Taigi PHP yra visų pirma naudojamas, bet ne išimtinai naudojamas, kaip internetinę programavimo kalbą. Tai tikrai, kaip ji atėjo į būti. Bet tai yra visiškai kalba, kaip mes matėme. Mes matėme gana daug visus dalykus , kad ji gali padaryti, kad yra panašūs į C, ir tai gali padaryti Heck daug daugiau nei tai. Bet kadangi tai yra pilnas kalba ir mes gali padaryti komandinės eilutės programų į jį. Mes galime paleisti komandinę eilutę programas. Visa tai reikalauja paleisti komandą eilutės programa, kad parašyta PHP yra tai, kad jūs turite PHP interpretatorių. Taigi, tai tarsi analogiškas atsižvelgdamas į savo sistemą kompiliatorių Jei norite kompiliuoti savo C kodą ją paversti vykdomąjį failą. Jūs turite PHP interpretatorių kad egzistuoja jūsų sistemoje taip, kad jūs galite suprasti PHP failus. Darant prielaidą, kad jūs darote, ir paprastai tai vertėjas yra vadinamas PHP, ir tai paprastai siejama su dauguma parsisiųsti arba įrenginių PHP kad jūs galite gauti internete, ir, žinoma, iš PHP vertėjo vardas mes turime CS50, IDE. Viskas, ką jums padaryti, tai tipo php failą. O ką jūsų programa s ketina padaryti, tai jis ketina paleisti per vertėjas, tai ketina ignoruoti viską, kas ne tarp klausimą mark-- arba kampas laikiklis klaustukas PHP, PHP separatoriai ir atspausdinti jį, ir jis bus interpretuoti ir vykdyti kodas viduje PHP separatoriai. Taigi leiskite pop perkelti į CS50 IDE ir turėti pažvelgti į PHP failus pora, veikia PHP failus pora, į komandinės eilutės sąsaja CS50 IDE. Taigi čia mes esame CS50 IDE, ir aš ėmėsi laisvę atidaryti failą pavadinimu hello1.php. Ir, matyt, šio turinys failas yra tik PHP separatoriai ten, ir tarp jų, echo ("Sveikas, pasauli"). Tai gana paprasta PHP programa. Aš tik ketina slinkti žemyn mano terminalo lange čia ir aš ruošiuosi rašyti php hello1.php, paspauskite Enter. Sveikas Pasauli. Tai tikriausiai, kas mes buvome tikisi, kad tai padaryti, tiesa? Vykime ir imtis kitą pažvelgti programą. hello2.php. Beveik tas pats, ne daug vyksta čia. Šį kartą, nors aš ruošiuosi greitai vartotojas duoti man savo vardus. Aš naudoju tą readline funkciją dar kartą. $ pavadinimas = readline. Štai greitas, "Kas yra tavo vardas?" Matyt aš spausdinimas jis savo linija. Ir tada, todėl linija žemiau kad bus laiku , kuriame vartotojas gali įvesti savo vardą. Ir tada aš naudoju šiek tiek kintamasis interpeliacija čia on-line 3 spausdinti "labas" ir kokia vartotojas tipų. Taigi tai yra analogiškas sakydamas Sveiki, kablelis,% s, jeigu mes buvome naudojant printf C Taigi eikime ir interpretuoti šią programą. Taigi dar kartą, aš slinkite žemyn mano terminalo lange. PHP hello2.php. Koks tavo vardas? Doug. Sveiki, Doug. Aš taip pat turiu kitą failas, vadinamas hello3.php. Aš ruošiuosi išvalyti ekranas su valdymo L, ir aš ruošiuosi atlikti, kad. Koks tavo vardas? Doug. Sveiki, Doug. Taigi elgesį yra identiškas hello2.php, bet kodėl jis hello3.php? Na, čia yra skirtumas. Šiuo atveju pranešimas kad čia 1 eilutę, Turiu kažką, kad nėra tarp PHP separatoriai. Aš tiesiog spausdinti out-- arba aš tiesiog įvedėte, "Kas yra tavo vardas?" Kai PHP interpretatorius mato tai, neturi jokios idėjos, kaip ją interpretuoti kaip PHP, ir todėl vietoj jei, tai tik ketina jį išspjaukite. Taigi pastebėti on-line 3 dabar mano kvietimą į readline, nėra greitas nebėra. Aš tiesiog iš tikrųjų vyksta, kai to-- PHP interpretatorius mano, kad tai, jis ketina išspausdinti "Koks tavo vardas?" Tada jis mato, oi, gerai, here's-- visa kita bus aiškinama kaip PHP, todėl Štai kodėl tai veikia. Aš neturiu būtinai paprašys vartotojas to-- viduje readline, Aš galiu tik jį už iš PHP separatoriai ir leisti vertėją tiesiog atsispausdinti jį man. Taigi jūs neturite iš tikrųjų turi tik turėti vieną rinkinį PHP separatoriai į savo programą. Jūs iš tikrųjų gali turėti keletą iš jų, atidarymo ir uždarymo juos, kaip reikia. Taigi leiskite pažvelgti esant programų pora į CS50 IDE, kur mes iliustruoja šią mintį, turintys keli komplektai apibrėžiamas PHP. Gerai, kad aš atidarė failą čia vadinamas add1.php. Ir pastebėti, kas vyksta čia. Tiesiog kaip ir anksčiau, aš turiu vieno PHP rinkinys separatoriai. Aš ruošiuosi atsispausdinti pranešimą "Prašome duoti man numerį." Tada aš ruošiuosi skaityti liniją ir laikykite jį kintamojo $ NUM1. Tada aš ruošiuosi spausdinti iš naujo. Duok man antrą numerį. Skaityti nuo vartotojo, parduotuvėje linija ką jie įvedėte į $ NUM2. Įtraukti juos kartu ir laikyti, kad sukelti kintamojo vadinamas $ suma, ir tada atsispausdinti, "The suma iš šių dviejų skaičių yra ", tada Zainterpelować ten kintamasis $ suma. Taigi tegul tiesiog paleisti tai per vertėją patvirtinti, kad tai, ką mes tikimės. PHP add1.php. Prašau duoti man numerį, 3. Prašau duoti man antrą skaičių, 4. Dėl šių dviejų skaičių suma yra 7. Štai 3 + 4. GERAI? Taigi nieko siaubingai išgalvotas ten. O dabar tegul atverti add2.php. Čia aš turiu PHP pora apibrėžiamas rinkiniai ten, tiesa? Linijos 1, 3-- linijos 1 ir 3 neturi PHP skirtukus. Taigi, kai vertėjas mato juos, tai tik ketina išspjauti tiksliai ką aš įvedėte ten. Štai kur aš daro visi mano raginimo. Dėl 2 ir 4 eilučių, matome labai susipažinęs $? php tarsi separatoriai, taip tos dvi eilutės yra ketina vykdyti kaip PHP. Ir tada eilutėje 5, turiu tai Keistas dalykas čia, tiesa? Šis kampas laikiklis klaustukas lygybės ženklas. Aš net padidinti šiek tiek toliau. Jūs galite pamatyti tai, ką aš kalbame apie teisę ten, šį $? =. Pasirodo, kad tai taip įprasta, kad priežastis, kad mes atverti PHP rinkinį separatoriai yra išspausdinti vertę. Ir tai viskas, ką mes ketiname daryti. Bet ten net sutrumpinimas už tai. $? = PHP sutrumpinimas sakydamas kažkas panašaus $ Php echo suma iš NUM1 ir NUM2. Taigi tai yra tik dar vienas sutrumpinta už tai. Taigi, jei aš paleisti šią programą, PHP add2.php. Aš padidinti žemyn truputį. Prašau duoti man numerį, 4. Prašau duoti man antrą numerį. O kadangi aš ne tikrai rūpi duomenų tipai PHP, galiu pasakyti, 4.8. Dėl šių dviejų skaičių suma yra 8,8. Ši funkcija elgiasi gana daug lygiai tas pats, kaip mes galime tikėtis, taip pat. Ir aš turiu dar viena atidaryta čia vadinamas dice.php. Pabandykite dar kartą. Turiu dar viena čia vadinamas dice1.php, kuris taip pat žr, turi tokią skliaustų klausimą pažymėti lygybės ženklo žymėjimo ten, bet pastebėsite, kad šiuo atveju aš paskambinę funkcija rand, kuris, kaip jums galima tikėtis generuoja atsitiktinius skaičius. "Jūs valcavimo", ir jis ketina apskaičiuoti tam tikrą atsitiktinį skaičių, mod 6 + 1. Taigi, kad jums duoti man skaičių į 1-6 intervale. Atminkite, kad mod 6 man duotų yra vienas iš 0-5 intervale, skaičius, bet jei aš imituoti kauliukai ritininis, o tai, ką aš darau čia Aš nenoriu šie kauliukai eiti nuo 0 5, noriu kauliukus, kad eiti nuo 1 iki 6. Ir taip, tai yra būdas gauti me į 1-6 intervale. Darau tai du kartus. Taigi, matyt, aš valcavimo du kauliukai šioje programoje. Taigi aš išvalyti mano ekrano, ir aš padaryti php dice1.php. Jūs valcavimo 4 ir 2. Ir jei aš paleisti programą Vėlgi, jūs valcavimo 5 ir 5. Taigi kiekvieną kartą, kai aš paleisti programą, Gaunu skirtingus numerius, nes kiekvieną kartą, aš Taigi, tai pradeda daugiau. Ji ketina sukurti naujas nustatyti atsitiktinių skaičių už mane. Taigi, jei mes įpratę veikiančias programas iš C, mes įpratę rašyti ./ Pavadinimas programą, tiesa? Štai kaip mes padarėme viską mūsų programas C iki šiol. Mes galime tai padaryti PHP taip pat pridedant kažką vadinama Szulernia prie mūsų PHP failo viršuje. Žinau, kad tai rūšies kvailas žodis. Tai trumpas maišos trenksmu. Štai du pirmuosius ženklus ten. Įsiminti mes vadiname šauktukas Dažnai kompiuterių mokslo sprogimo. Ji taip pat gali būti už aštriu trenksmu. Yra keletas būdų ją interpretuoti. Bet tai iš esmės yra ypatinga Rūšiuoti Vadovavimo, kad PHP interpretatorius supranta, kaip, oi, aš noriu jums vykdyti šią programą, kuris yra akivaizdžiai / vartotojas / bin / php, kuris iš tikrųjų yra kur PHP interpretatorius specialiai gyvena mūsų sistemoje. Taigi it's-- kas atsitinka čia vertėjas supranta, OH, Aš, matyt, turėtų naudoti šioje programoje paleisti šį failą. Ir taip jis leidžia jums praleisti per žingsnį turintys pasakyti php something.php. Yra vienas kitas laimikis čia yra tai, kad, jei mes norime, kad mūsų programas dirbti kaip tikimasi, mes reikia padaryti kažką vadinama failas leidimo pakeitimas. Ir mes go-- ir kalbame šiek tiek šiek tiek daugiau apie rinkmenų leidimų pakeitimai mūsų vaizdo MVC, bet pakanka pasakyti, kad tai, ką jums reikia padaryti, siekiant, kad jūsų .php failai vykdomąjį. Taigi leiskite pažvelgti į tai, kaip Mūsų galutinis pavyzdys perkelta į CS50 IDE. Taigi čia IDE Turiu du failus šiame PHP katalogas, atrodo, nėra vadinamas .php. Turiu funkcija vadinama add-- Turiu failą pavadinimu ADD3 ir byla vadinama dice2. Taigi Paimkime greitai atrodo ir atverti ADD3. Ir kaip jūs galite, skaitykite pradžioje mano failo Turiu šį Szulernia, tiesa? Tai maišos ženklą šauktukas. Dabar, jūs taip pat gal pastebėti, kad dėl kokios nors priežasties, Aš neturiu jokios sintaksės pabrėžiant nebėra, ir tai, ką aš užsiminiau anksčiau, kuris buvo, kad jei aš neturiu pavadinti savo failą .php, aš neturiu naudą iš sintaksės nebėra. Šis failas yra tiesiog vadinamas ADD3. Taigi, kad aš galiu paleisti jį vėliau su ./ ADD3 ir ne ./ add3.php. Taigi reason-- jis vis dar gerai, jis vis dar galioja PHP, Bet tai ne sintaksė pabrėžė, nes Šis failas yra nepakvietė something.php. Tai vienintelis realus skirtumas čia plius Szulernia. Taigi pažiūrėkime, kas atsitinka, kai Aš stengiuosi ir paleisti šią programą. ./ ADD3, kaip aš norėčiau su C. Bash. ./ ADD3 nesuteiktas leidimas. Tai yra tai, ką jūs ketinate pamatyti, jei jūs pamiršti naudoti chmod komandą pakeisti failo leidimus. As it turns out, reguliariai PHP failai gali būti ne tik įvykdytas. Jie gali būti aiškinamas, bet mes daro kažką šiek tiek skiriasi čia. Mes jį paleidus. Ir todėl man reikia pridėti leidimą vykdymo, chmod a + x ADD3. Tada galiu pasakyti ./ ADD3. Prašau duoti man numerį. 5, 6. Dėl šių dviejų skaičių suma yra 11. Be to, aš jau suCHMODintas dice2, todėl galiu tiesiog įveskite ./ dice2, Jūs valcavimo A 1 ir A 1, jums valcavimo 5 ir 4, ir taip toliau. Taigi, kad gana daug idėja PHP sintaksė, tiesa? Yra daug gauti per, aš žinau. Bet tikiuosi, kad jūs matėte, kad dabar, PHP tikrai nėra, kad skiriasi nuo C ir tikrai suteikia mums galimybę imtis ko žingsniu ar dvi. Mes iš tikrųjų neturime jaudintis per daug about-- mes darome tikrai ne nerimauti per daug apie žemo lygio detales, turėjo nerimauti su C, tiesa? Mes galime sutelkti dėmesį į aukštojo lygio dalykų, kad PHP leidžia mums daryti ir imtis už savaime suprantama, kad jis dirbs už mus. Taigi ji suteikia mums galimybę dabar Keičiant C PHP, padaryti programas, kurios yra daug daugiau sudėtingas ir galbūt daug labiau patikimas. Taigi, aš tikiuosi, kad jūs smagiai darbo su PHP, ir aš tikiu, Doug Lloyd. Tai CS50.