[Powered by Google Translate] [PHP Syntax]
[Tommy MacWilliam] [Harvard University]
[Dette er CS50.] [CS50.TV]
>> I denne videoen vil vi introdusere PHP -
ett av språkene vi skal bruke i CS50
som vi overgangen til webutvikling.
PHP står for PHP Hypertext Processor,
eller PHP Hypertext Processor Hypertext Processor,
og jeg skal stoppe der.
PHP er et rekursivt akronym, som jeg tror er virkelig fantastisk.
>> Så, la oss skrive "hello world" i PHP,
som vil være litt annerledes enn den "hello world" i C som vi har lært å kjenne og elske.
Istedenfor å lage en fil som heter hello.c,
vi vil skape hello.php.
Alle våre PHP-kode vil ligge mellom <? Php og>.
Hvis vi har noen PHP-kode som ligger
utenom disse skilletegn, vil det ikke kjøre.
Vi kan ha så mange av disse PHP blokker
som vi ønsker inne i et enkelt PHP-fil.
I PHP er det ikke behov for en hovedfunksjon.
I stedet vil vår PHP-koden kjøres i den rekkefølgen det vises i vår PHP-filen.
Både C og PHP har en "printf-funksjonen for utmating av data.
Men i PHP, trenger vi ikke å # include noen header-filer som standardIO.h.
Det er fordi i PHP ikke vi skal samle vår kode.
Da vi skrev C koden vår arbeidsflyt tendens til å være åpne opp
én eller flere. c eller. h filer, endre dem, kompilere dem,
og kjører den resulterende binære.
Sjekk ut kompilatorer video for mer informasjon om denne prosessen.
>> I motsetning til C, er PHP et tolket - snarere enn kompilert - språk.
Det betyr at PHP-koden vi skriver
vil bli kjørt gjennom et spesielt program kalt tolk,
som igjen vil gjennomføre vår kode.
Å kjøre vår PHP-kode,
vi vil sende det sammen til PHP tolk som vil håndtere sin utførelse,
heller enn å samle det til maskinkode.
La oss se tolk i aksjon.
Vi vil åpne opp en terminal og kjøre PHP-kommandoen
etterfulgt av banen til PHP-filen vi ønsker å kjøre.
Vi vil si: 'php hello.php'.
Og der vi går. Det er resultatet av vår PHP program.
Vi trengte ikke å kompilere vår PHP-filen i det hele tatt.
I stedet hadde vi et annet program - PHP tolk -
utføre kildekoden som vi skrev.
>> PHP kan gjøre mye mer enn bare printf.
La oss skrive noen mer komplekse PHP programmer.
Syntaksen for konstruksjoner - som om, annet, mens for, og bryter -
er den samme i PHP og C.
Akkurat som C, bruker hver av disse konstruerer bukseseler å avgrense kroppen sin,
og akkurat som i C, hver linje vi skriver
må avsluttes med et semikolon;
imidlertid variabler håndteres litt forskjellig i PHP.
Først må alle variabler i PHP starte med dollartegn.
Det virker litt rart i begynnelsen, men du blir vant til det.
Sekund, er PHP et løst-skrevet språk
som betyr at du ikke trenger å eksplisitt liste
hvilken type en variabel når du oppretter den.
Hvor i C ville du trenger å si int x = 5;
eller røye y = 'a';
i PHP kan vi bare si $ x = 5;
og $ y = 'a';.
Det samme gjelder for funksjoner.
Snarere enn å si int f () {legemet på funksjonen}
i PHP skal vi si funksjon f () {kroppen vår funksjon}.
Vi trenger ikke å eksplisitt angi avkastning type vår funksjon f.
Funksjoner i PHP også ikke trenger å returnere samme type
hver gang de blir henrettet.
For eksempel kunne vi skrive en funksjon som returnerer false på en feil
og en annen type hvis det lykkes.
>> Dette kan også hjelpe oss skrive mer generelle funksjoner.
For eksempel kunne vi skrive en eneste funksjonen add
som kan returnere et heltall hvis to heltall er gitt
eller en dupp hvis to flyter er gitt.
I C, ville vi trenger å skrive to separate funksjoner for å gjøre dette.
Mens i C bruker vi pekere for en raise og strykere,
vi vil ikke være i stand til å bruke pekere i PHP.
I stedet, begge matriser og strenger er innebygd typer i PHP.
De er bygget rett inn i språket.
Å lage en matrise i PHP kan vi si,
$ A = matrise (1, 2, 3);
eller enklere $ a = [1, 2, 3],.
Vi kan indeksen inn denne array ved hjelp av den samme syntaksen som vi er vant til fra C.
For å få det første elementet vi vil si, $ a [0];.
PHP har også innebygd støtte for assosiative arrays.
Assosiative arrays er akkurat som hash table datastruktur vi allerede har sett -
de kartlegge en nøkkel til en verdi.
>> La oss ta en titt på et eksempel.
Vi kan si, $ stab = ["instruktør" => "david", "tf" => "Tommy"];.
Her har jeg en assosiativ array med to nøkler - instruktør og tf.
Den doble-pilen eller lik-større-enn,
brukes til å separere en nøkkel, og den tilsvarende verdi.
Så, er verdien av $ ansatte ["tf"] strengen "Tommy".
Verdiene av en assosiativ array -
mye som alle andre array - kan være av hvilken som helst type.
For eksempel kan vi si, $ stab = ["instruktør" => "david", "tfs" => ["tommy", "rane"]];.
Nå verdien av 'TFS' er en matrise.
Det betyr at verdiene inne i et assosiativt arrayet kan være av forskjellige typer.
>> PHP arrays også ikke har en fast lengde,
slik at vi kan legge til eller fjerne elementer fra en matrise.
La oss si vi har en enkel rekke som $ a = [1, 2, 3];.
For å legge til et nytt element til denne tabellen,
vi kan si, $ a [] = 4;.
Nå vår rekke består av fire elementer - [1, 2, 3, 4].
Husk at hvis vi ønsket å gjøre noe som dette i C,
vi måtte fordele en helt ny array,
kopiere innholdet i vår første matrisen i det,
og deretter sette det siste elementet for det nye utvalget til vår nye verdien.
Dette er mye enklere i PHP.
Hvis vår matrise er en assosiativ array,
vi ganske enkelt definere en ny nøkkel for å skape et element
hvis det ikke finnes ennå.
Hvis vi har vår tidligere array - $ ansatte -
vi kan si $ ansatte ["total"] = 3;.
Nå har vi en ny nøkkel med verdien av tre.
>> For å få antall elementer i en matrise,
vi kan bruke "teller"-funksjonen.
Hvis vi sier, telle ($ a);, som vil ha en verdi på 4.
I PHP, kan vi skape strenger ved hjelp av doble eller enkle anførselstegn,
så begge disse variablene er strenger.
$ S1 = "streng"; $ s2 = 'annen streng';.
Hva er forskjellen mellom disse to?
Vel, det er ganske vanlig å ønske å inkludere
verdien av en variabel inne i en streng.
En måte å gjøre dette ville være å bruke PHP dot operatør,
som setter sammen strenger.
Vi kunne gjøre noe som dette -
$ N = 5, $ s = 'n er' $ n.;.
Her er vår n variable er et heltall.
Men når vi sette sammen det med en streng,
PHP vil automatisk konvertere den til en streng for oss.
Eller vi kan bare bruke doble anførselstegn for å sette den variable i selve strengen.
Vi kan si, $ s = "n er $ n";.
Nå er den verdi av $ S skal 'n er 5'.
Hvis vi bruker apostrof i stedet, som i $ s = 'n er $ n';
verdien på S skal 'n er n $';.
Verdien av n vil ikke erstattes hvis vi bruker apostrof,
men det vil være hvis vi bruker doble anførselstegn.
Hvis vi ønsker å bruke anførselstegn for å inkludere verdien av en matrise i en streng,
Vi må ta med klammeparentes rundt tabellen, som dette -
$ S = "{$ ansatte ['total']}";.
>> La oss nå ta en titt på en liten bit i C og oversette den til PHP.
Her skaper vi en funksjon som skriver ut bokstavene i en streng,
ett tegn per linje.
La oss gjøre det samme i PHP.
Først trenger vi vår PHP skilletegn.
Når vi skaper vår funksjon,
vi trenger ikke å spesifisere sin returtype eller type argument sin.
Vårt s variable må også starte med et dollartegn.
PHP strlen funksjon gir oss lengden på en streng,
akkurat som Cs strlen gir oss lengden på en streng.
Under panseret selv om disse funksjonene er faktisk litt annerledes
siden en streng er en innebygd skriver i PHP.
Syntaksen til vår 'for' sløyfe er den samme.
>> I PHP, kan vi også bruke matrise notasjon for å få tilgang til tegnene i en streng.
Vi kan nå bruke print-funksjonen til å skrive ut hver bokstav i strengen.
Med PHP print funksjon, trenger vi ikke å bekymre deg for plassholdere -
som% d eller% c - når vi ønsker å skrive ut en variabel som ikke er en streng.
I stedet kan vi bare passere en variabel av alle typer til print funksjon,
og det vil bli omdannet til en streng og vist.
Og det er det! La oss nå kjøre vår fil med "php print.php '.
Og det er den produksjonen vi så fra vår C-program.
>> PHP støtter også en konstruksjon kalt "foreach løkke.
The 'foreach løkke er akkurat som en "for" loop,
men det legger litt syntaktisk sukker for å gjøre ting mer lesbar.
Her skaper vi en ny rekke kalt '$ matrise'.
Nå kan vi si, foreach ($ matrise som $ nummer),
og vi kan skrive ut $ nummer.
Når vi kjører denne filen - php foreach.php--kan vi se hvert tall på en egen linje.
>> Da vi skrev C-kode, var det ofte nyttig å organisere vår kode i separate filer.
I PHP, kan vi gjøre det samme.
La oss si at vi har noen funksjoner i en fil som heter math.php.
Hvis jeg ønsker å bruke disse funksjonene i en annen PHP-fil, som calculator.php,
Jeg kan bruke PHP sin require_once ()-funksjonen.
Require_once er akkurat som # include.
Når den får en sti til en fil, vil det i hovedsak kopiere og lime inn innholdet
av den filen til den aktuelle filen.
Require_once sikrer at hver fil er inkludert i den gjeldende filen bare én gang,
som kan være nyttig hvis du har en stor samling av PHP-filer som krever hverandre.
La oss ta en titt på et eksempel.
Her har vi en samling av funksjoner som jeg ønsker å bruke i en annen fil.
La oss ta en titt på hvordan vi kan bruke dem.
På linje 3, vi krever math.php.
The '__DIR__' er en spesiell konstant representerer gjeldende katalog
siden math.php og calculator.php ligger i samme katalog.
Etter at vi krever math.php, kan vi bruke funksjonene
som om vi har definert dem i calculator.php.
La oss kjøre dette med 'php calculator.php'. Flott!
>> Det er det for vår introduksjon til PHP syntaks.
For å finne ut mer, sjekk ut PHP.net.
PHP har en rekke innebygde funksjoner, og heldigvis sin dokumentasjon er virkelig flott.
Mitt navn er Tommy, og dette er CS50.
[CS50.TV]
>> ... Brakett, jeg er ute av rommet. Faen! Dette er den siste videoen der jeg bruker store ord i koden.