[Powered by Google Translate] [PHP Syntax] [Tommy MacWilliam] [Harvard Universiteit] [Hierdie is CS50.] [CS50.TV] In hierdie video, sal ons stel PHP - een van die tale wat ons sal gebruik word in CS50 as ons oorgang na web ontwikkeling. PHP staan ​​vir PHP Hypertext verwerker, of PHP Hypertext verwerker Hypertext verwerker, en ek sal daar stop. PHP is 'n rekursiewe akroniem, wat ek dink is regtig awesome. So, kom ons skryf 'hallo wêreld in PHP, wat sal 'n bietjie anders as die 'hallo wêreld in C wat ons het gekom om te leer ken en lief te hê. In plaas van die skep van 'n lêer genaamd hello.c, Ons sal skep hello.php. Al ons PHP-kode sal vervat word tussen . As ons 'n PHP-kode wat is geleë buite hierdie skeikarakters, sal dit nie uitvoer nie. Ons kan so baie van hierdie PHP blokke as ons wil hê in 'n enkele PHP lêer. In PHP daar is geen behoefte aan 'n hoof funksie. In plaas daarvan, sal ons PHP-kode gebruik word in die einde dit blyk in ons PHP lêer. Beide C en PHP het 'n 'printf-funksie vir die uitdruk van data. Maar in PHP, het ons nie nodig het om te # sluit enige header lêers soos standardIO.h. Dit is omdat in PHP, sal ons nie die opstel word ons kode. Wanneer ons geskryf C-kode ons workflow geneig om die opening van een of meer c of.. h lêers, die verandering van hulle, die opstel van hulle, en loop die gevolglike program nie. Check uit die opstellers video vir meer inligting oor hierdie proses. Anders C, PHP is 'n geïnterpreteer - eerder as saamgestel - taal. Dit beteken dat die PHP-kode wat ons skryf sal uitgevoer word deur middel van 'n spesiale program met die naam van 'n tolk, wat op sy beurt voer ons kode. Ons PHP-kode uit te voer, ons stuur dit saam na die PHP tolk wat die uitvoering daarvan hanteer, eerder as die opstel van dit aan die masjien kode. Kom ons kyk na die tolk in aksie. Ons sal oopmaak om 'n terminale en loop die PHP command gevolg deur die pad na die PHP-lêer wil ons uit te voer. Ons sal sê, "PHP hello.php. En daar gaan ons. Daar is die uitvoer van ons PHP program. Ons het nie nodig om ons PHP lêer te alle stel. In plaas daarvan, het ons 'n ander program - die PHP tolk - voer die bronkode wat ons geskryf het. PHP kan doen veel meer as net printf. Kom ons skryf 'n paar meer komplekse PHP programme. Die sintaksis vir bou - as, anders, terwyl, vir, en skakel - is dieselfde in PHP en C. Net soos C, elk van hierdie konstrukte gebruik draadjies hul liggaam af te baken, en net soos in C, elke lyn wat ons skryf moet eindig met 'n kommapunt; egter, word veranderlikes hanteer 'n bietjie anders in PHP. Eerstens moet alle veranderlikes in PHP begin met die dollar teken. Dit lyk 'n bietjie vreemd op die eerste, maar jy sal gewoond raak aan dit. Tweede, PHP is 'n losweg-getikte taal wat beteken dat jy nie nodig het om uitdruklik lys die tipe van 'n veranderlike wanneer jy dit skep. Waar in C wat jy nodig het om te sê int x = 5; of kar y = 'a'; in PHP kan ons net sê $ x = 5; en $ y = 'a';. Dieselfde geld vir funksies. Eerder as om te sê int f () {die liggaam van ons funksie}, in PHP ons gaan funksie f () {die liggaam van ons funksie} om te sê. Ons het nie nodig om uitdruklik spesifiseer die terugkeer tipe van ons funksie f. Funksies in PHP ook nie dieselfde soort om terug te keer elke keer as dit uitgevoer word. Byvoorbeeld, kan ons skryf 'n funksie wat gee vals is op 'n fout en 'n ander soort as dit slaag. Dit kan ook help om ons skryf meer generiese funksies. Byvoorbeeld, kan ons skryf 'n enkele add funksie wat kan 'n heelgetal terug as 2 heelgetalle word gegee of 'n float as 2 dryf gegee word. In C, sou ons nodig het 2 afsonderlike funksies te skryf om dit te doen. Terwyl hy in C gebruik ons ​​wenke vir 'n verhoging en snare, Ons sal nie in staat wees om wenke te gebruik in PHP. In plaas daarvan, beide skikkings en snare is gebou-in tipes in PHP. Hulle is gebou reg in die taal. 'N skikking in PHP kan ons sê te skep, $ A = array (1, 2, 3); of meer eenvoudig $ a = [1, 2, 3];. Ons kan nie indeks in hierdie reeks met dieselfde sintaksis wat ons gebruik om van C. Die eerste element te kry sal ons sê, $ a [0];. PHP het ook ingeboude ondersteuning vir assosiatiewe skikkings. Assosiatiewe skikkings is net soos die hash tafel data struktuur het ons reeds gesien het - hulle kaart om 'n sleutel tot 'n waarde. Kom ons neem 'n blik op 'n voorbeeld. Ons kan sê, $ personeel = ["instrukteur" => "Dawid", "tf" => "Tommy"];. Hier het ek 'n assosiatiewe skikking met 2 sleutels - instrukteur en tf. Die dubbel-pyl of gelyk aan-groter-as, word gebruik om 'n sleutel en die ooreenstemmende waarde te skei. So, die waarde van $ personeel ["tf"] is die string "Tommy". Die waardes van 'n assosiatiewe skikking - baie soos enige ander reeks - kan wees van enige soort. Byvoorbeeld, ons kan sê, $ personeel = ["instrukteur" => "Dawid", "TFS" => ["Tommy", "rob"]]. Nou is die waarde van 'TFS' is 'n skikking. Dit beteken dat die waardes binne 'n assosiatiewe skikking kan word van verskillende tipes. PHP skikkings het ook nie 'n vaste lengte, sodat ons kan byvoeg of verwyder elemente van 'n skikking. Kom ons sê ons het 'n eenvoudige verskeidenheid soos $ a = [1, 2, 3];. 'N nuwe element by te voeg by hierdie skikking, ons kan sê, $ a [] = 4;. Nou ons reeks bestaan ​​uit vier elemente - [1, 2, 3, 4]. Onthou dat as ons wou iets te doen in C, Ons wil 'n hele nuwe skikking toe te ken, kopieer die inhoud van ons eerste reeks in dit, en dan stel die laaste element van die nuwe skikking aan ons nuwe waarde. Dit is baie makliker om in PHP. As ons skikking is 'n assosiatiewe skikking, ons kan eenvoudig definieer 'n nuwe sleutel 'n element te skep As dit nog nie bestaan ​​nie. As ons ons vroeëre skikking - $ personeel - kan ons sê $ personeel ["totale"] = 3;. Nou het ons 'n nuwe sleutel met die waarde van 3. Die aantal elemente in 'n skikking te kry, ons kan gebruik om die 'tel' funksie. As ons sê, tel ($ a);, wat 'n waarde van 4 het. In PHP, kan ons skep snare met behulp van dubbele of enkele aanhalings, sodat beide van hierdie veranderlikes snare. $ S1 = "string"; $ s2 = 'n ander string ';. Wat is die verskil tussen die twee? Wel, dit is redelik algemeen te wil sluit die waarde van 'n veranderlike binnekant van 'n string. Een manier om dit te doen sou wees om PHP se dot operateur te gebruik, wat concatenates snare. Ons kan doen iets soos hierdie - $ N = 5; $ s = 'n is 'n $;.. Hier ons n veranderlike 'n heelgetal is. Maar wanneer ons koppel dit met 'n string, PHP sal outomaties skakel dit om na 'n string vir ons. Of ons kan net gebruik dubbele aanhalingstekens om die veranderlike te sit in die string self. Ons kan sê, $ s = "n is $ n";. Nou is die waarde van $ s sal 'n is 5. As ons gebruik aanhalingstekens plaas, soos in $ s = 'n is $ n '; die waarde van s sal 'n is $ n ';. Die waarde van n sal nie vervang word as ons enkele aanhalings, maar dit sal wees as ons dubbele aanhalingstekens. As ons wil hê dubbele aanhalingstekens te gebruik om die waarde van 'n skikking in 'n string te sluit, ons sal moet krulhakies rondom die skikking, soos hierdie in te sluit - $ S = "{$ personeel ['totale']}."; Kom ons neem 'n blik op 'n klein brokkie in C en vertaal dit na PHP. Hier is ons die skep van 'n funksie wat druk die letters van 'n string, een karakter per lyn. Kom ons doen dieselfde ding in PHP. Eerste, moet ons ons PHP skeikarakters. Wanneer ons ons funksie, ons hoef nie sy terugkeer type of die tipe van sy argument te gee. Ons is veranderlike moet ook begin met 'n dollar-teken. PHP se strlen funksie gee ons die lengte van 'n string, net soos C se strlen gee ons die lengte van 'n string. Onder die enjinkap al is, hierdie funksies is eintlik 'n bietjie anders aangesien 'n string is 'n ingeboude tipe in PHP. Die sintaksis van ons 'vir' lus is dieselfde. In PHP, kan ons ook gebruik verskeidenheid notasie die karakters van 'n string om toegang te verkry. Ons kan nou die gedrukte funksie uit te druk elke letter van die string. Met PHP se gedrukte funksie, het ons nie nodig om te bekommer oor plekhouers - soos% d of% c - wanneer ons wil uit te druk 'n veranderlike wat nie 'n string. In plaas daarvan, ons kan net slaag om 'n veranderlike van enige aard aan die druk funksie, en dit sal omskep word in 'n string en vertoon. En dit is dit! Laat ons nou loop ons lêer met 'PHP print.php. En daar is die opbrengs wat ons gesien het van ons C-program. PHP ondersteun ook 'n konstruk wat as die "foreach 'lus. Die 'foreach' lus is net soos 'n 'vir' lus, maar dit voeg 'n bietjie van die sintaktiese suiker te maak dinge meer leesbaar. Hier is ons die skep van 'n nuwe skikking met die naam "$ skikking '. Nou kan ons sê, foreach ($ skikking as $ nommer), en ons kan druk $ nommer. Wanneer ons die uitvoering van hierdie lêer - PHP foreach.php-nie-ons kan elke nommer sien op sy eie lyn. Wanneer ons geskryf C-kode, was dit dikwels nuttig ons kode te organiseer in afsonderlike lêers. In PHP, kan ons doen dieselfde ding. Kom ons sê ons het 'n paar funksies in 'n lêer genaamd math.php. As ek wil daardie funksies te gebruik in 'n ander PHP lêer, soos calculator.php, Ek kan gebruik PHP se require_once () funksie. Require_once is net soos # sluit. Wanneer 'n pad na 'n lêer is, sal dit in wese kopieer en plak die inhoud van die lêer in die huidige lêer. Require_once verseker dat elke lêer is ingesluit in die huidige lêer net een keer, wat nuttig kan wees as jy 'n groot versameling van PHP lêers wat mekaar. Kom ons neem 'n blik op 'n voorbeeld. Hier het ons 'n versameling van funksies wat ek wil gebruik in 'n ander lêer. Kom ons neem 'n blik op hoe ons hulle kan gebruik. Op lyn 3, is ons wat math.php. Die '__DIR__' is 'n spesiale konstante wat die huidige gids sedert math.php en calculator.php is geleë in dieselfde gids. Nadat ons benodig math.php, kan ons gebruik maak van die funksies  asof ons omskryf hulle in calculator.php. Kom ons loop dit met 'PHP calculator.php. Groot! Dit is dit vir ons inleiding tot PHP se sintaksis. Meer uit te vind, check PHP.net. PHP het 'n baie ingeboude funksies, en gelukkig het sy dokumentasie is regtig baie goed. My naam is Tommy, en dit is CS50. [CS50.TV] ... Bracket, ek is uit die kamer. Damn it! Dit is die laaste video waar ek gebruik groot woorde in die wetboek.