[Музички] ЗВУЧНИЦИ 1: Ова е CS50 и ова е крајот на недела седум. Денес е можеби каде сме навистина да ве учи јазици. Воведовме во изминатите неколку недели HTML и CSS, ниту еден од нив се програмски јазици. И навистина, дури и ако ние не погледнете во речиси сите тагови кој доаѓа со HTML и скоро сите на CSS особини што доаѓа со, тоа е вид на него за HTML и CSS. Ние само општо да почне да се претпостави дека ќе се разбере општи идеи тагови и атрибути, и страници да биде испратена од клиентот до серверот. Затоа што денес ние почнуваме да се погледне друг програмски јазик PHP. Ние ќе треба да го направите ова супер брзо. Ние нема да ве научи на PHP, сама по себе, слично како ние не се стремат да се покаже Ц, сама по себе, туку програмирање. И навистина, еден од цели за овој курс не е да ве научи Ц, или HTML или CSS, или PHP, или било кој број на други зуи зборови или акроними, туку на компјутерски науки и како да програма фундаментално. И навистина, денес ние почнуваме да се земе оние обука тркала исклучите сите понатаму од страна на летање преку јазик наречен PHP, како што следи. Овде е она што овој јазик како изгледа. Излегува дека не постои потреба за главната функција во програма напишана на јазик наречен PHP. Така што веќе звучи малку поедноставно од C, со која ние ја познаваме. Излегува дека ако сакаат да декларирате променлива, ви го прават тоа речиси идентично C. Но тука е јасно една разлика тука кога ќе се изјасни за низа, или можеби две разлики. Она што изгледа различно? ПУБЛИКАТА: знакот на доларот. ЗВУЧНИЦИ 1: Да, има доларот потпис, кој ние никогаш не сум видел. И она што недостасува? Да? ПУБЛИКАТА: [Беззвучен] ЗВУЧНИЦИ 1: Да, не постои тип на податок. Значи излегува дека PHP е она што ние јавете се лабаво отчукува јазик, каде што C е силно отчукува. Лабаво отчукува само значи дека постојат различни типови на податоци, постојат стрингови, и ints, и плови. Но бројките на компјутер, кој надвор. Ви човечкото програмер не мора да го дознаам. Така што сите што треба да направите да декларирате променлива е знак за долар, името на вашата променлива, а потоа, на пример, цитат unquote, Здраво светот. И тоа е она што состојба како изгледа во PHP. Какви било разлики? Бр Значи излегува тие се идентични. И можеби ќе имаат помалку филијали или повеќе гранки, но синтаксата врти дознаете токму истото. Булова изрази може се нареди заедно. Булова изрази може да се anded заедно. Сеуште имаш прекинувачи. Дури и ако не сте го користеле овие, тие постојат во С и тие се функционално еквивалент во PHP. И всушност, тие се во PHP малку помоќен. Во C, вие само може да се споредуваат одредени типови на податоци како ints и карактери, додека во PHP што всушност може да се споредат целосна оперушинвам низи да се грижите за совети и слично. Значи тука е за телефонска линија. Ова е само pseudocode код, ако сакате. Но структурно е идентична со Ц. Еве еден додека јамка, pseudocode therefore-- идентичен со Ц. Еве еден направите додека loop-- идентични. И така не е вид на овој модел тука при има неколку други синтаксички карактеристики ние сме навистина се случува да се види. Всушност, тука е убав начин во PHP со што, ако сакате да iterate преку низа, и вие не сакаат да скокаат преку ментална и синтаксички карики на постоење int i еднакво на 0, јас помалку од n, јас плус plus-- која е само многу досадни синтакса. Може да се каже нешто повеќе тивките за секоја броеви како број, каде што, во овој случај знак за долар броеви, јас сум под претпоставка, е како низа броеви се нарекува. И тогаш јас сум под претпоставка број, еднина, се случува да биде променлива. И она што ќе го направи PHP за мене, како јас iterate во текот на овој циклус е, на секој повторување, тоа ќе се ажурира на променлив број да биде о елемент во бројки, множина. Па тоа само се справува со сите тоа за мене. Без загради, без знак за долар, нема полу-запирки. Тоа е само малку поедноставно. Па, ако сакате низа, излегува вас може да направи нешто прилично слична на В Синтаксата е малку поинаква. Но, тука е наречен низа Доларот потпишан броеви. И јас го користам, во PHP, плоштад загради, излегува. И ние ќе треба да се види овие повторно сепак во JavaScript-- друг јазик. Јас само го користите квадратни заградата нотација да се има запирки листа на на цели броеви, во овој случај. Но, тоа ми дава низа. Но, дури и повеќе моќни во PHP, ние, исто така, се она што обично се наречен асоцијативни низи. И многу јазици имаат овие, како и. Она за С низи е дека индекси за низа, нешто што ви е користат во квадратни загради преку кој пристапувате елементи, мора да биде што? ПУБЛИКАТА: [Беззвучен] ЗВУЧНИЦИ 1: Тие треба да бидат броеви или цели броеви, конкретно од нула до. Па, во PHP, и, се претвора надвор, во другите јазици, можете да почнете да се има индекси кои не се бројки. Но тие се всушност зборови или фрази, така што наместо обидете се да се сетам каде нешто е, или се чуваат во променливата i, што всушност може да се користи зборот и да каже that-- може да се каже еден збор се допаѓа ова. Така знак за долар цитат е име на променлива овде. Ова е нешто фанки синтакса тоа е асоцирањето вредноста два клучни пара за оваа променлива. Конкретно, ова ми дава низа што е со должина од 2. Но индекси не се 0 и 1. Индексите се цитат unquote симбол и цитат unquote цена. И вредностите на овие индекси, односно, е полн пансион за Фејсбук и 79,53 $, кога ќе трае провери цената за тоа. Што значи тоа? Па, тоа значи дека наместо на пишување на код како овој, каде што се користи да се направи нешто како доларот sign-- или поточно, во C Јас дури и не ќе има знак за долар. Јас би го сторил нешто како наводници, а потоа Јас би го направил заградата јас да се добие во некои произволно бројно индексирани вредност. Почнувајќи од денес во PHP, ако сакаат да добијат некои вредност, ние вид на имаат повеќе семантички експресивност. Само фенси начин да се каже што можеме само јавете се работи она што се. И ако сакате да се добие во нешто симбол, сега вие буквално направи цитат unquote симбол во квадратни загради наместо само број. Па тоа е убаво, погодност. И тоа е вид на тоа за сега. Има гроздовете на други функции во PHP. И навистина, PHP доаѓа со пословичен кујна лавабото. Десетици, стотици функции доаѓаат со PHP-- толку многу повеќе од дојдоа со Ц. И тоа не е наменет да победат туку да им помогне на ќе сфатат дека ние не повеќе треба да се напише код тоа е вид на долу тука концептуално. Сега ние само може да почне со искористување на многу повеќе напредни функции кои јазици како PHP има. Па ние не треба да се грижите движат работите околу во меморијата. Ние не треба да се грижите за Примерок и сите на овие пониско ниво, моќни детали, кои ќе се борат со тоа, ако не се борат со, pset5, но може да почнат да наскоро земе здраво за готово. Всушност, да напишеме супер едноставна програма во PHP, како што следи. Одам да оди глава во CS50 ИРО тука, а она што јас ќе одам да направите е креирате нова датотека, дека многу едноставно се случува да се нарече здраво точка PHP. Така, наместо на точка в, тоа е случува да се нарече точка PHP. А потоа и во оваа датотека, Можам да почне пишување. Но, се покажа дека една работа што треба да знаете е дека секој PHP фајл во целина, треба да почнам со некои специјална синтакса. Слични во духот со HTML, но повторно, PHP е јазик за програмирање, не маркап јазик. Значи секоја датотека, и тоа е еден вид глупави потрага јас ќе признаам. Отворена заграда, прашалник, PHP. И тоа е само на начин јазик е да се каже, еј, компјутерски тука доаѓа некој код напишани на јазик наречен PHP. А потоа и на самиот крај на вашата датотека, го прават вид на вид на спротивното. Вие не се напише PHP, повторно, вие само направи прашалник, аглеста заграда. А потоа нешто се стави во внатрешноста на овие две тагови, така да се каже, ќе биде, или треба да биде, PHP код. Значи, да се направи нешто супер едноставен. Одам да се оди напред и да се направи за печатење дефиниција, Здраво светот, обратна коса црта n, спаси. А сега во мојата брза, јас ќе одам да направи, бидете hello-- не, јас ќе одам да направите, дот црта здраво. Не, дот коса црта, хм. Така нешто е различно. И навистина, ова е клучната разлика меѓу PHP и јазици како C В. беше т.н. Составувач јазик. Што тоа значи за да се состави Ц? Она што беше импликација? Је. ПУБЛИКАТА: напишал тоа во машински код па тоа би можело да биде извршена од страна на компјутер. ЗВУЧНИЦИ 1: Токму така. Прво мораме да го претворите во т.н. машински код, нули и единици, пред тоа всушност ќе биде извршна и разбрана од страна на компјутер. Од страна на Интел внатре. Од страна на процесорот во внатрешноста на компјутерот. PHP, пак, е она што се нарекува толкува јазик, која значи дека ти не го компајлирате во нули и единици, машина код, ти наместо да го оставиме тоа како изворен код. А вие наместо да го давате како влез на програмата, преведувач дека некој друг го напишал пред неколку години, разбира линија по линија, карактер за карактер. Значи со други зборови, луѓето таму напишал програма со која ќе се погледне во вашиот код линија по линија, и да дознаам што компјутерот треба да се направи, без конвертирање директно на нули и единици. Значи, ако види за телефонска линија, оваа т.н. преведувач ќе биде како, добро, јас треба направи нешто повторно и повторно и повторно. Што да правам? Дозволете ми да се погледне на следната линија. Дозволете ми да се погледне на следната линија. И тоа навистина го толкува линија по линија. Па да го изврши, јас не го користат шминка. Јас не го користат коса црта точка во овој случај. Јас наместо направи PHP, кој е името на една програма, a.k.a. Преведувач, тоа е пре-инсталиран во CS50 ИРО, и сега јас треба да помине командата, која е сосема едноставно името на поднесе дека сакам да се интерпретира. Или повеќе случајно, дека сакам да се кандидира. И ако јас притиснете ентер, ние го имаат. Здраво свету. Сега излегува дека јас користени за печатење def намерно за да ни го премости од C до PHP. Повеќето PHP програмери, како што ќе видиме, дури и не се мачи со користење печати дефиниција. Тие се само користење на функција наречена печати, што Ц не го имаат. И така, ако јас го повторија сега, тоа всушност се однесува функционално исто. Не можам да користам за процент, а и проценти i и така натаму, но постојат и други начини во PHP тоа да го направам. Но, ова е само за да велат дека синтаксички, освен некои чудни работи се нагоре врвот, и некои чудни карактери надолу на дното, на концепти сега на програмирање во овој друг јазик се случува да биде иста. Всушност, ајде да направиме еден друг пример. Па јас ќе одам да се оди напред и затворете оваа датотека. Дозволете ми да се создаде уште еден кој Ќе му се јавам услови 1 точка PHP. Па никој не нула, затоа што она што го направив бев јас погледнав назад, пред неколку недели, имавме датотека наречена услови 1 точка В А што Што го направив беше претворена во мојата главата, и тука на хартија, и наскоро на курсот веб-страница, ред по ред во PHP. Па во Ц верзија, сме направиле нешто како Стринг а добива добијат низа. Така, тоа е малку различен да го направите тоа во PHP. Наместо тоа, јас сум само ќе да се направи, или подобро кажано, јас би можеле да имаат направено int n добива се int, во овој пример порано. Така, наместо на тоа, јас ќе одам да направите n добива прочита линија, јас би сакал цел број, молам. Така што ова е само мое прашува. И така, се покажа, и Јас нема да го знам само ова од тоа да имаат да прочита или види на функцијата пред, да се прочита линии на функцијата во PHP зема аргумент дека е брз за човекот, а неговата цел во животот е да се прочита една линија на текст дека тој или таа видови во. А потоа го продавници кои текст во променлива n. И сега јас можеби ќе сакате да се направи нешто како што го направив пред неколку недели, како и во недела еден од класа. Ако n е поголемо од нула, тогаш, јас ќе одам да ги позајмите, дека синтаксата ние само видов, печати дефиниција, сте го одбрале позитивен број, обратна коса црта n. Друго ако n е еднакво е еднаква на нула, јас сум да се оди напред и да каже, печати дефиниција, сте го одбрале нула обратна коса црта n. На друго место, во овој случај треба да се разбира да биде, печати дефиниција, сте го одбрале негативен број. И, секако, може да се имплементираат логиката на оваа работа во еден куп на различни начини, но поентата тука е дека синтаксички, речиси ништо не е ново. Тоа е само знак за долар и нова функција и да чита на линија. Но, во основа, она што е ново е сега јас сум ова толкување. Јас сум го поминува како влез на друга програма. Па ако сакате да ја извршите оваа, ако Јас не направи ниту една грешка, Одам да се кандидира PHP, на услови 1 точка PHP, Внесете, Одам да напишете во број 50, и да претпоставиме сега за сега тоа функционира. Затоа што логиката е истиот материјал како и една недела. Добро, па тоа е доста underwhelming, нели? Ние би можеле да го направите тоа во било која број на јазици. Да направиме нешто начин помоќни. Да завршиме проблем во собата пет. Па јас ќе одам да се оди напред и да го направите тоа. Одам да се создаде датотека наречен речникот точка PHP, и склони како што може да биде да се трка надолу многу забелешки, забелешките само ќе им помогне вас, ако се е дозволено за спроведување на проблемите поставени пет во PHP. Но ќе видиме колку брзо сега ние може да се спроведе истиот тој проблем во собата. Па во речникот точка PHP, идам да се претпостави дека таму веќе е датотека во светот наречен правопис. И, навистина, го направив ова однапред, и ние нема да одиме преку оваа линија по линија, но ако сте љубопитни подоцна и навистина сакаат да се заврши вашата глава околу разликите помеѓу C и PHP, буквално се спореди оваа датотека, правопис, од денешна изворниот код дека ние ќе ја објавите подоцна денес, наспроти стр сет пет правопис точка в, кој ќе ви даде, и тоа е речиси иста линија по линија. Има некои повеќе долар знаци. Неколку функции се малку различен. Но, тоа е убав начин на вид на видат колку ви преведе еден на друг јазик. И тоа е речиси идентична линија за линија. Но јас ќе одам да се претпостави дека тој постои, и она што јас ќе одам да направите овде се обидуваат да ја кренат својата пречи од страна reimplementing целината на проблемот постави пет начин побрзо отколку што сте го правеле досега. Така на пример, јас ќе одам да првиот изјасни за глобалната променлива наречена големина, и го постави тоа еднаква на нула. Сега тоа не е многу заштеди. Шансите се спроведува големина прилично многу исти, навестување или сугестија, ќе вечерва или утре, само со користење на глобалната променлива наречена големина, и тоа поставување еднаков на нула. Тоа не е особено неверојатна спојлер. Значи она што беа структури на вашите податоци избор, оние од вас кои се нурна во и да чита на спецификации, структури кои податоци имаат повеќето од вас го користите? Хаш табелата или обидете се, можеби некои нивни варијанти. Па спроведување хаш табелата во најмала рака, е вид на многу линии на код, нели? А не сите од нив може да биде функционална во овој момент во неделата, но тоа е во ред. Бидејќи во PHP, ако јас сакате хаш табелата, направено. Нели? Така што променлива што сум само прогласи е очигледно наречен знак за долар маса, по воведувањето порано. Но јас навистина само сакаат, на На крајот на денот, низа. Но не и бројно индексирани низа, затоа што тоа е како две недела работи, кога зборуваме за низи. Сакам хаш табелата. Но хаш табелата е навистина само конкретен начин да се каже, сакате асоцијативна низа. Вие сакате да бидете во можност да се соработник клучеви со вредности. Клучеви со вредности. Што е речникот, навистина? Па тоа е еден куп на клучеви. Зборови како јаболка, круши, и банана, и сите на овие зборови на англиски што ние ви рака. И вредностите кои сте ефикасно вметнување во вашиот речник се или вистинити, или отсуството, лажни. Со други зборови, вие сте вметнување целиот куп на клучните вредност парови, јаболко, тоа е вистина, круша, тоа е вистина, банана, точно. Така што кога ќе се добие или да се погледне до кои податоци во вашиот хаш табелата со вашиот чек функција, ти си или добивање на врати одговор, Да, јас ја најдов во мојата комплекс хаш табелата, или не, тоа не е таму, па да се врати лажни. Така да се направи тоа, сè што ми треба е податоци структура како што предложи порано. Јас само треба да биде во можност да се дружат зборови како, цитат unquote, симбол, со вредност како, тоа е вистина. Значи, тука е мојот хаш табелата. Ајде да всушност го користат. Па има неколку функции Јас треба да се спроведе. Одам да се оди напред и да гризат исклучување функција наречена големина. Што е потребно без аргументи. Јас не мора да се мачат со зборот, празнина, во PHP. Јас сум едноставно ќе се врати големина. И како настрана, PHP има оваа досадни minorly детали, каде што ако нешто не е глобален, мора да се кажете на функција, во која што ја користите тоа, еј, ова е глобална променлива. Така, можни се мали глупост, но вие мора да го направи тоа, сепак. Значи она што за товар? Одам да се имплементира функција наречена товар кој ги зема во име на речникот, исто како и во проблемот постави пет. И пред да се продолжи, забележи дека не сум пишуваше прилично исти работи. Што е очигледно различни во PHP за како може да се изјасни за функција наспроти Ц? Је. ПУБЛИКАТА: [Беззвучен] ЗВУЧНИЦИ 1: Не врати видот. И навистина, тоа е случај, PHP доколку тоа е лабаво отчукува, е исто така малку невешт во таа смисла. Не се определи како програмер она што се враќа на оваа функција. Вие ќе треба да всушност изгледаат на код за да дознаам дека надвор. Или да прочитате коментарите или документација. Па предности и minuses на Овие видови на одлуки. Но, јас не мора да се каже клучниот збор, функција. И кога ќе научиме JavaScript за неколку недели ние ќе треба да се види на истата работа повторно, но тоа е истата идеја. Името на функцијата, аргумент или аргументи или недостаток од него, а сега тука е и имплементација. Па јас ќе одам да ги намалат некои ќошиња само да биде драматична за само еден миг. Но јас ќе одам да се оди напред и да го кажам ова. Ова е како јас да се вчита датотека во низа. Постои функција во PHP нарекува датотека. Ќе го името на датотеката рака. Тој ви ја подава назад низа, внатре на која е секоја линија од досието. Од нула, еден, на нагоре до n 1 минус линии. Тоа е тоа, нели? Нема ѓ читање. Нема ѓ стапите ови. Нема проценти ови. Нема главоболки. Нема feof. Сето тоа работи со кои сте биле борење можеби, со р постави четири и пет, си оди. Па јас само да читате овие редови во на датотека, а потоа и знаеш што? Ако сакам да iterate во текот на овие зборови, Можам да направам, за секоја линија како линија. Запомни дека ова беше еден вид на паметни начин на процесирањето преку низа, индексот со индекс, и на секој повторување повикувајќи тековната линија, знакот за долар линија. И токму тука јас ќе одам да се оди и велат маса, држач линија, станува вистина. Со други зборови, ова е како јас вметнете ја во мојата хаш табелата во PHP. Велам знак за долар маса, што е мојот асоцијативна низа што беше празен за на линија код горе. Јас тогаш индекс во неа не, со користење на голем број, но буквално со користење на клучни зборови, кои ми значат. Можеби тоа е јаболко или круша или банана или што, но конкретно сум индексирање во неа, како што предложи порано. Ја користам името на мојот асоцијативна низа, а потоа јас користете цитат unquote во квадратни загради со еден конец, наместо на вистинскиот број. И така тоа е тоа. Функција на оптоварување е направено. Откако што јамка iterates, јас сум се стави сè во хеш табелата. Сега мали порекнување, има неколку работи што треба да се поправи. И верзијата Јас ќе ја објавите на интернет ќе ги имаат сите на нијанси, но најчесто само ќе биде некои грешка проверка и некои мали измени. Но, тоа е навистина обележје на тоа. Ако јас сега сакате да се спроведе на функција наречена проверка, која очекува зборот како аргумент, како би можел да се обратите за тоа го прават? Па, јас сум едноставно ќе се каже, ако во внатрешноста на мојата маса, на локацијата на текст, Ако е поставена. Па ако има is-- всушност, знаеш што? Одам да го направи тоа во малку pseudocode. Но, идејата е иста. Ако тоа е еднакво точно, врати вистина. Во ред. Else-- можете да вид на се види каде ова е going-- да се врати лажни. Направено. Проверката се направи. Прилично убаво, нели? И така што е ова навистина добивање на? И тоа исто така, ќе го намали некои ќошиња. Погледнете во онлајн верзија за сите мали нијанси. Но, тоа е главното обележје на тоа. Индекс во вашиот асоцијативна низа, a.k.a. Хаш табелата, види дали има вредност таму, и ако тоа е поставено на true, и ако е така, врати вистина. Значи ние сме намалено надолу сите на комплексноста. Значи каков вид на феноменално, нели? Јас нема да се мачат со неа завршувајќи со истовар, бидејќи во fact-- ох, знаеш што? Да, ајде да го завршам со бриши. Бриши во хаш табелата може да се погледне како функција бриши, се врати. Добро, така што е бриши. Бидејќи нема ништо да се исклучи, нели? Нема Примерок. Јас не се експлицитно да побара од оперативниот систем за ништо. Јас само што почнав со користење на променливи. И тоа исто така е манифестација на функции на повисоко ниво јазици. Значи, повторно, повеќето на овој термин ние сме биле занимаваат овде со C. Супер ниско ниво. Можете да ја видите меморијата на компјутерот. Можете да допре нешто што сакаат во RAM меморијата на вашиот компјутер, за подобро или за полошо. Тука, ние ќе треба да да се откаже од таа моќ. А мојот Бог, изгледа како многу помалку код напишав. Всушност, ако јас не се зборува и зборување преку моето пишување, ние ќе се направи со овој пример пред пет минути. Значи, што е цена се плаќа? Па ајде да ги разгледаме. Ајде да ги разгледаме. Одам да се оди напред и да ја стартувате CS50. Дозволете ми прво да одат во денешната примери каде Имам директориум текстови како порано. Одам да се кандидира на решение кое тоа доаѓа со проблем во собата наречена пет правопис, кој е во предвид CS50 е. А јас ќе одам да се пушта и на нешто големи како Библијата на кралот Џејмс, само така што ние навистина се стави на решенија на персоналот на тест. Сега понекогаш на интернет е малку побавно, малку побрзо, може да потрае додека да дојдете. Но, тоа се вкупно 0,56 секунди проверка на правописот на Кралот Џејмс Библијата користење решение на персоналот. Така прилично добар. Твое да биде многу побавно, и тоа е сосема во ред. Но, тоа е во право тука. Значи тоа е решение на персоналот. Ако одам во и исчисти PHP верзија. А јас ќе одам да се направи малку како печење шоу нешто. Ние ќе треба да преземе код напишав порано, така што е совршено точни. Бидејќи кодот го напишав не се случува да биде совршено точно само сега. Но, ако јас се кандидира на PHP верзија, Што треба да се откажат од денес? Ми требаа пет минути за да спроведување стр постави пет, тврдам. Која цена го платив? Је. ПУБЛИКАТА: брзина. ЗВУЧНИЦИ 1: брзина. Што мислиш? ПУБЛИКАТА: Тоа се случува да потрае подолго. ЗВУЧНИЦИ 1: Во ред. Ајде да видиме. Тоа се случува да трае подолго, нема да пишувам, но да го работи. Је. Значи, да се обиде ова. Па еве јас ќе одам да се оди напред и да се направи PHP на правопис, и затоа што на датотеката нарекува правопис. Па јас не сум водење на речникот, да се потсетиме, Јас сум водење на програма наречена правопис. Одам да се помине во истата датотека, Кралот Џејмс на петто место. Пловат страна. Ова само може да биде брз интернет, па не чита премногу во тоа. Но тоа се чувствува веќе сигурно. 1,26 секунди. Сега тоа е сè уште прилично проклето брзо, нели? И единственото нешто што се чувствува како повеќе како три, или четири или пет секунди, тоа е само затоа Интернетот е бавен. Времето поминато на компјутер е 1,26 секунди, наспроти Мислам 0.56. Така повеќе од двапати како бавно. Сега тоа е сеуште прилично ебам брзо, но тоа е манифестација на, навистина, тоа точната цена. Затоа што ние сме толкување во кодот линија по линија, и дека програмата PHP е читање ми код врвот до дното, лево кон десно, тоа мора да стори повеќе за размислување. Тоа мора да се вид на конвертирате тоа во внатрешноста на самиот на соодветните машина кодот на мува, така да се каже, иако механика се малку различни. Наместо само хранење на Интел процесор сировото нули и единици дека ја разбира природно. Толку апсолутно, рацете надолу, сме го плати цената. И код на јазик и писмо како PHP има тенденција да биде побавен. А мојот Бог. Па сега кога ќе се проверка на правописот ми податотека, јас потроши дополнителни 0,7 или па секунди наспроти 20 часа да се имплементира побрз проверува правописот, нели? Тоа е вид на пласирам. И ако сте само почетна стр постави пет, не може да биде 20 часа. Може да биде многу помалку од тоа. Но, тоа е пласирам, за реално. И ако сте водење код за навистина голема збирки на податоци, или дури и постарите хардвер, оние видови на разликите Сигурно може да се додаде. Било какви прашања досега? Је. ПУБЛИКАТА: [Беззвучен] ЗВУЧНИЦИ 1: Жал ми е, може да ви го кажам уште еднаш? ПУБЛИКАТА: [Беззвучен] ЗВУЧНИЦИ 1: Ти си откажува време. Па, така, да. Ќе се штеди време од страна на што не мора да го компајлирате, ако тоа е она што го бараме. И навистина, во CS50, повеќето од програми, иако тие може да потрае додека да се напише, тие се релативно кратко. Неколку десетици, неколку стотици линии на код, и така тие се компајлира прилично брзо. Но кога ќе почнете пишување поголеми програми, како и ако сте на Microsoft или сте Google и пишување навистина големи програми во C или C ++ или слично состави јазици, може да потрае неколку секунди, или дури минути или подолго да компајлирање на милиони линии на код. И таму исто така, дека Разликата се случува да се додаде. И всушност, штом ќе транзицијата денес, истиот ден денес, да се веб-програмирање користење на PHP, ти си ќе го најдете толку многу попријатно да се напише код кога вие не мора да се направи овие глупи чекори како промена на вашиот терминал прозорецот, напишете направи здраво, ре се стартува, превчитате прозорецот. Толку многу глупаво механички чекори кои само да се добие на начин на водење на интересно, забавно работа. И навистина ние фрли дека далеку со PHP. И ние може да комуницирате со тоа побрзо. Је. ПУБЛИКАТА: [Беззвучен] ЗВУЧНИЦИ 1: Секако. Може ли да се разјасни што е тоа значи да се толкуваат? Кога ќе ги собере на јазик како C, тоа оди надолу како што рековме на машина код, нули и единици. И Intel одлучи години пред тоа одредени модели на нули и единици претставуваат тоа, или одземање, или да ги печатите, или други основни операции. Во светот на толкува јазик како PHP, или JavaScript, или Пајтон, или Руби, или гроздовете на другите, наместо некој има напишано interpreter-- во овој случај, тоа е исто така, повика на PHP, идентична со назив на Language-- дека во суштина има голем циклус во тоа дека iterates во текот на сите линии на код дека ми се хранат како влез, како здраво дот PHP, или речник точка PHP. А потоа можете да мислат на нивната голема јамка како што имаат голем број на услови. И тие услови се каже, ако човековите има напишано клучниот збор за, да почнат да прават неговите или нејзините кодот повторно и повторно. Или, ако човекот има напишани на линија код, ако, само извршување на своите следната линија условно. Па тоа е навистина како толкување тоа во човечко чувство, линија од страна на линијата, и дека само е потребно време. Таа ги зема над глава. И така тоа е price-- добра question-- ние плати. Значи, да се направи уште една демо што е малку повеќе од драматична. Таму е, јас би рекол, една груба проценка на тоа 90% веројатност за неуспехот ужасно, но ќе бидете изненадени со 10% веројатност. Па секоја година ние се обидуваме да го направите ова, при што обидете се да се напише програма која оди преку проблем во собата нула, за кои сте поднесено Вашите телефонски броеви и многу други демографски податоци, и ние програмски можете да испратите текстуална порака. А потоа телефон на сите започнува beeping или вибрира, и тоа е само неверојатно, бидејќи Па, погледнете во она што компјутерите. Ова ретко работи правилно се чини, во голем дел, затоа што обично се на црната листа од страна на Gmail или некоја друга услуга за всушност се обидува да го направите тоа на ниво. Но смешно нешто е премногу, бидејќи ние немора сите тука денес, забава факт последен пат се се обиде ова пред две години, Мислам дека сум го напишала на програма Кој седи во јамка процесирањето во текот на сите студенти во класата, и секој од нив текстуална порака, и тоа го рече нешто како: зошто да не си на предавање? Љубов, CS50 бот. Немате поим колку апологетски и вид на болни пораки Сум добил одговор од n минус 100 луѓе кои не биле тука тој ден. И уште посмешно, посрамен story-- знаеш, ајде да го стави таму. Тоа е веќе на видео за неколку години назад. Така што наскоро ќе ме види пишуваат за телефонска линија, при што тоа е многу лесно да се пишува за грешка во која за телефонска линија, како што прв пат преку телефонска линија, можете испрати една текстуална порака. Вториот пат низ јамката јас требаше да испрати уште една порака, а потоа уште еден текст порака и уште еден. Но излегува дека ако се направи грешка кога програмирање, понекогаш можат да пишуваат програми кои испрати еден текстуална порака, потоа две СМС пораки, потоа три текстуални пораки до сите кој веќе доби текстуална порака. И како што знаете, се прави нешто, плус нешто, плус нешто, плус нешто, е голема О на многу на текстуални пораки, или n квадрат, или 0,10 $ текст порака, 20.000 $. За среќа јас хит control-C пред тоа што се случи, но јас не должам барем еден од вашите претходници $ 20 за 200 некои чудни текстуални пораки кои, не само отиде во неговиот телефон, но исто така, тоа беше како постар флип телефон па тоа се допаѓа истуркан на неговата меморија секој друг личен текст порака тој всушност добиле. Па ние имаме една цел денес, за да не го направите тоа. Можеби Вклучување авионски режим. Во ред. Па ајде да одиме во програмата тука callled-- дека јас ќе се јавам текст точка PHP. И однапред, имам две датотеки тука. Направив датотека за само вработените, што доби сите информации на вработените, сите имиња од веб-сајтот на курсот. А потоа и за сега јас само се стави некои лажни броеви 555-1212. Па овие не би всушност оди никаде. Но информации на внатрешноста на овој CSV датотека, кои ние разговаравме за кратко пред во контекст на датотека IO. Што не е во CSV датотека? Запирки променливи. И ова е вид на како многу лесни база на податоци, ако сакате. Таму е вид на кој вид на четири колони во оваа датотека, и таму грапав, но во суштина запирки претставуваат столбови во датотеката. Првата колона е ТФ или името на издавачот на сертификати. Втората колона е презиме. Третата колона е нивниот телефонски број. И четвртата колона очигледно is-- Четвртата колона е очигледно што? Добро, така што тоа е нивна превозникот. Па Веризон или Спринт, или она што не. И ако јас misspoke порано, CSV. Одвоени со запирки вредности е CSV тука. Значи она што можам да правам со ова? Па ова е само еден голем текст фајл, и тоа е вид на долго, нели? Како ова ќе се да биде вид на досадни. И излегува дека, ако јас сакате да испратите текстуална порака на, ајде велат Алекс тука. Дозволете ми да одам во мојот пребарувач и да излезете од режимот на цел екран само за да можам да ја префрлате и назад. Што излезе, ќе видиме, ако одам во тука, и влезете во Gmail, сите во право. Не гледај во овој дел. Само да се добие за да ја видите. се разбира, може да livestream уште се види она што го правам. Во ред. Значи тука е само Gmail со Сметка Џон Харвард. Па ако сакам да се испрати текстуална порака на Алекс, Јас може да се разбира составите порака. И што излезе, и јас сум тестирано со Алекс пред тука, за да можете да додадете одреден домен именува до телефонски броеви на луѓето, бидејќи таму постои во светот работи вика СМС портали за е-мејл. Која е фенси начин да се каже сите од нас кои имаат мобилни телефони, кои имаат телефонски броеви, се разбира, Постојат веројатно е за вашиот оператор, одреден наставка како во Vtext.com за Веризон текстуална порака dot com, кои можете да ги додадете на вашата личен телефонски број, а потоа или пријателите, или твоите родители може ви текст во тоа особено адреса. И Verizon има сервер, е-маил сервер, дека по добивањето на оваа е-маил, изгледа на нумерички дел и потоа користи било специјален индустрија магија тие треба да се, всушност, го испрати во текот на звучните бранови за да ги конкретно ќелија телефон. Сега ова е убаво, бидејќи јас не навистина знаат како да испратите текстуална порака или да се напише кодот уште за мојот мобилен телефон, а вие може да го прават токму тоа за завршен проект, но сега за сега сите Имам мојот лаптоп е тука. Значи сакам да iterate во текот на тој CSV датотека, линија по линија, по линија, по линија, зграби секоја од телефонски броеви на вработените, и нивната кариера и programatically, concatenate, тоа е, се поврзете го телефонот број со соодветен домен име а потоа испрати е-маил. Па тоа е многу чекори. И со среќа тоа го прават во В. Тоа е кошмар на ситуација за да отворите датотека, за да ја прочитате линија по линија, по линија, како што се се гледаат, или наскоро може да се види со проблемот постави пет, ако не Проблемот постави четири, а потоа да се динамички concatenate две жици заедно, затоа што во C, да преземе две жици и да ги комбинирате, она што го правите минимално треба да се направи, најверојатно? Што треба да се изјасни за повеќе меморија, нели? И да побарате, Примерок, можам да имам повеќе меморија? За да можам да се стави половина од оваа тука, половина од овој тука. Тоа е исто така многу чекори. И со таа точка што го изгуби интерес во глупави малку демо каде што ќе се направи телефонски звучен сигнал на сите. Ајде да се направи овој вид на PHP стил, при што само започнат со користење на повеќе од таа кујна лавабото. И идеите се во основа исти, но ние не треба да се грижите премногу многу за тоа пониско ниво. Да видиме како би можел да обратите за тоа. И само за да не се направи повтори грешките од минатото, Јас го напишав некои белешки за мене тука. И да видиме дали може да одиме преку некои од основните чекори, а потоа и за доброто на времето ние ќе можеби и намалување на некои делови на крајот. Одам да се оди напред и да се направи отворен Држач за PHP, за да почне оваа датотека. А јас ќе одам да се оди напред и да го направите тоа. Рачка поднесе, како што ќе наскоро да видат, всушност, повикува функција наречена ѓ отворен. И се сеќавам ова отвора датотеката. И понуда, unquote, r значи она, повторно? Само да го отвори за читање. Сега во p сет за, ти го направи ова. И да се справи може да биде ништо, Фу, бар, хемијата, секоја променлива име. Но генерално компјутер научникот ќе побара да ја отворам датотеката, кои ви даваат рачка датотека, нешто да се држат така да се каже. Јас сум само се случува да се направи некои грешка проверка. Па ако рачката е лажна, исто како и во C, јас ќе одам да се направи такво нешто, не можев да ја отворам датотеката, обратна коса црта n. И тогаш јас сум само ќе да се оди напред и да излезете. И што излезе, во PHP, Јас не сум во функција. Нема главна функција овде. Па јас не се враќа, само по себе. Јас излезете. Која е во суштина иста работа. И јас сум со излегување со еден y веројатно. Значи само една грешка на некој вид. Тоа е не-нула, па тоа е грешка. Добро, па ако јас сум овде долу сега во мојата програма имам отвори датотеката. Одам да се оди напред и да се изјасни низа наречен адреси, и во C јас ќе треба да се знае големината на низата однапред, нели? Или јас ќе треба да се изјасни за ова е покажувач, а потоа користете Примерок. А потоа секој пат кога ќе го прочитате преку друг ред во датотеката, Одам да треба да Примерок повеќе меморија, Примерок повеќе меморија. Тоа е болка во вратот. И за среќа, PHP, и Руби, и Python, и JavaScript, тие ќе се зголеми вашиот низи за вас автоматски. Нема повеќе Примерок. Нема повеќе меморија за управување. Компјутерот се грижи за тоа. Но цената што ја плаќате. Тоа е малку побавно. И за програма како оваа ние нема да забележи. Ние ќе треба да испрати 100 текстуални пораки. На пример нема да го чувствува тоа. Тоа навистина ќе почне само да се разлика на вашиот јазик на избор кога вашите податоци или вашите програми добие навистина, навистина доста голем, што ќе биде случај и повеќе, па со веб-базирани нешта. Но, за сега, ајде да се движам. Додека излегува постои функција во C наречен ѓ добие CSV. Добијат CSV датотека, кој трае поднесе рачка како аргумент, и тоа продолжува тогаш, по ред, од страна на ред по ред, да се прочита по ред. Па таа едноставно чита линија од текст од датотека. Но, она што е убаво за оваа функција, тоа не е само да ми го предаде една линија на текст. Изгледа за оние запирки, и парсира линијата. И да се интерпретира на линија значи да се подели тоа на одредени вредности во овој контекст. Со други зборови, знак за долар ред е променлива која е случува да ми даде еден куп на индекси. Ова се случува да биде Првата колона во мојата CSV. Ова ќе биде втор колона, ова ќе биде трет, и ова ќе биде четврти. Затоа што се потсетиме, и Excel не соработуваат последен пат се направи ова, но ако можам да го симнете на персоналот dot CSV. Whoops не, преименување. Ако јас преземам точка на персоналот CSV, и обидете се да го отворате, Јас веќе registered-- ох не се ажурира на Excel, бидејќи последен пат. Ќе видите дека во dot персоналот CSV, имам четири колони. Па кога ќе се чита во Првиот ред за Ејби тука, знак за долар ред 0 е препријатието, знак за долар ред еден е Лион, знак за долар ред две цифри неа, а потоа нејзиниот телефон превозникот е. Па тоа е се. И тоа е добро, бидејќи јас немора да дознаам сега каде сите оние запирки всушност се. Па јас ќе одам да се оди напред и да го направите ова, со оглед на тоа дефиниција, Јас ќе одам да се каже дека нејзиното име е во ред заградата нула, како што вети. А јас ќе одам да grab-- и всушност, знаеш што? Јас не одам за да се грижи за нејзиното име, во овој случај. Одам да се задржи тоа поедноставно. Одам да го направи нејзиниот број е во ред заградата на две, мислам. И превозникот неа беше во каде? Ред три, еден повеќе. Па ништо ново таму. Тоа е само нула индексирање во низа. И сега, јас ќе одам да направите следново. Ако превозникот еднаква еднаква на АТ & T-- Јас сум само се случува да имаат loop-- Сакам да креирате е-маил адреса, кој изгледа вака. Тоа се случува да биде 617-555-1212 на, што е тоа, text.ATT.net, е она што сакам да го направам. Па, како да го направам тоа? Одам да го направите следново. Нејзината адреса ќе биде нејзиниот број, и сега, дозволете ми да оди напред и да го направите тоа. Ова е некои фанки синтакса. Можам да ја направам трик проценти с, но јас, всушност, може само да се направи ова. Па тоа е кривица на PHP, но ајде да се разгледа она што јас го правам. Долари потпише адреса на по левата страна, само со променлива. Дај ми променлива. Јас не мора да се определи видот. PHP ќе го дознаам. На десната страна, што е типот податоци на кои целата работа на десна страна? Личи на стринг, затоа што има двојно цитати на екстремната левица и десница. Сега има и нов модерен синтакса тука. Има на големи загради, како и бројот на знакот за долар. Но се погоди што е тоа што синтакса веројатно кажува на PHP да направи за мене? Је. Само внесете вредност таму. Па нема отсто ови. Ние може да се користи за печатење ѓ или S печати ѓ или нешто слично тоа, но PHP и многу повисоко ниво јазици, си оди за да се види дека вие би можеле го прават истото функционално, можеби шест различни начини. И така тоа станува прашање на дизајн или стил. Значи ова е само криптичната барате начин да се каже, да ми даде е-мејл адреса, но, plug-in-на бројот на помеѓу овие големите загради. И големите загради нема завршуваат во финалето адреса. Сега можеме да го прескокнете во текот на некои од овие редови заради времето. Значи, ако на превозникот е еднаква еднаква verHorizon-- Whoops, Verizon-- Сакам да направам нешто многу слични, каде поштенска добива, понуда, unquote, број на text.ATT.net. А потоа можам да го стори истото вид на работа за остатокот од превозниците. Но јас само ќе го направи точка, точка, точка за сега. И сега ајде да претпоставиме дека Сакам да додадам низа, им помогнам. Сакам да го додадете во низа, наречен адреси. Оваа адреса, ова е како да додадете нешто на низа во PHP. Вие не треба да се направи Примерок. Вие не мора да се промени големината на низата. Можете само да се каже низа, притисни. Што сакате да push-- што низа Дали сакате да им помогнам нешто врз? Адреси. Што сакате да го одвлече во адреси? Адреса. И всушност, ако навистина сакате да биде умен, некои синтаксички шеќер за ова, така да се каже, што само значи, како можете да го направите тоа во поубава начин, ќе биде да го направите тоа. Дека премногу има ефектот на растечката адресите низата со големина на една, и потоа паднала дека дополнителните e-mail адреса во неа. Је. ПУБЛИКАТА: [Беззвучен] ЗВУЧНИЦИ 1: печатна грешка на друго if-- ох, превозникот. Во ред е. Тоа, исто така, не ќе се допаѓа мојот неуспех да спроведување на дел од оваа програма подоцна. Но, ви се заблагодарам за фаќање. Уште една бубачка. Ти благодарам. Ние сакаме тоа да биде Vtext.com. Да. Во ред. Значи, каде што го прави ова ни остави? Ние ги напишав на код за да се отвори датотеката. Имаме јамка за да iterate во текот на редови во датотеката. Имаме код кој додава на мојот низа, едно по едно време, на правилно форматирана е-маил адреса. Така што сите тоа навистина останува е да се испрати е-маил на секоја од овие луѓе. Па јас сум качил напред и си подготвува на следниот начин. Она што јас ќе одам да направите тука is-- и ајде оди напред и да ја прескокнете некои вистински код, која изгледа вака. Значи тука е пред-печени Верзија за што напишав порано. И ќе забележите дека го завршив спроведување Спринт. Го завршив спроведување на T-Mobile. Го завршив спроведување Богородица на мобилен. И јас ќе се извинуваме однапред. Има неколку превозници кои некои студенти во класата имаат дека јас не се мачат Енумерација во состојба ако тука. Па не сите текстови ќе згасне. Но, ајде да видиме што друго треба да се направи. Ги затворам датотеката, само како во P постави четири. И ова е нова синтакса. И ќе видиме малку малку на овој тек на време, особено со р постави седум и осум години. Но, ова е синтакса за креирање специјален тип на структура. Излегува има библиотека која доаѓа со PHP, PHP наречен писмото. Неговата цел во животот е да програмски испраќаат електронски пораки. Тоа е код на некој друг напишал дека го прави полесно за нас да испраќаат електронски пораки, така што не мора да се задржи ќе напред и назад на Gmail, и вметнување во е-мејл адресите на луѓето. Постојат еден куп на линии тука кои искрено, јас само вид на копирани и атипичен од документацијата. И во Всушност, ако сте љубопитни, го оставив сите на URL на документацијата во кодот што ние ќе ја објавите подоцна. И ќе забележите дека меѓу она што јас го правам е, јас го кажувам ова библиотека, користете серверот на Gmail, нели? SMTP разговаравме кратко околу кога ќе беа на Јеил за да се биде едноставен пошта Протокол за пренос. Тоа е протокол кој сервери се користи за да се испрати е-маил, и that's-- Gmail има една од тие. А пристаниште, ова е бројот на портата на TCP. Тоа е во ред, ако не сте виделе 587 порано. Само знам дека од документацијата. Тука е моето корисничко име. Одам да се користат CF50 бот. И во еден момент, јас сум само ќе напишете во вистинската лозинка бот е. А потоа долу тука, се забележи она што останува. Јас во собата ми од адресарот што треба да се Бот во CS50.net. Мислам дека нема да жалам испраќање текстуална порака на 800 луѓе кои вели, недостасуваш, љубов CS50 бот, можеби за оние кои не можеше да го направи денес. А потоа и во линија 76, она што можам да направам? Овој вид на изглед како C. Значи за I еднакво на 0, n equals-- сега брои е нова. Излегува дека ако сакате да се добие на бројот на работи во низа, вие не мора да се сеќава на него повеќе. Можете само да прашам функција наречена пребројувањето на гласовите, и тоа ќе ви каже колку адреси се во таа низа. А потоа јас ќе одам да се додаде адреса на е-пошта. И знам дека ова од користење на документацијата. Има додаток адреса функција. И сега има известување е само еден дел на синтаксата. Ние го видел ова пред во В. слични во духот. Можете да мислите на знакот за долар Испрати e-mail како променлива, што и да е. Но, тоа е во внатрешноста на struct кои не се само својства, променливи ако сакате. Но, се покажа дека во PHP, која е објектно ориентирано програмирање јазик, како Java ако сте ја направиле оклопни транспортери. Знак за долар пошта, ако сакате to-- тој исто така има функции во него, или методи. Значи ова е да се каже дека PHP посебни мејлер библиотеката, ако имам променлива од него, ако сакам да се јавите на функција што доаѓа со таа библиотека, за денешните потреби, само знам користите нотација на стрелката. Не постои точка нотација. Тоа е само на стрелката. Но тоа не е покажувачот. Тоа е само позајмен од синтаксата на C. Викни додадете адреса внатрешноста на предмет или променлива оваа библиотеката. Во ред. Магиската линија. Тоа е како јас испрати е-маил. Што е еквивалент на отворањето Gmail, ова пишување надвор, и притискање испратите. Но, тоа се случува да наместо да испрати е-пошта на оваа адреса, со ова тело, од CS50 бот. И сега клучните линија. Оваа линија беше отсутен во 2011 година како кога мислам дека минатата обиделе ова. Таа линија има, се разбира, расчистува адреси. Па логично, ако можам не ја избришете адреса после секоја итерација, првиот e-mail или текстуална порака оди на Алис, вториот оди Алис и Боб, третата оди на Алис и Боб и Чарли, оттука и многу скапа грешка Не сум направил за таа година. Ќе видиме. Дали има некои прашања пред да ви испрати сите текст порака со 10 проценти веројатност? Некакви прашања? Во ред. Ајде да си одам од тука и да се промени лозинка за да се она што треба да работат, најверојатно, ќе се црната листа од страна на Gmail. Така што тие не би можеле да одат сите надвор, бидејќи тие најверојатно не ни се допаѓа 800 испраќање пораки во за телефонска линија на сите одеднаш. Бидејќи тоа не е особено однесувањето на човекот. О, јас ќе одам да се промени една друга работа. На врвот, јас ќе одам да sent-- промените датотеката за студентите dot CSV. И јас нема да го отвори ова, но ова е идентични CSV датотека со не 100 вработени, но 800 студенти, исто од Харвард, бидејќи Јеил има вдлабнатина октомври оваа недела. И ми се чини дека вид на работа непредвидлива да се направи на сите текстуални сите од нив за тоа зошто тие не се во класата на одмор. Во ред е. Само Харвард студенти денес во внатрешноста на таа датотека. И сега да се вратиме на мојот терминален прозорец. Јас сум вид на нервоза. OK, па сега јас ќе одам да се оди во директориум, и PHP текст точка PHP. Како за една храбра волонтер? Па јас не сакам ова на мене. Добро, ајде до. Како се викаш? Маја: Маја. ЗВУЧНИЦИ 1: Маја. Качи, Маја. Во ред. Ајде да видиме дали тоа функционира. Ја ставив мојата е-адреса во file-- мојот телефонски број во датотеката, така што се надевам дека ќе се добие една, како и. Мило ми е што те запознав. Маја: На сличен начин. ЗВУЧНИЦИ 1: Значи сите што треба да направите е да притиснете ентер да испрати 800 СМС пораки, ако јас не се зафркнам. Убаво. Може да потрае некое време, статистички, додека не се добие на е-маил address-- текстуална порака дека е во собата во моментов. Ајде да се провлекува и да видиме. ПУБЛИКАТА: [свирка] ЗВУЧНИЦИ 1: Ах, да. ПУБЛИКАТА: Ох, gotcha. ЗВУЧНИЦИ 1: За јамки are-- ова не е бавно, бидејќи на PHP. Ова е бавен, бидејќи на Gmail ни Дроселиране и не ни овозможите да испрати повеќе од како еден е-мејл во секунда. Нешто? Ова беше тешка работа за мене да се тестираат на дома со само јас и мојата еден телефон, така. Е во тоа што се надевам дека од бот? Да? Не? Каже да. Не? Тоа е од пријател? Непријатно. ВО РЕД. Прилично сигурен дека тоа е работа, секако. Ух ох. Тие black-- ох, почекајте една минута. Ох, знаеш што? Еден момент ве молам. Само Маја и I-- Миа, што беше тоа? Маја: Маја. ЗВУЧНИЦИ 1: Маја, се случува да се знам што не е во ред тука. Ох, почекајте една минута. Мислам дека само испратени 100 текстуални пораки до 555-1212. Застани. Јас не може да победи секоја година. ВО РЕД. Маите? Утврдат дека во пост продукција. Мајката! Следниве од адресата. Добро, стојат од страна. Жал ми е. Болно е, секоја година. Добро, во еден момент. Ова е добро. Јас сум наместо случува да го направите тоа. Печати адреса. Добро, стојат од страна. Печати адреси, заградата јас. Да, ми се допаѓа тоа. Доларот sign-- ред јас ќе објаснам она што јас сум прави во еден момент, јас откако ја извршите оваа. Секоја година. Добро, тука ќе одиме. Имам just-- и не сакам да се покаже телефонски број на сите, но Маја да потврдам со климање на главата, дека таа го гледа секој е телефонски број, во класата што јас ќе одам да го копирате во програма наречена Gmail. И ако во Gmail, она што сакаме да се каже? Ми недостасуваш. Love-- тоа не е од мене. Јас дури и не се погоди уште испрати. Значи, да се оди напред и да се направи оваа, ако можам да зумирате. ВО РЕД. Па јас сум со користење на програма наречена Gmail сега. Ако Маите, што би сакале да кликнете на копчето Испрати, ние ќе симулираат она што кодот треба да се направи. Нешто? [БИПС] ПУБЛИКАТА: Да. ЗВУЧНИЦИ 1: Да? Спасение? ПУБЛИКАТА: Да. ЗВУЧНИЦИ 1: Мис вас. А јас ќе одам да се испрати на одмор. Јас испрати половина, бидејќи јас не мислам Gmail ќе ги споделите со оние одат преку. Па само се сеќавам, денес е денот што го научиле дека можам да го користите Gmail. Тоа беше страшен. А голем аплауз за Маја. Ти благодарам. Добро, така. што [БИПС] Добивме неколку сигнализација, да? Во ред. Сега ќе одам да се добие навистина 700 несреќни пораки назад од соучениците. Така барем ќе видиме ако тоа е достоен за тоа. Значи она што не беше во ред? Јас ќе дознаам што не беше ред по Всушност, но само погледнете колку е лесно тоа е да се направи тоа во PHP. Значи она што може ние всушност го направи сега кога имаме оваа експресивност на PHP. Дека was-- што беше ужасна. Во ред. Значи тоа е она што треба да се качил надвор. Ова ми тестирање утрово на мојот телефон, вистинската слика на екранот на мојот телефон. Но сега ајде да се разгледа зошто ние сме всушност воведување сите овие работи во на прво место. Значи целта не е да се пишуваат овие програми кои се напишани во командната линија, нели? Па напишав еден едноставен здраво програма, напишав малку програма што го прави conditionals, и се користи за читање линија и така натаму. И во теорија, јас само напишав програма со која се испраќаат 800 текстуални пораки, или дава да потрае 800. И дека програмата е за сите се уште работат во командната линија. И тоа се разбира е не на интернет, нели? Целта сега е да започнете да го користите она што го тврди е полесно да се користи јазик, daresay повеќе моќен јазик во однос од карактеристиките кои доаѓаат со неа, за да започнете пишување на код кој генерира веб страници. Па последно време и од минатата недела, ние разговаравме за HTTP и HTML. И, што е добро за HTML е дека тоа е само чист текст. И текст е, секако, нешто што можете да печати од буквално се јавувате за печатење ѓ функција или функција за печатење. И навистина, тоа е она што PHP е сега се случува да ни овозможи да се направи. Така меѓу примерите што мора во денешниот изворниот код, во прилог на некои од кодот дека јас се стави таму пред еден миг, имаме програми како оваа на пример. Froshims или Новак Интрамурална Спорт, е всушност еден од првите extracurriculars Јас почна да работи со години. И мојот цимер и јас, со некои други деца на кампусот, се користи за стартување на програмата froshims. Јас сум добивање на мојот текст пораки сега. Па сега можеме, назад во текот на денот, така што ова беше 1996 или така, имаше интернет, но немаше process-- таму нема веб-сајт за froshims. И така, ако си сакал да се регистрирате за фудбал или одбојка или што, ќе ги пополните оваа работа повика на парче хартија, и ќе одиме низ Харвард двор, а вие ќе го слајд во процепот пошта на Проктор, кои беше во Wigglesworth, еден од домови. И ова ти беа регистрирани. И тој или таа ќе потоа компонира е-маил за да ви рачно, слично како јас само не тука со Маја, а потоа ќе се потврди како да е регистриран. Па ова беше како ниско висечки плодови, така да се каже. Тоа беше вид на глупави што бевме користење на хартија за ова. Сакав да можеме да се оди само на веб страната, или имаат бруцоши оди на сајт, се регистрирате за спорт, и само да се автоматизира многу од овие работи со ставање на нивните имиња и пораки и така натаму во базата на податоци. И всушност, првата верзија на веб-сајт, со користење на супер грди HTML, можеби изгледале вака. Тоа беше, всушност, иронично, повеќе срамно изглед од ова се назад тогаш. Но јас се користи програмскиот јазик. Не PHP, туку се нарекува perl, кој е постар јазик, но многу слични во духот. И јас само се целосно таа учи за себе. И за тоа ми требаше време да го дознаам, прашуваат многу прашања на пријатели. Но идеите таму беа сосема исти. Затоа што PHP е навистина дизајниран за да не се работи на командната линија ние само се игра со, но за веб програмирање. Тоа е навистина врзани во својата функција поставено на интернет, како што следи. Ова е froshims. И ако сакав да регистрирани во оваа форма, ова е прилично грда, секако, но дозволете ми да оди напред и да биде помалку удобно студент, и што и спорт за Метјуз, кликнете на Register. Она што сакам да биде во можност да го направите е достави информација од формата, не на серверот на Google како ние го сторивме за последен пат, целосно мамење со користење на нивните заднинската, јас сакате да се спроведе мојата заднинската код. Што значи напише PHP кодот кој живее на URL-то дека податоците форма може да се поднесе. И потоа вашиот код, напишана во PHP на сервер, тогаш може да одговори на тоа корисник влез. Како неговото или нејзиното име, или ниво на удобност, или dorm, а потоа да се направи нешто со неа. Во овој случај, јас само глупаво го испечати како текст, кој не е толку убава. Но вие можете да сигурно Замислете, ако знаете како HTML, и наскоро ќе се знае како да се генерира HTML со печатење ѓ, и печатење, и слични функции, сигурно може да генерираат поубава веб-страница, која вели, еј Дејвид, ти сега се регистрирани. Ти си толку либерален студент од Метјуз, нели? Вие само може да се користи на целиот куп на% сед, или големи загради и знак за долар нотација јас се користи пред еден миг, да се генерирање на текст кој е повеќе лесен за користење од ова. Па ајде да ги разгледаме во оваа датотека. Froshim нулта точка PHP изгледа вака. Кога јас ја превчитате CS50 ИРО, froshim нула изгледа вака. Ова е froshim нулта точка PHP. И што ќе ја забележите оваа датотека? ПУБЛИКАТА: [Беззвучен] ЗВУЧНИЦИ 1: За жал, малку погласно? ПУБЛИКАТА: [Беззвучен] Сето ова е во HTML. И во фактот, што е, затоа она што е интересно за PHP е тоа што тој е дизајниран да биде, за подобро или за полошо, помешани со HTML код. И всушност, и покрај тоа што датотека, froshim нулта точка PHP, има коментар на PHP на врвот од него, сето тоа е само HTML. Но, од друга страна, ако јас се отвори, да да речеме, регистрирани нулта точка PHP, која само има голема коментар на врвот. Тоа исто така изгледа речиси целосно како HTML, освен за што? Линија, што, 21 изгледа малку чудно. Но забележите сум влегуваат PHP на владата со отворена заграда прашалник PHP. Тогаш имам некои работи. А потоа на крајот на таа линија Имам скоро, прашалник PHP. И тоа е она што мислам со испреплетени. Можете да пишувате HTML, кои едноставно сакате на серверот за да плукаат. Но, ако сакате да се направи нешто динамична пола низ страната, како внесете моето име или dorm или ниво на удобност, Јас може да се користи функцијата како печати r, кое е печати рекурзивен, што само значи печати ја оваа променлива, таа форматирање сепак сакате. Тоа навистина не е за хуманитарни цели, тоа е само за дебагирање или дијагностички цели. На тој начин го направив тоа. Ако јас наместо да одат froshims две точки PHP, известување дека акцијата на оваа форма не е регистриран нулта точка PHP како old-- претходната всушност беше. Но, тоа се регистрирани две точки PHP. Па ајде да погледнеме како оваа се однесува малку поинаку. Ако одам во верзија два. Ако тука, ако јас се регистрираат како Давид, помалку удобно, од домот на Mathews, зачленете се. Значи, овој пат тоа го рече, ќе се регистрирани, навистина не. Ајде да видиме што го направив тука. Ако јас се погледне во регистарот на две точки PHP, ова има некои повеќе PHP код. Тоа е малку почиста, иако уште обвива малку долго на оваа линија. Известување тука. Јас испечатите мојот HTML таг, мојата глава таг, мојот наслов таг, на главата, телото. И тогаш почнувам да се каже работи како влегува PHP на владата. И така што таг, отворена заграда PHP-- прашалник PHP вели: еј, сервер, execute-- интерпретираат следниве работи што се PHP додека не го видите на крајот таг. И покрај тоа што можеби не знаат кој било други PHP отколку што сум го видел досега, можете да вид на се прочита тоа прилично интуитивно. Ако името е празна, или утеха е празен, или dorm е празна, она што можам да направам? Што мислам кога го велам на корисникот? Мора да се обезбеди вашето име, удобност, и студентски дом, и така натаму. Друго, јас велат дека сте регистриран, и навистина не. И јас не се каже навистина затоа што нема база на податоци. Јас не правам ништо со податоците. Јас сум само фрлање далеку за демонстрација. Сега јас вид на skimped над линијата 22. Има повеќе синтакса таму, но знак за долар подвлекуваат пост е доста интересно. И тоа е она што е убаво за PHP. Во PHP, ќе мора како што се нарекува неколку супер глобални променливи. Тие се вид на уште повеќе поважно од глобални променливи. И овие, сите капитализирани како такви, се со PHP. Значи, ако имате сервер кој има инсталира веб сервер, како Apache, а ти инсталираат подршка за јазикот поддршка за PHP, одеднаш ќе се можат да започнат со користење на овие супер глобални променливи во вашиот код. И она што е убаво за PHP е дека ако само запише датотека која завршува со точка PHP, го стави на веб сервер, а потоа ќе поднесе формулар за да го преку таа акција таг и форма таг, таа акција атрибут во форма таг, PHP и веб- целосно фигури како да го зграби сите оние клучните вредност парови надвор од URL-то како прашање марка q е еднакво на мачки, тоа ќе дознаам како да н и мачки. Ако поднесете на фотографија, или корисничко име, или лозинката како што се Фејсбук, PHP ќе дознаам за вас каде што сите тие податоци ќе биде. И тоа само ќе му го предаде ви асоцијативна низа наречен знак за долар црта пост, или знакот за долар подвлекуваат добие, во зависност од тоа дали сте користење стапите или пост поднесоци. И тоа само ќе ви рака супер глобалната променлива, така што, ако сакате да добиете на името дека корисникот поднесени преку кој веб- форма, може буквално само кажете името на супер глобалната променлива, цитирам, unquote, име. И понуда, unquote удобност, и понуда, unquote студентски дом. И ние ќе треба да бидат во можност да се направи ова и многу повеќе со PHP. И иако ова беше виорот загледувам во неа, ние ќе се нурне во многу повеќе од следната недела. Ние ќе се воведе на база на податоци така што ќе се всушност ќе почне со спроведување на вашата е-трговија based-- како веб-сајт во времето за само една недела. Па ние ќе се гледаме следниот пат, и надевам дека сте ја добиле на текстуални пораки. Чао. [Музички] [Врата Отварање] ЗВУЧНИЦИ 2: Еј. ЗВУЧНИЦИ 3: Што се случува? ЗВУЧНИЦИ 2: Што правиш? ЗВУЧНИЦИ 3: Работа на проблем во собата. ЗВУЧНИЦИ 2: Ница. Висока пет. [Висок пет] Што are-- ух, што правиш овде? ЗВУЧНИЦИ 3: Само дружење. Само се вративте од салата. Не можев да им помогне, но известување кога висок fived, дека имате прилично груб раце. Дали одите во салата? ЗВУЧНИЦИ 2: Не Бр ЗВУЧНИЦИ 3: Еј, изгледаш прилично голема. Што е лошо, затоа што секој знае 8-топка се голем човек на кампусот. Високо-пет. ЗВУЧНИЦИ 2: Ух, бр. Не, јас мислам дека сум добар. Мислам дека сум добар.