[Powered by Google Translate] [PHP Cystrawen]
[Tommy MacWilliam] [Prifysgol Harvard]
[Mae hyn yn CS50.] [CS50.TV]
>> Yn y fideo, byddwn yn cyflwyno PHP -
un o'r ieithoedd y byddwn yn eu defnyddio yn CS50
wrth i ni newid i ddatblygu ar y we.
PHP yn sefyll am PHP Prosesydd Hypertext,
neu PHP Prosesydd Hypertext Hypertext Prosesydd,
a byddaf yn stopio yno.
PHP yn acronym ailadroddus, yr wyf yn credu yn wirioneddol awesome.
>> Felly, gadewch i ni ysgrifennu 'helo byd' yn PHP,
a fydd yn ychydig yn wahanol na'r 'byd hello' yn C ein bod wedi dod i wybod a chariad.
Yn hytrach na creu ffeil o'r enw hello.c,
byddwn yn creu hello.php.
Bydd pob un o'n cod PHP yn cael ei gynnwys rhwng <? Php a?>.
Os oes gennym unrhyw god PHP sydd wedi ei leoli
y tu allan i'r amffinyddion hyn, ni fydd yn gweithredu.
Gallwn fod â chymaint o'r blociau PHP
gan ein bod eisiau y tu mewn i ffeil PHP sengl.
Yn PHP does dim angen am brif swyddogaeth.
Yn lle hynny, bydd ein cod PHP yn cael ei redeg yn y drefn y mae'n ymddangos yn ein ffeil PHP.
Mae C a PHP yn cael swyddogaeth 'printf' ar gyfer outputting data.
Ond yn PHP, nid oes angen i ni # cynnwys unrhyw ffeiliau header fel standardIO.h.
Mae hyn oherwydd yn PHP ni fyddwn yn llunio ein cod.
Pan fyddwn yn ysgrifennu C côd ein llif gwaith yn tueddu i gael ei agor
un neu fwy. c neu. ffeiliau h, eu newid, eu llunio,
a rhedeg y binary deillio o hynny.
Edrychwch ar y fideo Crynoadyddion am fwy o wybodaeth am y broses hon.
>> Yn wahanol i C, PHP yn dehongli - iaith - yn hytrach na llunio.
Mae hynny'n golygu bod y cod PHP yn ysgrifennu
Bydd yn cael ei rhedeg drwy raglen arbennig o'r enw cyfieithydd ar y pryd,
a fydd yn ei dro yn cyflawni ein cod.
I redeg ein cod PHP,
byddwn yn anfon draw i'r cyfieithydd PHP a fydd yn trin ei weithredu,
yn hytrach na llunio i cod peiriant.
Gadewch i ni weld y cyfieithydd ar waith.
Byddwn yn agor terfynell a rhedeg y gorchymyn PHP
ddilyn gan y llwybr at y ffeil PHP byddem yn hoffi rhedeg.
Byddwn yn dweud, 'php hello.php'.
A dyna ni. Mae allbwn ein rhaglen PHP.
Nid oedd angen i lunio ein ffeil PHP o gwbl.
Yn lle hynny, yr oedd gennym rhaglen arall - y cyfieithydd PHP -
gweithredu y sourcecode yr ydym yn ysgrifennu.
>> Gall PHP wneud llawer mwy na dim ond printf.
Gadewch i ysgrifennu rhai rhaglenni PHP mwy cymhleth.
Mae cystrawen ar gyfer elfennau - fel os, arall, tra, ar gyfer, a newid -
yr un fath yn PHP a C.
Yn union fel C, pob un o'r cysyniadau hyn yn defnyddio bresys i ddiffinio eu corff,
ac yn union fel yn C, mae pob llinell yn ysgrifennu
Rhaid gorffen gyda hanner colon;
Fodd bynnag, newidynnau yn cael eu trin ychydig yn wahanol yn PHP.
Yn gyntaf, mae'n rhaid i bob newidynnau mewn PHP dechrau gyda'r arwydd ddoler.
Mae'n ymddangos ychydig yn od ar y dechrau, ond byddwch yn dod i arfer ag ef.
Yn ail, PHP yn iaith llac-deipio
sy'n golygu nad oes angen i chi restru'r benodol
y math o newidyn pan fyddwch yn ei greu.
Lle y byddai yn C bydd angen i chi ddweud int x = 5;
neu torgoch y = 'a';
yn PHP gallwn ddweud yn syml $ x = 5;
a $ y = 'a';.
Mae'r un peth yn berthnasol i swyddogaethau.
Yn hytrach na dweud f int () {corff ein swyddogaeth},
yn PHP rydym yn mynd i ddweud ffwythiant f () {corff ein swyddogaeth}.
Nid oes angen inni nodi yn benodol y math dychwelyd ein swyddogaeth f.
Hefyd, nid oes rhaid i swyddogaethau mewn PHP i ddychwelyd yr un fath
bob tro y byddant yn cael eu gweithredu.
Er enghraifft, gallem ysgrifennu swyddogaeth sy'n dychwelyd ffug ar gamgymeriad
a'r math arall os bydd yn llwyddo.
>> Gall hyn hefyd yn ein helpu i ysgrifennu swyddogaethau mwy cyffredinol.
Er enghraifft, gallem ysgrifennu swyddogaeth ychwanegu un
Gall bod yn dychwelyd yn gyfanrif os 2 gyfanrifau yn cael
neu fflôt os 2 fflotiau cael eu rhoi.
Yn C, byddai angen i ni ysgrifennu 2 swyddogaeth ar wahân i wneud hyn.
Tra yn C rydym yn defnyddio awgrymiadau ar gyfer codi a llinynnau,
ni fyddwn yn gallu defnyddio awgrymiadau yn PHP.
Yn lle hynny, yn araeau a llinynnau yn adeiledig mewn mathau yn PHP.
Maent yn adeiladu dde i mewn i'r iaith.
Er mwyn creu amrywiaeth yn PHP gallwn ddweud,
$ A array = (1, 2, 3);
neu yn fwy syml $ a = [1, 2, 3];.
Gallwn mynegai i'r amrywiaeth hwn gan ddefnyddio'r un gystrawen ein bod yn eu defnyddio i o C.
I gael yr elfen gyntaf byddwn yn dweud, $ a [0];.
PHP Mae gan adeiledig yn gymorth i araeau cysylltiadol.
Araeau cysylltiadol yn union fel y strwythur data tabl hash rydym eisoes wedi gweld -
maent yn mapio allwedd i werth.
>> Gadewch i ni edrych ar enghraifft.
Gallwn ddweud, $ staff = ["hyfforddwr" => "david", "tf" => "tommy"];.
Yma, mae gennyf amrywiaeth cysylltiadol gyda 2 allweddi - hyfforddwr a tf.
Y dwbl-saeth, neu'n hafal-fwy-nag,
yn cael ei ddefnyddio i wahanu allweddol a'i werth cyfatebol.
Felly, mae'r gwerth o $ staff ["tf"] yn y llinyn "tommy".
Mae'r gwerthoedd o fyrdd cysylltiadol -
yn debyg iawn i unrhyw amrywiaeth arall - gall fod o unrhyw fath.
Er enghraifft, gallem ddweud, $ staff = ["hyfforddwr" => "david", "TFS" => ["tommy", "rob"]];.
Nawr bod y gwerth o 'TFS yn arae.
Mae hynny'n golygu y gall y gwerthoedd y tu mewn un amrywiaeth cysylltiadol fod o wahanol fathau.
>> Rhesi PHP hefyd nad oes gan gyfnod penodol,
fel y gallwn ychwanegu neu dynnu elfennau o amrywiaeth.
Lets 'ddeud mae gennym amrywiaeth syml fel $ a = [1, 2, 3];.
I ychwanegu elfen newydd i'r amrywiaeth hwn,
gallwn ddweud, $ a [] = 4;.
Nawr ein amrywiaeth yn cynnwys pedair elfen - [1, 2, 3, 4].
Dwyn i gof, os oeddem am wneud rhywbeth fel hyn yn C,
byddai'n rhaid i ni ddyrannu amrywiaeth newydd sbon,
copïo cynnwys ein amrywiaeth yn gyntaf i mewn iddo,
ac yna gosod y elfen olaf y casgliad newydd at ein gwerth newydd.
Mae hyn yn llawer haws yn PHP.
Os yw ein amrywiaeth yn arae cysylltiadol,
gallwn ni ddiffinio allwedd newydd i greu elfen
os nad yw'n bodoli eto.
Os ydym wedi ein amrywiaeth yn gynharach - $ staff -
gallwn ddweud $ staff ["cyfanswm"] = 3;.
Nawr mae gennym allwedd newydd gyda gwerth o 3.
>> I gael y nifer o elfennau mewn amrywiaeth,
gallwn ddefnyddio'r swyddogaeth 'cyfrif'.
Os dywedwn, cyfrif ($ a);, a fydd yn cael werth o 4.
Yn PHP, gallwn greu llinynnau defnyddio dyfynodau dwbl neu sengl,
felly ddau o'r newidynnau hyn yn llinynnau.
$ S1 = "llinyn"; $ a2 = 'llinyn arall';.
Beth yw'r gwahaniaeth rhwng y ddau?
Wel, mae'n eithaf cyffredin i am gynnwys y
gwerth mewn amrywiol o gyfres.
Un ffordd o wneud hyn fyddai defnyddio weithredwr dot PHP yn,
pa llinynnau concatenates.
Gallem wneud rhywbeth fel hyn -
$ N = 5; $ s = 'n yw' $ n.;.
Yma mae ein n newidyn yn gyfanrif.
Ond pan fyddwn yn concatenate gyda llinyn,
Bydd PHP trosi yn awtomatig i llinyn i ni.
Neu gallwn yn syml yn defnyddio dyfynodau dwbl i roi'r newidyn yn y llinyn ei hun.
Gallwn ddweud, $ s = "n yw $ n";.
Yn awr, bydd y gwerth $ s yn 'n yw 5'.
Os ydym yn defnyddio dyfynodau sengl yn lle hynny, fel yn $ s = 'n yn $ n';
bydd gwerth s fod yn 'n yn $ n';.
Ni fydd y werth n yn lle os ydym yn defnyddio dyfynodau sengl,
ond bydd yn cael ei os ydym yn defnyddio dyfynodau dwbl.
Os ydym am ddefnyddio dyfynodau dwbl i gynnwys gwerth amrywiaeth mewn llinyn,
bydd angen i ni gynnwys braces cyrliog o gwmpas y casgliad, fel hyn -
$ S = "{$ staff ['cyfanswm']}";.
>> Gadewch i ni yn awr yn cymryd golwg ar snippet bach yn C ac yn ei gyfieithu i PHP.
Yma, rydym yn creu swyddogaeth sy'n argraffu allan y llythrennau o linyn,
un cymeriad bob llinell.
Gadewch i ni wneud yr un peth yn PHP.
Yn gyntaf, bydd angen ein amffinyddion PHP arnom.
Pan rydym yn creu ein swyddogaeth,
Nid oes angen i ni nodi o'i bath ffurflen dreth, neu fath o ei ddadl.
Rhaid i'n amrywiol s hefyd yn dechrau gydag arwydd doler.
PHP yn strlen swyddogaeth yn rhoi hyd llinyn ni,
yn union fel C strlen rhoi hyd llinyn i ni.
O dan y cwfl fodd bynnag, mae'r swyddogaethau hyn mewn gwirionedd ychydig yn wahanol
gan fod llinyn yn fath adeiladedig i mewn yn PHP.
Mae cystrawen ein 'o blaid' loop yr un fath.
>> Yn PHP, gallwn hefyd ddefnyddio nodiant amrywiaeth i gael mynediad at y cymeriadau mewn cyfres.
Gallwn bellach yn defnyddio'r swyddogaeth argraffu i argraffu pob llythyren yn y llinyn.
Gyda swyddogaeth print PHP, nid oes angen i ni boeni am bachau -
fel% d neu% c - pan rydym am i argraffu newidyn nad yw'n llinyn.
Yn lle hynny, gallwn yn syml basio amrywiol o unrhyw fath i'r swyddogaeth print,
a bydd yn cael ei drosi i linyn a'u harddangos.
A dyna ni! Gadewch i ni yn awr yn rhedeg ein ffeil gyda 'php print.php'.
Ac mae allbwn welsom o'n rhaglen C.
>> PHP hefyd yn cefnogi lluniad a elwir y ddolen 'foreach'.
Dolen Mae'r 'foreach' yn union fel 'yn lle' ddolen,
ond mae'n ychwanegu ychydig o siwgr cystrawennol i wneud pethau'n fwy darllenadwy.
Yma, rydym yn creu amrywiaeth newydd o'r enw '$ array'.
Nawr gallwn ddweud, foreach ($ array â $ rhif),
a gallwn argraffu $ rhif.
Pan rydym yn rhedeg y ffeil - gall php foreach.php--gwelwn pob rhif ar ei linell ei hun.
>> Pan fyddwn yn ysgrifennu cod C, roedd yn aml yn ddefnyddiol i drefnu ein cod i mewn i ffeiliau ar wahân.
Yn PHP, gallwn wneud yr un peth.
Lets 'ddeud mae gennym ychydig o swyddogaethau mewn ffeil o'r enw math.php.
Os ydw i am ddefnyddio swyddogaethau hynny yn y ffeil PHP arall, fel calculator.php,
Gallaf ddefnyddio PHP yn require_once () swyddogaeth.
Require_once yn union fel # gynnwys.
Pan roddir llwybr i ffeil, bydd yn hanfod adysgrifia a bastio 'r cynnwys
o'r ffeil i mewn i'r ffeil cyfredol.
Require_once yn sicrhau bod pob ffeil yn cael ei gynnwys yn y ffeil cyfredol unwaith yn unig,
a all fod yn ddefnyddiol os oes gennych chi gasgliad mawr o ffeiliau PHP angen ei gilydd.
Gadewch i ni edrych ar enghraifft.
Yma mae gennym gasgliad o swyddogaethau y byddwn i'n hoffi defnyddio yn y ffeil arall.
Gadewch i ni edrych ar sut y gallwn eu defnyddio.
Ar-lein 3, yr ydym yn ei gwneud yn ofynnol math.php.
Mae'r '__DIR__' yn gysonyn arbennig yn cynrychioli y cyfeiriadur cyfredol
ers math.php a calculator.php yn cael eu lleoli yn yr un cyfeiriadur.
Ar ôl i ni ei gwneud yn ofynnol math.php, gallwn ddefnyddio'r swyddogaethau
fel pe baem wedi diffinio nhw yn calculator.php.
Gadewch i ni redeg hyn gyda 'php calculator.php'. Gwych!
>> Dyna ni am ein cyflwyniad i gystrawen PHP yn.
I gael gwybod mwy, edrychwch ar PHP.net.
PHP Mae gan lawer o swyddogaethau adeiledig yn, ac yn ffodus ei dogfennaeth yn wirioneddol wych.
Fy enw i yw Tommy, ac mae hyn yn CS50.
[CS50.TV]
>> ... Braced, ydw i allan o le. Damia! Mae hyn yn y fideo olaf lle yr wyf yn defnyddio geiriau mawr yn y cod.