Даг Ллоид: Тако смо урађено много посла у Ц, и Ц је стварно кул Језик јер вам даје способност да се заиста зарони низак ниво у својим програмима. Ми добијамо да радимо ствари као Заиста минута као манипулацију индивидуални бајтова меморије. Подсетимо се да показивачи стварно дозвољавају нам да флексибилност. Али ми увек треба да има да је ниво фино зрно детаља у нашим програмима? Вероватно не, зар не? А ако ћемо имати траде-офф између тога у стању да заиста, заиста минуте ствари и заиста, заиста велике ствари које не треба да мисле о, не морамо да имплементирају ови заиста великих идеја ако већ су изграђена за нас, углавном за изградњу велике програми или велике пројекте, вероватно ћемо грешити на страни да су више језика ствари изграђен у за нас, уместо низак ниво ствари. И ту ПХП-заиста долази у. Дакле, један од разлога да учимо ПХП у ЦС50 је да је то јако инспирисан Ц И у ствари, по мом мишљењу, Заиста постоје два прогениторне језици који су веома честе данас. Ц и Лисп. И они су предак језика јер сваки други савременог програмирања језик који је развио Од тада је инспирисана од једне или друге синтаксически. ПХП је веома сличан синтаксички Ц, док је језицима као што Сцхеме, на пример, која Можда сте чули, је веома инспирисан језику зове ЛИСП, што је старији језика. Дакле, разлог учимо ПХП-у ЦС50 је да, знајући Ц као фундаментално као ти у овом тренутку, покупити ПХП коју ти даје Способност да се уради много веће ствари нивоу него, Ц не, није толико од препрека, зато што већ имате Основна идеја синтаксе. Ц је био око за готово 45 година у овом тренутку. ПХП је био око за око 20 година. И у том 25 година У међувремену, програмера утврђено да су много би а имају способности вишем нивоу, и грешке и борбе од 20 година између довело до ПХП и другим модерним језицима. ПХП је велики избор језик за софтвер да аллов-- за софтвер то-- где си треба да урадимо ствари које у Ц су у ствари компликована. Тако на пример, радни са стрингс у Ц је веома компликовано, јер као што знамо, жице у Ц заиста само низови знакова. То није уграђена тип података. Или можда још битније, нешто што нисмо ни покрити у Ц, ста ако треба да урадите неки умрежавање рачунара? У реду? Ц има способност да то уради, али тако је волшебни и тако тешко да заиста раде. Зар не би било лепо ако Језик је имао уграђен, лак начин да спроведе умрежавање? А ПХП је језик који чини да, или олакшава да, доста висе. Као што сам рекао, ПХП је веома тешко надахнута Ц. Синтакса је врло слична. И тако, надамо се, требало да чине прелаз од једне до друге мало мекше него неки други језици могу бити. За почетак писања ПХП, само отвори фајл са екстензијом .пхп фајл. Технички ово није заправо очекује, али ако желите нешто попут синтаксе наглашавајући у ИДЕ, тако тог типа имена, или имена варијабли, функције, знате, кључне речи на језику су наглашени специфична боја, обично Желим да именује своје датотеке са одређени филе ектенсион. Тако смо по имену наше фајл са .пхп продужетак, али и са ПХП, све ПХП код пишемо у томе датотека мора бити затворени у овим ПХП граничници да видимо овде на екрану. Угао носач пхп за почетак. Тада пишемо све наше ПХП код који желимо између. И онда ? угаона заграда да затворите. Ако то не урадимо ово, онда шта ће се десити? Неће се срушити. Неће се стварно упропасти наш програм. Али то неће имати ефекат који желимо. Шта ће се догодити, заиста, није да када покушамо и покренути овај програм, све не између тих делимитерс ће се штампати дословно. Неће се заправо изврши код, да ће само одштампајте га дословно. Зашто је тако? Дакле Ц је оно што је познато као компајлерском језику. Ти си вероватно упознат са корак прављења своје програме, окретањем .ц фајлова и .х фајлове у једној извршне са шминком, посебно уз Цланг као наш преводилац. ПХП, међутим, не имају ову еквивалент. ПХП је оно што се зове тумачи језика. А шта то значи? Па, то значи да не морате да га претвори наш изворни код за нула и јединица унапријед. Уместо тога, постоји програм, која се још назива ПХП да разуме ПХП и могу некако успети у лету. То није баш тачно тачни, али то је прилично добра аналогија шта се дешава. То је тумачење оних нуле и јединице у ходу. И тако, ако се не зна како да обради несто, ако не зна како да Процес ПХП, вероватно хтео да ставим тај текст тамо, зар не? Вероватно сте желели да ставите код у тамо, чак и ако није међу ПХП-- ПХП граничници. Али-- па не иде да га обришете за вас, само ће у основи је одбаците. Тако да ће штампање да се на екрану. Ово изгледа као да је то лоша ствар, али заправо је Биће то заиста добра ствар, јер ћемо види када говоримо о Пхп веб развој, јер то значи да можемо уметне ПХП и ХТМЛ. Можемо их користити заједно створити више динамичан веб страницу. Али више о томе у Видео на ПХП веб развој. Дакле, шта је синтакса ПХП? То је оно што овај видео је све о томе. Хајде да причамо о томе. Дакле, за почетак се, променљиве. ПХП променљиве постоје. Само Постоје два велика Разлике из Ц. Први је да постоји Тип спецификатор. Ми не морам да кажем инт, Чар, пловак, све те ствари. Не морамо више да урадим. ПХП је модеран језик. То могу да схватим шта си покушавамо да урадимо или да бест Ваљда о томе шта покушавате да урадите. Дакле, то је лепо. Друга ствар је да све променљиве имена морају да почну са знаком долара. То је нешто да се навикнем на. То је мало чудно, јер то је тако да може да разуме ПХП шта је променљива, а шта није. Дакле, сваки Име променљиве почиње са знаком долара. Дакле, у Ц бисмо могли рећи нешто овако, инт = 54. Не морамо то да урадим више у ПХП. Можемо само рећи $ х = 54. И можемо рећи, на пример, у Ц, ако смо фунта-укључују ЦС50 .Х заглавље датотеке, могло би се рећи стринг израз = "Ово је ЦС50." Не морамо то да урадим у ПХП-у, мада. Можемо само рећи $ фразу = "Ово је ЦС50." И, у ствари, стринг сада уграђени тип података у ПХП-у, односно тект разуме шта је стринг. То је одвојено од низа карактера као што је то у Ц. Све ваше омиљене условне изјаве Ц су и даље на располагању за вас да користите. Дакле, није велика транзиција тамо. Можемо говоре-- можемо имати ако изјаве попут ове. ако $ и 43, или $ З = 15. Дакле, то је прилично једноставан. Можемо имати ако и друго. Можемо имати ако и иф. И приметио нешто лепо овде, и ово је врста један од оних Предности ПХП наспрам Ц, обавештења коју функцију Ми не користимо овде? Ми користимо == да упореди променљива, $ име, у стринг. Нисмо могли да у Ц, зар не? Морали смо да користите функцију која се зове СтрЦомп или СтрЕндЦомп или било њених повезаних рођака. И тако већ видимо ове предности. Не морамо да урадимо нешто као глупо или можда неинтуитивном као позвати функцију под називом СтрЦомп ако само желите да тестирате да ли је вредност једнака стринг. Само би једнако једнако, као што сам могао било шта друго. Дакле, ту је предност. Понекад, узгред буди речено, могао би види иф као једна реч, иф. И то је у реду у ПХП као добро. Дакле, понекад можда видети. То није грешка. ПХП заправо разуме иф. Не знам зашто су је одлучила да спроведе да, али као што смо видели много пута широм наше видео до сада, ми програмери лове ит ако можемо да урадимо ствари брзо, тако да се отараси тог простора је очигледно велика предност. Дакле, то је, ако и иф. Такође имамо тројног оператера, опозив знак питања дебелог црева, за стварно кратко форму ако друго или условно гранање. И очигледно, у томе, оно што покушавамо да урадимо овде се доделити променљиву $ писмо било истинито или лажно, зависно да ли $ вар је алфабетски знак. Дакле, ово је прилично сличан исалпха да смо упознати са из Ц. То је нека врста еквивалента у ПХП. Ова функција је очигледно зове цтипе_алпха, али тако је како ми то радимо у ПХП. Дакле, све ово ће бити је, ако $ вар писмо, $ писмо је истина. Ако $ вар није писмо, $ писмо је лажна. Такође имамо и даље прекидач изјаве. Подсећамо и оне из Ц као добро. На самом врху тамо, тако ми радимо нешто слично гет Инт или се стринг. Дакле, ПХП има да изграђен. Ми више не треба ЦС50 библиотеку. Ми само можемо користити функцију реадлине. Шта то це да уради је штампање од поруци, "Ваша држава, молим те ", а затим трепери упит чекајући корисника на улаз неке информације. Сада погледајмо шта друго можемо да урадимо са прекидачем. Ако сте користили раније, Можда се сећате да прекидач је ограничена прилицно целе бројеве и ликови, али сада можемо користити жице. И у ствари, у изјави прекидач у ПХП је доста флексибилнији од свог рођака из Ц. Лоопс. Као уређаја, сви Ваши стари фаворити су и даље ту. Имамо вхиле петље да рачунају од 1 до 100 у овом предмету. Ми смо радили док петље се то рачуна од 1 до 100, и имамо за петље се то рачуна од 1 до 100. Дакле, нема велики скок тамо. Синтакса је прилично много исти, осим сада смо користећи уместо долар знак променљива проглашења целе променљивих или тако нешто за наше шалтерима. Ево где ствари постају Много боље него Ц, мада. Низова. Тако се сећате кад смо били говоримо о Ц, у циљу за нас да расте и смањују комплета информација, морали смо да те некако дефаулту овом идејом повезане листе, јер Ц низови су фиксирани у величини. Нисмо могли да их смањи. Нисмо могли да их расте. Морали смо да прерасподели меморије и раде све ово лудило или користите повезане листе, које заузимају мало више простора. Али у ПХП-у, низови су више не фиксиран у величини. Они могу да расту и они могу смањити. Дакле, опет, ови 20 година која је постојала између првог пуштања Ц а прво издање ПХП одлучили смо да, знате, то би било сјајно ако можемо да урадимо то. И тако смо реализовали овај. Дакле, ПХП низови нису фиксиране у величина, и зато ПХП-не стварно има програмер усмерена напред појмови врста, можемо мешати типове података у нашим низова, такође. Дакле, ми чак не морају да користе све природних бројева или сви Флоатинг Поинтс, можемо да имамо комбинацију свих различите врсте у једној низу. Проглашавање низ је прилично јасно. То је као било која друга променљива. $ Нумс = арраи (1, 2, 3, 4), као низ функција који је уграђен у ПХП који ће створити низ за вас. То ствара низ од четири вредности, бројеви у овом случају, под називом $ нумс. И ту је више него један начин да то урадите. И идемо у види ово много у ПХП. ПХП је развијен од стране многих другачији људи и расте и расте и расте. Обично постоји не само две или три начина да то урадите нешто у ПХП, ту је обично као 10 или 20. Ево само још једна заједничка начин да се прогласи низ. $ Нумс = квадратних брацкет 1, 2, 3, 4. Дакле, ово је врста слична угла Ц је бр-- коврџаву браце запис, а. $ - или да ће бити инт Нумс квадрат брацкетс једнако коврџаве стезник 1, 2, 3, 4. У ПХП је $ Нумс = квадрат држачи 1, 2, 3, 4. Али оба ова примера овде ми дај низ од четири у овом случају природних бројева. Шта ако желим да се осуши нешто сада? Па ја само могу да кажем $ Нумс 4, који Опет, ми смо и даље броји од 0 овде у ПХП ће бити пета елемент низа. Могу само да кажем да. Нећу да трпи сек кривица, јер је мој низ је само настави да расте да прими то. То је лепо, зар не? А у ствари, не треба ни да одредите где желим да га ставим. Ја само могу да кажем ово и само тацк је право на крају, или сам могао чак само кажу $ Нумс 20 или 1.000. Није битно. То је и даље само да тацк је право на до краја. Тако да може да расте, а ми смо као- неће да га покрије овде, али могу да уплитање или трака елементи од низа, као, и низ ће се смањити за смештај који сада недостаје или празан простор. Постоји још један начин да се осуши нешто на низа, што је функција зове арраи_пусх. Па опет, само ова идеја буде у стању да раде ствари на много различитих начина. Дакле, видели смо три различита начина сада да се осуши један елемент на низа. Дакле, ово додаје још један елемент до краја $ Нумс низа. И можемо мешати наше врсте података. Тако сам могао имати низ не 1, 2, 3, 4, али 1, труе, 3, 4, где је истинито је Боолеан, а онда ако желим да се осуши на другом елементу у том низу, можда стринг, стринг "пет," Могао бих то да урадим. А сада моје низ би бе 1, истина, 3, 4, пет. Реч пет, а не цео број 5. Дакле, много флексибилности тамо. Флексибилност добија још боље, мада, јер ПХП има подршку за нечим назива асоцијативна низ. И некако смо разговарали нејасно о асоцијативних низова у Ц у контексту хасх табеле, јер шта асоцијативних низови су стварно све о праве кључ вредност паир мапирања. И у овом случају, ако кеис-- ми смо упознати са низовима из Ц, тастери су индекс бројева. 0, 1, 2, 3. А вредности су оно што сматрају да арраи 0, низ 1, арраи 2, и тако даље. Дакле, тастери су индекси, и вредности су оно што је у том арраи локацији, одређено том индексу. Али у ПХП-у, не морамо да радимо ово појам низа 0, низ 1, низ 2 више. Сада можете да користите стварне речи да мапира кључеве вредности. И тако сам могао рећи овако нешто. Ја би могло да створи низ користећи квадрат носач синтаксе на следећи начин. $ пице = квадратних заграда "сир", а затим ова врста двоструког стрелице нотацији, 8.99, "феферони," арров 10.99-- 9.99, и тако даље. И шта се овде дешава? Шта ја заправо радим? Ја сам стварање кључне вредност паир мапирање. Дакле, уместо да каже, на пример, пице: 0, комада 1, 2, пице Ја сада могу да кажем пице сир, пице феферони, и односе се на вредностима повезане са њима. Дакле, овде су наши кључеви у зелено. Сир, феферони, поврћа, Буффало пилетина. Овде је стрелица која чини ово кључна вриједност пар мапирање. А онда ту су вредности на тој арраи локацији. Дакле, то је као да кажеш низ 0 једнако 8.99. Кључ је 0. Вредност је 8.99. Ја сада могу да кажем низа сир, или ово Случај пице сир, сир је кључ, и оно што сам наћи на пица сир је 8.99. То је вредност која сам тамо налазе. Дакле, могу да кажем ствари волим. $ пица сир = 7.99. Реци ми да распродају. Желим дис-- Желим да одустане цена сира пица. Или могу користити поврће пица као део стања, или могу додати нови елемент моје Арраи, баш као што сам могао да урадим раније. Ја могу додати нови елемент на ово асоцијативна низ са кључном "сланини" а вредност 13.49. Али ова врста представља проблем, ако мислите о томе на тренутак. Како бисмо поновити кроз овај низ? Jel tako? У Ц, ми бисмо имати фор петља, типично да ће ићи од 0 до величина низа минус 1. Низ има н елемената у код, валидни показатељи су 0 до н минус 1. Дакле, могли бисмо користи за петљу у корак кроз сваки елемент. Али то није стварно случај више, зар не? Сада, где имамо кључну вредност пар мапирања где су кључеви речи, како да поновити над свим речима? Па, срећом, ПХП има начин да се баве и ово, па ћемо се вратити скочити да петље за секунду увести Четврта врста петље која постоји у ПХП-зове фореацх петље. И шта Еогеасп петља ради је у основи је иста идеја. Можете га користити за било коју врсту низа. Али то је у основи Иста идеја као за петљу, изузев уместо да користите индек бројева, само имају овај чудан синтаксу где зовете сваки елемент име за потребе овог петље. Дакле, у овом случају, фореацх ($ низ ас $ кеи). У основи, као тај коментар белешке, унутар тог фореацх петље, то ће ићи преко сваког елеменат $ арраи, која је обично Биће то асоцијативна низ, али може заиста бити било која врста арраи који желите у ПХП. И сваки пут када у фор петљу да би могао рекао $ арраи квадратних заграде $ ја, само могу рећи $ кључ. Тако да $ кључни постаје алиас за сваку Индекс вашег ПХП асоцијативног низ, и тако да можете га користити тако. Тако, на пример, имамо Сада имамо нашег пице низ. Ја сам некако ушушкан у углу тамо тако да могу да га користе да раде брзо примјер. Ако кажем фореацх ($ пице као $ пица), па, шта се дешава? Па, ја ћу поновити кроз сваку један елемент низа $ пица, и на тај начин, ја ћу да зовем сваки елемент, кад сам унутра тела тога за петље, $ пицу. Дакле, то је нека врста станд-у, опозив, да $ пица је станд-у за казивање $ пице квадратних заграде $ И Ако смо помоћу фор петље, где смо могли да иду од $ И = 0 да, у овом случају, $ и = 3. Ако нисмо имали кључне вредности парове Овде, ово би био елемент 0, 1, 2, 3, и ми бисмо користи за петљу да иде $ пице 0, $ 1, $ пице пице 2, $ пице 3. Дакле, сада само $ пица је замењујући за тог појединачног кључа. Дакле, шта је ово да одштампате? Ја штампање $ пицу. Шта ћу наћи ат-- ако одштампати $ пице, $ И? Jel tako? Ако ћу да одштампате ИТХ елемент пица, шта ћу да одштампате? Идем да одштампали Вредности на тој локацији, зар не? Као да смо радили то у контексту Ц, не обично користе нашу итератор променљива, инт и = 0, и је мањи од 3, и ++, да одштампате 0, 1, 2, 3. Ми смо штампање низ 0, низ 1, низ 2, 3 низ. И шта ово исписује је то. То је списак цена. 8.99, 9.99, 10.99, 11.99. Сада брзо напомена. Еогеасп петља не нужно одштампате ствари у ред. Није гарантовано. То обично ради. То је обично на основу налога у који су то елементи се додају низа, па имајте то на уму. То не би било у реду. Али Еогеасп петља ће поновити Сваки елемент преко низа у питању. У овом случају, опет, да је низ $ пице. Ја могу променити синтаксу, мада, ако Желим оба кључ и вредност. Уместо да се каже $ пице ас $ пицу, могу да кажем ово. И ако погледате шта сам истакнута у зелено овде, изгледа као кључног вредност пара мапирање. И тако, ако тебе-- чак и ако нисте сасвим сигуран шта ће то урадити, што вероватно можете погодити да $ прелив иде да буде кључна у овом случају и $ цена ће бити вредност. Дакле, ја сада замењује сваки елемент од $ пице као кључна вредност пар, и сада могу да се односе на тастеру и вредност, који би могао у руци, на пример, као следи. "Читав" - ово је много штампа дешава овдје-- "читав" прелив "пица кошта $" цену, а затим Ја одштампати период и обрнуту косу црту н. Дакле, сада, обавештење опет имам приступ кључ, $ прелив, а вредност, $ цена. Да ли можете да погодите шта је ово ће да одштампате? Има много штампаних изјава, али постоји само један обрнута коса црта н тако да ће штампати нешто на ентире-- на једној линији кода. Ако могу да се односе на тастеру а вредност, онда сада, уместо да буде у стању да одштампате ценама, Ја могу одштампати овако нешто. "Читав сира пица кошта $ 8.99." И сада користећи сву кеис-- сир, феферони, поврће, биво цхицкен-- и вредности. 8.99, 9.99, 10.99, 11.99 Дакле, то је само другачији начин да уради фореацх петље да се уместо само дајући вам приступ вредностима, само даје тебе-- то вам даје приступ кључевима и вредностима. Дакле, штампање информације. Већ сам то урадио пар различита начина, можда сте приметили. Два функције прије свега сам види се штампа и ехо. А за скоро свим намерама и сврхе, они потпуно исти. Она су ту веома суптилан Разлика то није ни вредно узимајући у, али у суштини свуда можете користити принт вероватно можете користити ецхо такође. И то није само два. ПХП има много другачији начини да се одштампа ствари, а има и начина да се интегришу варијабли у средини низа. Дакле, сећам из Ц, зар не сећате шта функција можемо користити да замени променљиве у ствари желимо да одштампате? Вероватно користити функционишу доста. иф, зар не? Дакле, то је оно што смо имали раније у контекста нашег фореацх петље. Имали смо ових пет одвојеним саопштењима принт, јер је то био једини како ја стварно знао у том тренутку како да одштампате поруке. Нисам знао како да интегришу променљива $ прелив у моју ПХП кода. Па, ако само узео погодим, иф, заправо би радили. иф је функција која могу користити у ПХП, као што сам и могу га користити у Ц. И тако несто овако, иф, Опет, ми смо упознати са тим. Први% с замени са вредношћу од $ преливом. Други% с замени са вредношћу од $ цену. И тако сам интерпеллатинг, што је само фенси начин да каже да сам лепљење варијабли у тој локацији. Дакле, ја прикључивање $ преливом где црвени% с је и цена $, где плави% с је, а онда ћу добити поруку, "Читав сира пица кошта $ 8.99." Није једини начин да то урадим. Можда бих желите да користите ову методу. Ово је заправо оно што је најчешће назива променљива интерпелација. Ја могу користити ехо. Ја би отисак такође, као што ћемо видети. Али шта се дешава овде? Пре свега, морам да побегне знак долара. Јер, запамтите, када смо заправо били штампање цените на пице, Заправо сам их обликовање монетарне фигуре са знаком долара. Али ми користимо зараду такође да представљају имена променљивих у ПХП, а посебно када сам користећи овај метод коврџавом Браце променљива интерпелација метода, морам да побегне мој знак долара тако да не Мислим да говорим о променљивој. То је заправо догађа да, дословно штампање долара знак. Тако некако је аналогију у оно што видите на крају тамо. Није ли у ствари штампа обрнута коса црта Н, зар не? То исписује нову линију карактер. То је-- то неће Принт обрнута коса црта знак долара, то ће одштампати само знак за долар карактер. Иста идеја. Есцапе секвенце, што такве ствари се зову. Али приметите да не радим свака врста% с замена, Ја сам само буквално зачепљења у ових варијабли. И тако у ово-- шта ће се десити овде је да је вредност $ топпинг-- опет, Само складу са оним што смо били говоримо о тако фар-- сир би добили прикључен унутра. А $ цена ће бити шта год је вредност на пице, угластим заградама, сир, што је 8.99. И то би такође одштампати "Читав сира пица кошта $ 8.99." И као што сам рекао, ја би принт овде уместо ехо, и функционалност буде прилично исто. То би одштампати исту ствар. Постоји још један начин да се то уради, и то је још једна предност ПХП раду са жицама. Можемо да урадимо стринг конкатенацију. Могли би ово у Ц, такође, користите функцију која се зове стрцат, али опет, морали смо да позовите одвојене функције. То је цела ова збрка да уради. Морали смо да фунту-укључују стринг.х. То је била производња, зар не? Али сада сам могу да користе овај дот оператор да спојите жице заједно. Дакле, ја Надовезивањем "читав" и онда без обзира на вредност $ преливом је, , затим још стринг "трошкови пица $" и онда Надовезивањем год вредност $ Цена је, и онда на самом крају сам тацкинг на рок знак обрнуте косе н. И то би такође одштампати "у целини" - опет, ако говоримо о први елемент тог пице арраи-- "Читав сира пица кошта $ 8.99." Период, обрнута коса црта Н, опет, са на $ прелив и $ цена заменом за оно што смо наведено у нашем фореацх петља као кључни вредност пара мапирање. ПХП се рукује функције. Функције су некако саставни Ц, као што смо видели. Као варијабле, ми не треба да одредити врсту функције повратка, јер то није ни битно. А ми не наведете врсте података било које параметара, јер они не стварно материја, као што смо видели у ПХП. Свака функција је уведена са функцијом кључне речи. Тако смо указују на ПХП скрипте која чему говоримо о је функција. И не морамо да бавити главни уопште, јер преводиоца, ПХП преводилац, ради од врха до дна, без обзира. Ако се види можете направити функција позива, да ће да нађемо функцију позив, чак и ако је касније долази. Али то ће читати од врха до дна, тако да не треба да одредите, Овде је место где можете почети. Можете почети на линији 1 вашег ПХП и ради доле. Дакле, овде је како би се створили функција се зове хард_скуаре. То очигледно узима једну параметар, који зовем $ Кс. Ова функција је компликовано само да илуструју различите ствари. Још увек имамо повратне вредности. Ја сам користећи фор петљу овде. Али то је у основи само, шта је ово износи је само $ к пута $ х. Оно што ја заправо радим је само додавање х до 0 к пута или $ х на нулу $ к пута. Али то практично је потпуно исто као и множењем $ к $ к пута. Још увек могу вратити вредност, у овом случају $ резултата, и ја сам направио функцију у ПХП. Ево како би га користити у контексту. Дакле, можда сам у неке ПХП датотеке. Обратите пажњу на плаво тамо да Ја сам користила своје ПХП делимитерс, угаона заграда знак питања ПХП. Између то су сви ПХП да желим да пишем. Дакле, очигледно ћу добијам-- Идем да подстакне корисника да ми дају број, продавницу која променљива, продавница у том променљива $ к, све што ми је дао. Онда ћу ецхо хард_скуаре те вредности, и очигледно иде да се осуши на новој линији као и, а касније ћу дефинисати функцију хард_скуаре тако када сам чине позив на хард_скуаре, зна шта ја говорим. Сада, сам и могао да урадим овако нешто. Ово је нешто другачија. Скоро је потпуно исто као што смо раније видели, осим уместо да каже само $ х тамо као параметар хард_скуаре, Кажем $ к = 10. Дакле, ово је пример Одбрамбени програмирање, чува своје програме против злонамерних корисника. Ово је један начин да то урадите неку грешку провере да нисмо баш има као опција у Ц. нисмо могли одредите подразумевану вредност нечега. Увек смо морали да провери дали, на примјер, ако смо направили позив за ГетСтринг, било је најисправније ако одмах након што проверио да, проверили смо да ли је стринг да нам је дао корисник није једнако нулл, јер не желимо да почнете рад са нултом стринг. Ево, ово је један од начина да чувају против тога. Уколико корисник не дају нам нешто некако, шта ћемо да радимо? Па, само ћемо рећи шта год нису нам дају, ми ћемо само да прикључите 10. уместо тога. Дакле, ако нису нам вриједност, користите само 10 по дефаулту. И ево, приметити да правим позив на хард_скуаре, али нема брз кориснику, зар не? Само правим празан позив. Али моја функција хард_скуаре очекује параметар. Шта је ово да одштампате? То ће одштампати 100, зар не? Зато што корисник није дај ми ништа. И тако ја ћу претпоставити да 10-- 10 је дефаулт вредност. И то ће исписати од 100 на сопственој линији. ПХП фајлови не морају да бити само један фајл. Можете комбиновати заједно више фајлова, баш као што можете у Ц. начин смо урадили у Ц је типично да урадите #инцлуде да се хеадер филес извукао. Ми то не радимо у ПХП. Ми радимо нешто што се зове рекуире_онце. А ту је и цела ова ствар, шта је ово __дир__? То је само посебна променљива, или посебна константна, Заиста, да одређује шта Ваш тренутни директоријум је. И тако ће тражити у вашем тренутном директоријуму за фајл под називом цс50.пхп овде овом примеру, и да ће се држати тај фајл на врху ПХП програма, под претпоставком да сте ставили потребна Једном линије на врху ПХП датотеке. Дакле, ПХП је првенствено користи, али не искључиво користи, као језика за програмирање веб-басед. То је стварно како је дошло до тога да. Али, то је пуна језика, као што смо видели. Видели смо прилично све ствари да може да уради да су слични Ц, а то може урадити паклени много више од тога. Али пошто је то пуно језика, а ми може да уради командне линије програмирање у њему. Можемо покренути командне линије програма. Све што је потребно да покренете команду линија програм који је написан у ПХП је да имате ПХП преводиоца. Дакле, то је нека врста аналогно има компајлер на вашем систему Ако желите да састави свој Ц кода да га претвори у извршних датотека. Морате имати ПХП преводиоца која постоји на вашем систему тако да можете да тумачите ПХП фајлове. Под претпоставком да не, и обично ово преводилац се зове ПХП и то обично у пакету са највише преузимања или инсталације ПХП да можете добити на мрежи, а свакако назив ПХП преводиоца имамо у ЦС50, ИДЕ. Све ти је тип ПХП датотеке. И шта ваш програм је урадити је да је ће трајати до преводилац, то је ће игнорисати све што је није у питању марк-- између или, угаона заграда знак питања пхп ПХП граничници, и да га одштампате, и то ће тумачити и извршите код унутар ваших ПХП делимитерс. Дакле, хајде да скокнем до ЦС50 ИДЕ и имају поглед на неколико ПХП фајлова, ради пар ПХП фајлова, у командна линија интерфејс ЦС50 ИДЕ. Дакле, овде смо у ЦС50 ИДЕ, и ја сам узео слободу отварања фајл под називом хелло1.пхп. И очигледно, садржај овог Филе су само ПХП граничници тамо, и између, ехо ("Хелло, Ворлд"). Ово је прилично једноставна ПХП-програма. Ја ћу само да спустимо мом прозору терминала овде, и ја ћу да куцате пхп хелло1.пхп, притисните ентер. Здраво Свете. То је вероватно оно што смо били очекујући да уради, зар не? Идемо горе и да други погледате програма. хелло2.пхп. Прилично је иста ствар, не много дешава овде. Овај пут, међутим, ја ћу да подстакне корисник да ми њихова имена. Ја користим опет ту реадлине функција. $ име = реадлине. То је брз, "Како се зовеш?" Изгледа да сам штампа је у свом реду. А онда, тако да линија испод да ће бити брз где корисник може унети своје име. И онда сам помоћу мало променљива интерпелација овде на линији 3 да одштампате "здраво" и без обзира врсте корисника. Дакле, ово је аналогно говорећи Поздрав, зарез,% с ако смо користили принтф у Ц. Дакле, идемо и тумаче овај програм. Дакле, опет ћу идите доле мом прозору терминала. ПХП хелло2.пхп. Које је твоје име? Даг. Здраво, Даг. Имам и други фајл под називом хелло3.пхп. Ја ћу разбистрити екран са Цонтрол Л, и ја ћу извршити то. Које је твоје име? Даг. Здраво, Даг. Дакле, понашање је идентичан хелло2.пхп, али зашто је то хелло3.пхп? Па, овде је разлика. У том случају, обавештење да он лине 1 овде, Имам нешто што није између ПХП делимитерс. Ја сам само штампање оут-- или ја сам откуцао, "Како се зовеш?" Када је ПХП преводилац види ово, то нема појма како то тумаче као ПХП, па уместо да није, само ће то испљунути. Тако приметити на линији 3 сада, мој позив реадлине, више нема брз. Ја сам само заправо догађа када да-- ПХП преводилац види ово, да ће исписати "Које је твоје име?" Онда је види, Ох, ОК, хере'с-- све остало ће бити тумачи као ПХП, тако зато ово ради. Ја не морам да подстакне нужно корисник да-- унутар реадлине, Могу само да га напољу од ПХП делимитерс и дозволити преводиоца да га само одштампати за мене. Дакле, ви у ствари не само да имају један сет ПХП делимитерс у вашем програму. Можете заправо има неколико њих, отварање и њихово затварања јер потреби. Дакле, хајде да погледамо у неколико програма у ЦС50 ИДЕ где смо илуструју ову идеју постојања више комплета ограничену ПХП. У реду, па сам отворио фајл овде се зове адд1.пхп. А погледајте шта се овде дешава. Баш као и пре, имам један ПХП-сет делимитерс. Идем да одштампали порука, "Молим вас дајте ми број." Онда ћу да прочитам линију и ставите га у променљиве $ бр1. Онда ћу да одштампате поново. Дај ми други број. Прочитајте линију од корисника, продавнице све што унесе у $ бр2. Додајте их заједно и чувајте је довести у променљиву зове $ сума, а затим одштампати "Тхе Збир ових два броја је ", а затим интерпелисати тамо променљива $ сума. Дакле, хајде да ради ово преко преводиоца да потврди да је то оно што очекујемо. ПХП адд1.пхп. Молим вас дајте ми број, 3. Молим вас дајте ми други број, 4. Збир ова два броја је 7. То је 3, плус 4. ОК? Дакле, ништа страшно фенси тамо. А сада да отворимо адд2.пхп. Ево, имам пар ПХП делимитед сета тамо, зар не? Линес 1, 3-- линије 1 и 3 нема ПХП делимитерс. Дакле, када преводилац види их, то је само ће испљунути тачно оно што сам тамо откуца. Дакле, ту сам радиш све моје што је довело. На линијама 2 и 4, видимо да је веома познато $ пхп врста делимитерс, тако да те две линије су да извршава као ПХП. И онда он лине 5, имам ово чудна ствар овде, зар не? Овај угао заграда знак питања знак једнакости. Чак ћу увећање мало даље. Можете видети то је оно што сам Говорим о тамо, овај $? =. Испоставило се да је тако чест да разлог због којег смо отворили скуп ПХП граничници је да одштампате вредност. И то је све што ћемо да урадимо. Али чак и скраћеница за то. $? = Је ПХП скраћеница за рекавши нешто као $? пхп ецхо збир од бр1 и бр2. Дакле, ово је само још један скраћеница за то. Дакле, ако сам покренути овај програм, пхп адд2.пхп. Ја ћу зоом доле мало. Молим вас дајте ми број, 4. Молим вас дајте ми други број. А пошто ја не стварно стало типови података у ПХП-у, могу да кажем 4.8. Збир ова два броја је 8.8. Та функција се понаша прилично исто као што смо очекивали, као. И имам још један отворен овде се зове дице.пхп. Покушајте поново. Имам још једно овде назива дице1.пхп, који такође, види, има ту угао носача питање означите знак једнакости запис унутра, не приметим да је у овом случају сам позива функцију Ранд, који као ти може очекивати генерише случајни број. "Ваљани Ти си" и да ће израчунати неке случајни број, Мод 6 + 1. Тако да ће ми дати број у опсегу од 1 до 6. Имајте на уму да ће ми дати Мод 6 број у опсегу од 0 до 5, али ако сам симулацију јамб ролне, што је оно што ја радим овде, Не желим те коцкице да иде од 0 до 5, желим коцкице које иду од 1 до 6. И то је начин да се ја у опсегу од 1 до 6. Радим ово два пута. Дакле, очигледно је да сам роллинг две коцкице у овом програму. Зато ћу разбистрити екран, и ја ћу пхп дице1.пхп. Ваљани сте 4 и 2. И ако покренете програм опет, ваљане је 5 и 5. Дакле, сваки пут када покренете програм, Идем различите бројеве, јер сваки пут радим Дакле, почиње готово. То ће генерисати нова сет случајних бројева за мене. Дакле, ако смо навикли покренуте програме из Ц, смо навикли да куцате ./ назив програма, зар не? Тако смо учинили све наших програма у Ц до сада. Ми то можемо урадити у ПХП као и додавањем нешто што се зове ствар на врх нашег ПХП датотеке. Знам да је то нека врста глупе речи. То је скраћеница за хеша праска. То је прва два лика тамо. Запамтите зовемо узвичник често прасак у компјутерској науци. Такође може бити оштру праска. Постоји неколико начина да а то тумаче. Али то је у основи је посебна врста командовања да ПХП преводилац схвата као, ох, желим да изврши овај програм, што је очигледно / корисник / бин / пхп који је заправо где ПХП преводилац посебно живи на нашем систему. Тако је-- шта се овде дешава је преводилац разуме, о, Ја сам очигледно требало да користе У овом програму да покренете ову слику. И тако вам омогућава прескочити корак да имају да кажу пхп сометхинг.пхп. Постоји још једна цака овде, а то је да ако Желим наше програме на раде као што је очекивано, ми треба да урадите нешто што се зове фајл дозвола промена. И ми ћемо иде-- и мало причамо нешто више о филе пермиссион промене у нашој видео на МВЦ, али је довољна да кажу да је то оно што треба да урадите како би ваш .пхп фајлова извршна. Дакле, хајде да погледамо ово као наш крајњи пример тамо у ЦС50 ИДЕ. Дакле, овде у ИДЕ имам два фајла у ово ПХП-директоријум који се појављују да не буде зове .пхп. Имам функција се зове адд-- Имам фајл под именом адд3 и фајл под именом дице2. Дакле, хајде да узмемо брзо изглед и отвори адд3. И као што видите, на почетку од мом досијеу имам ову ствар, зар не? Ово хасх знак узвика. Сада, такође ћете можда Приметићете да из неког разлога, Немам никакву синтаксу истицање више, и то је оно што сам алудирао раније, који је био да ако не име мој досије .пхп, немам корист синтаксе истицање више. Овај фајл је управо звао адд3. Тако да можете покренути касније са ./ адд3 а не ./ адд3.пхп. Дакле, то је још увек разлога-- добро, то је још увек важи ПХП али то није синтакса је истакао, јер Овај фајл се не зове сометхинг.пхп. То је једина права разлика Овде, плус ствар. Дакле, хајде да видимо шта се дешава када Трудим се и покрените програм. ./ Адд3, баш као и ја бих са Ц. Басх. ./ Адд3 дозвола ускраћена. То је оно што ћеш да видим да ли заборавити да користите команду цхмод да бисте променили дозволе датотеке. Како се испоставило, редовно ПХП датотеке не могу само бити погубљени. Они се могу тумачити, али смо радим нешто другачије овде. Ми смо га извршења. И тако морам да додам дозволу извршења, цхмод а + к у адд3. Онда могу да кажем ./ адд3. Молим вас дајте ми број. 5, 6. Збир ова два броја је 11. Слично томе, ја сам већ цхмодед дице2, тако да сам само да укуцате ./ дице2, ти ваљани а 1 и 1, ти Докотрља 5 и 4, и тако даље. Дакле, то је прилично Идеја о ПХП синтаксе, зар не? Има много да се кроз, знам. Али надам се да си сада видио да ПХП није толико разликује од Ц и заиста нам даје могућност да се ствари на зарез или два. Ми заправо не морате да бринете превише о-- не знамо стварно морате да бринете превише о детаљи су на ниском нивоу ми морао да брине о с Ц, зар не? Можемо се фокусирати на виши Ниво ствари које тект омогућава нам да радимо и да се за подразумева да ће то радити за нас. Тако да нам даје могућност сада, преласка са Ц на ПХП, да програме који су много више сложен и можда много више робустан. Надам се да забавите се рад са ПХП, а ја сам Доуг Лојд. Ово је ЦС50.