[MUSIC PLAYING] HOPARLÖR 1: Bu CS50 edir və Bu həftə yeddi sonu. Bu gün bəlkə də biz deyil həqiqətən dillərin tədrisi. Biz son bir neçə ildə təqdim həftə HTML və CSS, nə olan proqramlaşdırma dilləri olunur. Həqiqətən, biz hətta baxmayaraq deyil təxminən bütün tags baxmaq ki, HTML və təxminən bütün gəlir CSS ilə gəlir xassələri, ki, HTML və CSS üçün bu növü var. Biz yalnız ümumiyyətlə lazımdır Siz ki, fərz başlamaq ümumi fikir anlamaq tags və atributları, və pages göndərilir müştəri server. Bu gün biz baxmaq başlamaq çünki başqa proqramlaşdırma dili, PHP. Biz bu super sürətli nə olacaq. Biz PHP özlüyündə sizə öyrətmək fikrində deyilik biz sizə öyrətmək talib etməyib çox kimi C, özlüyündə, əksinə proqramlaşdırma. Həqiqətən, biri Bu kurs üçün qol siz C öyrətmək üçün deyil, və ya HTML və ya CSS, və ya PHP, və ya digər hər hansı bir sayı buzz söz və ya acronyms, lakin kompüter daha və necə əsaslı proqram. Həqiqətən, bu gün biz almaq üçün başlamaq bütün off bu təlim təkərlər daha vasitəsilə uçan tərəfindən aşağıdakı kimi dil, PHP çağırıb. Bu dil kimi görünür. Bu, heç bir ehtiyac yoxdur çıxır ki yazılı bir proqramda əsas funksiyası PHP adlı dilində. Ki, artıq bir az sadə səslənir, belə ki, C-dən, olan biz tanış edirik. Belə çıxır ki, əgər bir dəyişən elan etmək istəyirəm, Siz C. demək olar ki, eyni bunu Lakin bir fərq burada aydın var Mən bir simli elan zaman, və ya bəlkə iki fərqlər. Nə müxtəlif görünür? Auditoriya: dollar işarəsi. HOPARLÖR 1: Bəli, dollar var biz əvvəl görüldü heç etdik ki, imza. Və nə eksik? Evet? Auditoriya: [işitilemez] HOPARLÖR 1: Bəli, heç bir veri növü var. Belə ki, PHP nə çıxır ki, biz bir loosely tipli dil, zəng C güclü çap olunur. Azad yalnız o deməkdir ki, yazdığınız müxtəlif data növləri var, strings və ints və üzüb gedirdi var. Lakin kompüter rəqəmlər ki. Siz insan proqramçı onu anlamaq üçün yoxdur. Belə ki, bütün siz bir dəyişən elan dollar işarəsi, adını dəyişən və sonra, məsələn, quote dırnağı bağlamaq, salam dünya. Yaxşı bu nə edir vəziyyəti PHP kimi görünür. Hər hansı fərqlər? Yox. Bu çıxır Belə ki, bu eynidir. Və daha az ola bilər filialları və ya daha çox filial, lakin sintaksis növbə eyni həyata. Boolean ifadələr bilər birlikdə sifariş etmək. Boolean ifadələr birlikdə anded bilər. Siz hələ açarları var. Hətta istifadə əgər Bu, bu C mövcuddur və onlar funksional istəyirik PHP ekvivalent. Və əslində, PHP onlar bir az daha güclü. C, yalnız müəyyən müqayisə edə bilərsiniz ints və chars kimi məlumat növləri, PHP siz həqiqətən müqayisə bilər, halbuki olmadan tam tüylenmek strings göstəricilər və kimi narahat. Belə ki, burada loop üçün var. Bu yalnız pseudocode edir indeksi, Siz. Amma struktur Bu C. eyni deyil Burada bir müddət loop, pseudocode var therefore-- C. eyni Eyni loop isə burada bir do var. Və belə cür var Burada bu model vasitəsi bir neçə digər sintaktik var xüsusiyyətləri, biz, həqiqətən, görmək olacaq. Əslində, burada bir gözəl vasitəsi PHP yol, Siz təkrarlamaq istəyirsinizsə bir sıra üzərində və siz vasitəsilə tullanmaq istəmirəm olan əqli və sintaktik hoops int i i az, 0 bərabərdir n daha, i plus plus olan annoying sintaksis bir çox deyil. Siz bir az daha demək olar fluidly hər ədəd üçün bu halda sayı olduğu kimi dollar işarəsi nömrələri, mən hərfinin alıram, bir sıra adlı nömrələri kimi. Və sonra mən sayı hərfinin alıram tək, dəyişən olacaq. Və PHP I təkrarlamaq kimi mənim üçün nə edəcək Bu loop üzərində hər iteration edir Bu dəyişən sayı yeniləmə olacaq cəm nömrələri İTH element ola bilər. Belə ki, yalnız mənim üçün ki, bütün yapar. No kvadrat mötərizədə, heç bir dollar işarəsi, heç yarı colons. Bu, sadəcə bir az sadə deyil. Yaxşı, əgər siz bir array, bu çıxır siz olduqca oxşar bir şey edə bilərsiniz C. syntax bir az fərqli. Amma burada bir sıra deyirlər dollar imzalanmış nömrələri. Mən PHP istifadə, kvadrat Mötərizədə, bu çıxır. Və biz yenidən bu görmək olacaq JavaScript başqa bir dil. Mən yalnız kvadrat mötərizə notation istifadə bir virgülle ayrılmış siyahısı var bu halda integers, edir. Amma ki, mənə bir sıra verir. Lakin PHP daha güclü, biz də ümumiyyətlə nə var assosiativ Diziler çağırıb. Və dil bir çox eləcə də bu var. C Diziler haqqında şey indeksləri ki, bir sıra, bir şey üçün ki, kvadrat mötərizədə istifadə edən vasitəsilə elementləri daxil, nə olmalıdır? Auditoriya: [işitilemez] HOPARLÖR 1: Onlar nömrələri olmalıdır və ya xüsusi sıfırdan up integers. Yaxşı, PHP, və, bu çevrilir həyata digər dillərdə, siz başlaya bilərsiniz rəqəmli olmayan göstəriciləri. Lakin onlar həqiqətən sözləri etdiyiniz və ya ifadələr, daha çox, belə ki, burada bir şey yadda çalışırıq və ya dəyişən i saxlanılır, Siz, həqiqətən, bir söz istifadə və demək olar that-- bu kimi bir söz demək olar. Belə ki, dollar işarəsi quote edir burada bir dəyişən adı. Bu qədər funky sintaksis ki, iki əsas dəyər şərik var Bu dəyişən üçün cüt. Xüsusilə, bu mənə verir uzunluğu 2 bir sıra. Amma göstəriciləri 0 və 1 deyil. göstəriciləri quote dırnağı bağlamaq var simvolu və quote dırnağı bağlamaq qiymət. Və bu göstəriciləri dəyərləri, müvafiq olaraq, FB Facebook üçün Mən davam zaman $ 79,53, bu bir qiymət yoxlanılır. Bunun mənası nədir? Bəli, bu o deməkdir ki, əvəzinə yazılı kodu Mən bir şey üçün istifadə bu kimi dollar sign-- daha doğrusu, C kimi Mən hətta bir dollar işarəsi olmazdı. Mən bir şey edəcəyini sonra quotes və kimi Mən bəzi almaq üçün bracket edəcəyini özbaşına sayısal dəyər yönümlü. Əgər, PHP gün başlayaraq bəzi dəyəri almaq istəyirəm, biz növ daha çox semantik ifadəlilik. Deyərək bir xülya yolu biz yalnız onlar nə şeyi zəng. Və almaq istəyirsinizsə bir şey simvolu da, İndi sözün nə dırnağı bağlamaq simvolu sitat kvadrat mötərizədə əvəzinə sadəcə sıra. Belə ki, bir gözəl rahatlığı var. Və indi bu sort var. Dəstələri var PHP digər xüsusiyyətləri. Həqiqətən, PHP ilə gəlir atasözü mətbəx sink. Onlarla, funksiyaları yüzlərlə ilə gəlib C. gələn çox php bir çox Və üçün nəzərdə deyil əzmək deyil, kömək ki, biz heç bir həyata Artıq kod yazmaq üçün ki, konseptual burada sort aşağı edir. İndi biz yalnız istifadə edərək başlaya bilərsiniz daha inkişaf etmiş xüsusiyyətləri PHP kimi dillərdə var. Beləliklə, biz narahat yoxdur yaddaş ətrafında şeyi hərəkət. Biz malloc narahat yoxdur bu aşağı səviyyədə bütün, Siz güləşmək ki, güclü Məlumat ilə pset5 ilə mübarizə əgər, ancaq başlaya bilər verilən tezliklə almaq. Əslində, bir super yazmaq imkan PHP sadə proqram, kimi edir. Mən CS50 daxil baş getmək üçün gedirəm Burada IDE və mən gedirəm nə çox sadəcə, yeni bir fayl yaratmaq salam dot PHP adlandırmaq gedir. Belə ki, əvəzinə dot c, bu davam dot PHP adlandırmaq üçün. Və sonra bu fayl, Mən yazmağa başlaya bilərsiniz. Amma bu çıxır ki, bir şey bilmək lazımdır ümumiyyətlə hər hansı bir PHP fayl lazımdır ki, bəzi xüsusi sintaksis ilə başlamaq üçün. HTML ruhda oxşar, lakin daha, PHP bir proqramlaşdırma dili deyil bir biçimlendirme dili. Belə ki, hər bir fayl və bu sort var axmaq qəbul edəcəyik axtarır. Open bracket, sual işarəsi, PHP. Və ki, yalnız var deyərək dil yolu, hey, kompüter burada bəzi kodu gəlir PHP adlı dilində yazılmış. Və sonra fayl çox sonunda, Siz əks növ cür. Siz yenə PHP yalnız yazmaq deyil sual işarəsi, bucaq bracket yoxdur. Və sonra bir şey daxili qoymaq bu iki tags, belə ki, danışmaq, olacaq, və ya PHP kodu olmalıdır. Belə ki, super sadə bir şey edək. Mən irəli getmək və çap gedirəm def, salam dünya, backslash n, edin. İndi mənim tez, mən gedirəm , heç, Mən gedirəm salam etmək, dot salam doğramaq. Xeyr, dot çizgi, hm. Belə ki, fərqli bir şey var. Şübhəsiz ki, bu əsas fərq C. C kimi PHP və dil arasında qondarma tərtib dil idi. C tərtib etmək üçün nə demək istəyirdi? Dolayısı nə idi? Bəli. Auditoriya: maşın kodu daxil yazdı belə ki, kompüter tərəfindən idarə oluna bilər. HOPARLÖR 1: Məhz. Biz ilk çevirmək lazımdır maşın kodu, adet sıfır və olanları deyilən, Bu, həqiqətən çalıştırılabilir olacaq əvvəl və kompüter tərəfindən başa. Daxili Intel tərəfindən. Kompüter daxilində CPU. PHP, əksinə, deyirlər nə bir şərh dil olan Siz onu tərtib yoxdur o deməkdir ki, adet sıfır və olanları, maşın kodu daxil, yerine mənbə kodu kimi buraxın. Və əvəzinə giriş kimi keçmək bir proqram, tərcüməçi başqasının yazırdı ki, il bundan əvvəl başa düşür ki, xətti ilə line, xarakter üçün xarakter. Belə ki, başqa sözlə, insanlar orada yazdı görünür ki, bir proqram xətti ilə kodu xətti, və anlamaq nə kompüter, etməlidir onu konvertasiya olmadan birbaşa adet sıfır və olanları. Bir loop üçün görür Belə ki, bu qondarma tərcüməçi Mən olmalıdır bütün hüququ kimi olacaq təkrar və yenidən bir şey yoxdur. Mən nə etməliyəm? Mənə növbəti line baxaq. Mənə növbəti line baxaq. Və həqiqətən xətti ilə bu xətt şərh edir. Belə ki, icra etmək, mən istifadə etməyin. Mən bu halda dot çizgi istifadə etməyin. Mən əvəzinə olan PHP nə bir proqram a.k.a. adı Tərcüməçi, ki CS50 IDE əvvəlcədən quraşdırılmış, və indi keçmək lazımdır command line arqument, olan kifayət qədər sadəcə adı Mən şərh etmək istəyirəm ki, fayl. Və ya daha çox təsadüfən, mən çalıştırmak üçün istəyirəm. Mən Enter əgər, orada biz bunu var. Salam Dünya. İndi çıxır ki, mən istifadə print def qəsdən PHP C bizi körpü. Ən PHP proqramçılar, siz görəcəksiniz kimi, hətta çap DEF istifadə narahat deyil. Onlar yalnız adlı funksiyası istifadə C yox idi çap. Və mən, həqiqətən, indi onu təkrar əgər funksional eyni davranır. Mən yüzdə s istifadə edə bilməz və s faizi i və, lakin digər yolları var bunu PHP. Amma bu yalnız edir , syntactically deyirlər ki, bəzi qəribə şeylər başqa top və aşağı bəzi qəribə simvol alt, anlayışlar indi Bu digər dildə proqramlaşdırma eyni olacaq. Əslində, başqa bir misal nə edək. Mən irəli getmək üçün gedirəm və bu faylı bağlayın. Mənə başqa bir yaratmaq imkan ki, Mən şərait 1 dot PHP zəng edəcəyik. Belə ki, heç sıfır, mən nə çünki Mən bir neçə həftə əvvəl geri baxdı idi biz adlı bir fayl var idi şərait 1 dot C. Və nə Mən onu çevrildi idi mənim rəhbəri və kağız üzərində burada, və tezliklə kurs üzrə haqqinda, PHP daxil xətti ilə line. C versiyası Beləliklə, biz bir şey idi string kimi s string almaq olur. Belə ki, bir az fərqli PHP bunu. Əksinə, mən yalnız gedirəm daha, və ya, mən işlər ola bilər int n almaq olur int, bu nümunə. Belə ki, əvəzinə ki, mən n gedirəm line oxumaq olur, mən tam istərdim, edin. Belə ki, bu yalnız mənim tez edir. Və belə çıxır və Mən yalnız bu bilirik ki, oxumaq və ya funksiyası görəndən əvvəl PHP funksiyası xətləri oxumaq tez bir mübahisə edir insan və həyat onun məqsədi mətn xətti oxumaq üçün da o cür ki. Və sonra bu saklar dəyişən n mətn. İndi bir şey etmək istəyirəm bilər Mən kimi həftə, həftə əvvəl idi sinif biridir. N-dən çox olduqda sıfır, sonra, mən gedirəm biz yalnız gördüm ki, sintaksis borc, çap def, bir müsbət seçilmiş backslash n. Else n bərabərdir əgər mən, sıfır bərabərdir irəli getmək və demək gedir, çap def, sıfır backslash n seçilmiş. Else, işin burada olmalıdır Əlbəttə ola çap def, Bir mənfi seçilmiş. Və biz, şübhəsiz ki, həyata keçirə bilər Bu şey məntiq müxtəlif bir dəstə yolları, lakin burada point ki, syntactically deyil ancaq yeni bir şey deyil. Bu, sadəcə dollar işarəsi və yeni funksiya və oxumaq line. Lakin əsaslı, nə yeni indi bu tərcümə alıram edir. Mən giriş kimi keçən alıram başqa bir proqram. Mən, bu almaq istəyirsinizsə Belə ki, Mən hər hansı bir səhv etməyib, Mən, PHP run gedirəm 1 dot PHP daxil edin şərait, Mən sayı 50 yazın gedirəm və indi bu işləri üçün fərz edək. Məntiq, çünki Həftə eyni stuff. Bütün hüquqlar, belə ki, olduqca var underwhelming, sağ? Biz hər hansı bir bunu edə bilər Dil nömrəsi. Nin bir şey yol daha güclü edək. Gəlin rəngi problem beş seçin. Mən irəli getmək və bunu gedirəm. Mən bir fayl yaratmaq üçün gedirəm Lüğət dot PHP adlı, Siz ola bilər və maili Notların çox aşağı dırmaşma üçün, qeydlər yalnız kömək edəcək Siz icazə edirsinizsə problemlər PHP beş təyin həyata keçirmək. Amma biz necə tez indi lazımdır biz Eyni problem set həyata keçirə bilər. Belə ki, lüğət dot PHP, mən gedirəm artıq olduğunu güman etmək Dünyada bir fayl speller çağırıb. Həqiqətən, mən əvvəlcədən bunu və biz bu xətt vasitəsilə gəzmək deyil xətti ilə, ancaq əgər maraqlı sonra və həqiqətən istədiyiniz ətrafında fikrinizi kesmek üçün C və PHP arasında fərqlər, sanki bu faylı müqayisə, bugünkü mənbə kodu Speller, Biz sonra göndərmək lazımdır ki, Bu gün, p set qarşı biz sizə beş Speller dot c, və bu xətti ilə, demək olar ki, eyni xətt var. Daha çox dollar əlamətləri var. Bir neçə funksiyaları bir az fərqli. Amma bir gözəl yolu sort necə görən Siz bir dil tərcümə. Və bu xətti üçün demək olar ki, eyni xətt var. Amma güman gedirəm mövcuddur və nə mən burada nə gedirəm partlatmaq üçün cəhd sizin reimplementing tərəfindən ağla problemin bütövlükdə beş yol müəyyən Siz daha sürətli indiyədək bunu etdik. Belə ki, məsələn, mən ilk gedirəm , ölçüsü adlanan qlobal dəyişən elan və sıfır bərabər müəyyən. İndi ki, çox qənaət deyil. Bahis siz həyata keçirilir olduqca çox eyni ölçüsü, və ya işarə işarə, axşam və ya sabah, yalnız adlanan qlobal dəyişən istifadə ölçüsü və sıfıra bərabərdir qəbulu. Ki, xüsusilə deyil gözəl spoyler. Belə ki, data strukturları nə idi seçim dived olan sizin və spec oxumaq, nə data strukturları Sizin ən istifadə edilmişdir var? A hash table və ya bəlkə cəhd onların bir neçə variant. Belə ki, ən azı bir hash masa həyata, , kodu xətləri bir çox növ sağ? Və onların hamısı ola bilər deyil həftə bu nöqtədə funksional, lakin gözəl var. PHP, çünki mən görülən bir hash masa istəyirəm. Sağ? Mən var ki, dəyişən So yalnız açıq-aydın elan dollar işarəsi masa adlı, əvvəl tətbiqi başına. Lakin mən, həqiqətən, yalnız istəyirəm Günün sonunda, bir sıra. Amma bir sayca dizine array, həftə iki kimi, çünki stuff, biz Diziler haqqında söhbət zaman. Mən hash masa istəyirəm. Amma hash table həqiqətən deyərək yalnız konkret bir şəkildə, Siz assosiativ array istəyirəm. Siz etmək istəyirəm dəyərləri ilə asılı düymələri. Dəyərləri ilə düymələri. Həqiqətən, bir lüğət nədir? Yaxşı düymələri bütün dəstə var. Alma, armud, və banan kimi sözlər, bu İngilis dili sözlər bütün biz sizə əl edir. Və dəyərlər səmərəli olduğunu Sizin lüğət daxil daxil olan ya doğru, ya olmaması, yalan. Başqa sözlə, siz daxil edilir əsas dəyər cüt bütün dəstə, alma, əsl, armud, əsl, banan, doğru. Siz almaq və ya baxmaq zaman, belə ki, Sizin hash masa məlumatlar up çek funksiyası ilə, sen ya bir cavab geri almaq, bəli, mən kompleksində aşkar masa hash, və ya heç, orada deyil, belə ki, saxta qayıtmaq. Belə ki, nə üçün, mən lazım olan bütün məlumatlar var I kimi strukturu əvvəl təklif edib. Mən yalnız lazımdır sözləri birləşmək üçün kimi, dırnağı bağlamaq quote, simvolları doğru bir dəyər kimi, ilə. Belə ki, mənim hash table var. Nin həqiqətən istifadə edək. Belə ki, bir neçə funksiyaları var Mən həyata keçirmək lazımdır. Mən irəli getmək və yemək üçün gedirəm bir funksiyası adlı ölçüsü off. Bu, heç bir dəlilləri. Mən narahat yoxdur söz, PHP, etibarsız. Mən sadəcə ölçüsü qayıtmaq üçün gedirəm. Və bir kənara kimi, PHP var Bu minorly annoying ətraflı, bir şey qlobal varsa, harada siz lazımdır istifadə etdiyiniz hansı funksiyası demək Bu, hey, bu, qlobal dəyişən deyil. Belə ki, kiçik sərsəmlik, lakin siz yenə bunu etmək lazımdır. Belə ki, nə yük haqqında? Mən həyata gedirəm bir funksiyası adlanır yük ki, bir lüğət adına edir yalnız problem beş müəyyən kimi. Mən davam əvvəl, Mən olduğunu fark tamamilə eyni şeyi yazaraq edilmişdir. Nə haqqında PHP açıq-aydın müxtəlif var necə C qarşı bir funksiyası elan? Bəli. Auditoriya: [işitilemez] HOPARLÖR 1: No qaytarılması növü. And olsun ki, halda, PHP var Bu loosely tipli kimi insofar, də o mənada bir az sloppy var. Siz proqramçı kimi daxil deyil bu funksiya qaytarır nə. Siz, həqiqətən, baxmaq olardı koda ki, anlamaq üçün. Və ya şərh oxumaq və ya sənədlər. Müsbət və mənfi cəhətləri So qərarlar bu cür. Amma demək var açar sözü, fəaliyyət göstərir. Və biz öyrənmək Bir neçə həftə JavaScript biz eyni şey görmək olacaq yenidən, lakin eyni fikirdir. funksiyası adı, dəlil yaxud, indi arqumentlər və ya olmaması burada təzahürüdür. Mən yalnız bir küncləri kəsilmiş gedirəm yalnız bir an üçün dramatik olacaq. Amma irəli getmək və bu demək gedirəm. Bu yükləyə bilər necə bir sıra daxil bir fayl. Fayl adlı PHP bir funksiyası var. Siz bir fayl adı əl. Bu daxili bir sıra geri əlləri olan fayl hər xəttidir. Sıfır, bir From, qədər n minus 1 xətləri. Bu doğru, bu? Heç bir f oxu var. Heç bir f get s var. Heç bir faiz s var. Heç bir baş ağrısı var. Heç bir feof var. Ki, məhsullarının bütün olan Siz bəlkə güləş etdik p dörd və beş dəsti ilə, üz gedir. Mən yalnız o xətləri oxumaq fayl, sonra nə bilirik? Mən o sözləri üzərində təkrarlamaq istəyirsinizsə, Mən line kimi hər xətləri üçün, edə bilərsiniz. Bu cür bir ağıllı idi ki, xatırlayıram bir sıra, index üzərində iterating yolu indeksi, və hər iteration zəng Cari line, dollar işarəsi line. Və burada mən getmək gedirəm və masa, bracket, line, gerçək olur deyirlər. Başqa sözlə, bu necə PHP mənim hash masa daxil. Mən dollar işarəsi masa, demək ki, mənim assosiativ array var yuxarıda kod satıra boş. Onu Mən index deyil, bir sıra istifadə edərək, lakin sözün istifadə Mən qayğı söz. Bəlkə alma və ya armud var və ya banan və ya nə olursa olsun, lakin xüsusi mən indeksasiyası alıram onu mən əvvəllər təklif kimi. Mən adını mənim assosiativ array, və sonra quote dırnağı bağlamaq istifadə bir simli ilə kvadrat mötərizədə, əvəzinə faktiki sayı. Və belə ki, var. yük funksiyası edilir. Ki, loop iterates sonra, mən qoymaq etdik hash masa hər şey. İndi kiçik disclaimer var bir mən düzeltmek lazımdır neçə şey. Və versiyasını online göndərmək lazımdır nüanslar bütün olacaq, lakin bu, əsasən yalnız bir olacaq səhv yoxlanılması və bəzi kiçik tweaks. Amma ki, həqiqətən onun mahiyyət var. İndi həyata keçirmək istəyirsinizsə, adlı funksiyası bir gözləyir ki, yoxlamaq onun arqument kimi söz, Mən bunu haqqında necə getmək bilər? Bəli, mən sadəcə, əgər demək gedirəm Mənim masa daxilində, yer söz, əgər müəyyən edilir. Belə ki, orada is-- əgər həqiqətən, siz nə bilirik? Mən bunu gedirəm pseudocode bir az. Amma fikir eyni. Ki, doğrudur bərabərdir əgər, doğru qayıtmaq. Oldu. Siz cür harada görmək olar Else-- bu saxta qayıtmaq üçün going-- olunur. Done. Check edilir. Pretty gözəl, sağ? Və belə ki, həqiqətən də əldə bu nədir? Və bu da, mən bir küncləri kəsilmiş. Online versiyası baxmaq yüngül nüanslar bütün. Lakin bu mahiyyət var. Daxil Index Sizin assosiativ array, a.k.a. Dəyəri var, əgər hash table bax Orada, bu, doğru müəyyən, və əgər əgər, doğru qayıtmaq. Beləliklə, biz aşağı whittled etdik mürəkkəblik bütün. Belə ki, ruh cür əsən, sağ? Mən boşaltmaq ilə başa narahat deyil da fact-- çünki oh, siz nə bilirik? Bəli, boşaltmaq ilə bitirək. Ola bilər bir hash masa boşaltmaq funksiyası boşaltmaq kimi qayıtmaq. OK, belə ki, boşaltmaq var. Heç bir şey yoxdur, çünki sağ, boşaltmaq üçün necə? Heç bir malloc var. Mən açıq-aşkar xahiş etməyib bir şey üçün əməliyyat sistemi. Mən yalnız dəyişənlərin istifadə edərək başladı. Və bu da bir təzahürüdür yüksək səviyyəli Dil xüsusiyyətləri. Belə ki, yenə bu müddət ən biz burada məşğul olduğunuz C. Super aşağı səviyyədə. Siz kompüter yaddaş bilərsiniz. Siz bir şey toxunmaq olar Sizin kompüter RAM istəyirəm, yaxşı və ya pis üçün. Burada, gedirik güc vermək. Amma mənim tanrı, necə baxmaq daha az kodu yazdım. Əslində mən söhbət deyil, əgər və yazaraq üzərində söhbət, biz ilə həyata olardı Beş dəqiqə əvvəl bu nümunə. Belə ki, qiymət nə ödənilir var? Yaxşı bir nəzər salaq. Bir nəzər salaq. Mən irəli getmək və CS50 çalıştırmak üçün gedirəm. Mənə ilk daxil edək bugünkü nümunələri harada Mən əvvəlki kimi mətnləri kataloq var. Mən həll çalıştırmak üçün gedirəm ki, Bu problem beş müəyyən çağırıb ilə gəlir CS50 hesabına deyil Speller. Mən bir şey çalıştırmak üçün gedirəm King James Müqəddəs kimi böyük, yalnız, belə ki, biz, həqiqətən qoymaq Test heyət həllər. İndi bəzən internet bir az yavaş, bir az daha sürətli, hərəkət etmək üçün bir müddət bilər. Amma bu .56 saniyə ümumi etdi King James yoxlamaq sehr Müqəddəs heyəti həll istifadə edərək. Belə ki, olduqca yaxşı. Hörmətlə, çox yavaş ola bilər ki, tamamilə gözəl var. Amma burada doğru deyil. Belə ki, heyət həll edir. Mən getmək və PHP versiyası təmizləmək edin. Mən bir az gedirəm çörəkçilik şou şey kimi. Biz yazdı kodu etmək olacaq əvvəl, belə ki, mükəmməl doğru deyil. Mən yazıb kodu niyyətində deyil, çünki indi mükəmməl düzgün olmalıdır. Amma PHP versiyası əgər, Mən bu gün vermək lazımdır? Mənə beş dəqiqə etdi həyata p beş təyin, mən iddia. Nə qiymət ödənilmiş var? Bəli. Auditoriya: Speed. HOPARLÖR 1: Speed. Nəyi nəzərdə tutursan? Auditoriya: Bu uzun olacaq. HOPARLÖR 1: Bütün hüququ. Görək. Bu, uzun olacaq Biz yazmaq, ancaq çalıştırmak üçün. Bəli. Belə ki, bu cəhd edək. Belə ki, burada irəli getmək və bunu gidiyorum Speller PHP, çünki fayl speller çağırıb. Beləliklə, mən çalışan deyiləm lüğət, geri, Mən speller adlı proqram çalışan alıram. Eyni keçmək gedirəm fayl, King James beşinci. Bu uçan oldu. Bu yalnız, internet sürəti ola bilər belə ki, çox ki, daxil oxumaq deyil. Lakin əmin üçün artıq hiss etmir. 1.26 saniyə. İndi ki, olduqca hələ də var lənətləmək sürətli, sağ? Və kimi hiss yeganə səbəbi daha üç və ya dörd və ya beş kimi saniyə, yalnız, çünki internet yavaş olan oldu. sərf kompüter vaxt 1,26 dollar saniyə, qarşı mən 0,56 düşünürəm. Yavaş iki dəfə çox daha çox. İndi ki, olduqca darn hələ də var sürətli, ancaq bir təzahürü var ki, həqiqətən, dəqiq qiymət. Biz tərcümə edirik, çünki xətti ilə kodu xətti, və proqram PHP oxumaq mənim soldan sağa alt kodu top, daha düşüncə nə var. Bu cür çevirmək üçün var özü daxilində bu müvafiq maşın Tez indeksi, belə ki, danışmaq hətta mexanika baxmayaraq bir az fərqlidir. Bunun əvəzinə yalnız qidalanma Intel CPU xam adet sıfır və olanları ki, yerli anlayır. Belə ki, tamamilə, əlləri aşağı, biz ödədik. Və kodu bir dillə yazılmış PHP çalışır kimi yavaş olacaq. Amma mənim tanrı. Belə ki, indi mən yoxlamaq sehr zaman mənim fayl, mən əlavə 0.7 sərf və ya 20 saat vs saniyə həyata keçirilməsi daha sürətli, sağ spell checker? Bu ticarət off növü var. Və yalnız p başlayaraq edirsinizsə 20 saat ola bilər, beş seçin. Ki, daha az ola bilər. Amma bu real üçün, ticarət off var. Və həqiqətən böyük kod yayınlıyorsanız data dəstləri, və ya hətta köhnə hardware, fərqlərin bu cür əlbəttə əlavə edə bilərsiniz. Hər hansı sual indiyə qədər? Bəli. Auditoriya: [işitilemez] HOPARLÖR 1: Bağışlayın, bilər siz bir daha demək? Auditoriya: [işitilemez] HOPARLÖR 1: Siz vaxt imtina edirik. Bəli, belə Bəli. Siz zaman qənaət tərtib olmayan, ki, əgər xahiş edirik nə. Həqiqətən, CS50, proqramların ən, Onlar bir müddət bilər, baxmayaraq ki, yazmaq, onlar nisbətən qısa istəyirik. Az çox, kodu bir neçə yüz xətləri, və onlar olduqca tez tərtib edir. Amma başlamaq zaman böyük proqramları yazmaq, kimi Microsoft etdiyiniz və ya əgər Google və yazı həqiqətən böyük proqramları C və ya C ++, və ya eyni tərtib languages ​​bir çox saniyə bilər, və ya hətta dəqiqə və ya artıq kodu xətləri milyonlarla tərtib edir. Və də ki, fərq qədər əlavə gedir. Və əslində, biz bir dəfə keçid bu gün, eyni gün Bu gün, web proqramlaşdırma PHP istifadə edərək, siz etdiyiniz Bu, sadəcə belə çox tapmaq üçün gedir kod yazmaq üçün daha ləzzətli bu axmaq nə yoxdur zaman Sizin terminal dəyişiklik kimi addımlar pəncərə, növü etmək hello, yenidən run, pəncərə yeniden. Axmaq yalnız çox mexaniki addımlar ki, yalnız bunu yolu ilə almaq maraqlı, fun iş. Doğrusu, biz PHP ilə tullamaq. Və biz qarşılıqlı bilər daha sürətlə onunla. Bəli. Auditoriya: [işitilemez] HOPARLÖR 1: Sure. Mən bunu nə aydınlaşdırmaq olar şərh edilməsi deməkdir? Bir dil tərtib edərkən C kimi, bu aşağı gedir biz maşın dediyi kimi indeksi, adet sıfır və olanları. Və Intel il əvvəl qərara aldı ki, adet sıfır və olanları müəyyən nümunələri Bundan əlavə, arkalarında removal işlemi və ya təmsil edir və ya çap və ya digər əsas əməliyyatlar. Bir şərh dil dünyada PHP və ya JavaScript və ya Python kimi, və ya Ruby, ya dəstələri digər əvəzinə kimsə yazılı ki, bir bu halda Interpreter, bu da eyni, PHP deyirlər ki, mahiyyətcə language-- adı bu iterates ki, böyük loop var kodu xətləri bütün Mən giriş kimi onu qidalandırmaq ki, kimi salam dot PHP, və ya lüğət dot PHP. Və sonra onların böyük hesab edə bilər şərait bir çox olan kimi loop. Əgər bu şərtlər, demək insan üçün söz yazıb, bunu başlamaq onun code təkrar. Və ya insan var kodu xətti yazılı, əgər, yalnız icra onların şərti növbəti line. Belə ki, şərh kimi həqiqətən var bir insan mənada istiqamətində bu xətti ilə, və yalnız vaxt tələb edir. Bu yerüstü edir. Və belə bir price-- var yaxşı question-- biz ödəyirlər. Belə ki, bir demo edək ki, bir az daha dramatik var. Bir ballpark bu, deyə bilərəm var horribly uğursuz 90% ehtimalı, ancaq heyran edəcək 10% ehtimalı ilə. Belə ki, hər il biz cəhd vasitəsi biz bunu keçir bir proqram yazmaq üçün cəhd problem üçün siz var, sıfır müəyyən təqdim sizin telefon nömrələri və bir digər demoqrafik məlumat çox, və biz program bir mətn mesajı göndər. Və sonra hər kəsin telefon səs siqnalı və ya Titrəmə başlayır, və bu, çünki, yalnız gözəl yaxşı, kompüter nə edə bilər nə baxmaq. Bu nadir hallarda düzgün işləyir Bu böyük bir hissəsi, görünür Mən adətən qara siyahıya almaq, çünki Gmail və ya digər xidməti tərəfindən üçün həqiqətən miqyasda bunu etməyə çalışırıq. Amma lətifə biz bu yana, çox deyil Bu gün burada hər kəs yoxdur, Sonuncu dəfə biz əyləncə fakt , iki il əvvəl bu cəhd Mən bir proqram yazıb edirəm ki, bir loop iterating oturdu sinfində bütün tələbələr üzərində, və onlar mətn mesajı hər, və bu, bir şey kimi dedi niyə mühazirə deyil? , CS50 bot sevirəm. Siz necə bir çox üzr heç bir fikrim yoxdur və sort ağrılı e-poçt Mən cavab aldığınız n minus burada deyil 100 nəfər O gün. Və hətta funnier daha biabırçı story-- bilirsiniz, orada onu qoymaq bildirin. Bu bir neçə il geri video artıq var. Belə ki, tezliklə mənə görəcəksiniz loop üçün yazmaq, vasitəsi ki, bir səhv yazmaq üçün çox asandır loop üçün, belə ki, ilk dəfə loop vasitəsilə, siz bir mətn mesajı göndər. loop I vasitəsilə ikinci dəfə daha bir mətn mesajı göndərdik ki, və sonra bir daha mətn mesaj və daha çox bir. Bir typo etmək Lakin bu çıxır siz, bəzən proqramlaşdırma zaman bir göndərmək proqramları yaza bilərsiniz mətn mesajı, sonra iki mətn mesajları, hər kəsə sonra üç mətn mesajları kim artıq mətn mesajı qəbul edir. Bildiyiniz kimi, bir şey bunu, plus bir şey, üstəgəl bir şey, plus bir şey, bir çox böyük O deyil mətn mesajları, və ya n kvadrat, və ya $ 0.10 bir mətn mesajı, $ 20,000 at. Şükür edirəm ki, əvvəl Control-C edib oldu, amma ən azı bir borclu idi Sizin sələfləri üçün $ 20 200 bir tək mətn mesajları, ki, yalnız onun telefon getdi amma də köhnə flip telefon kimi idi belə ki, həyata sövq kimi onun hər şəxsi mətn yaddaş Mesaj o, həqiqətən kazanılmış idi. Beləliklə, biz bir məqsədi var bu gün bunu etmək deyil. Bəlkə təyyarə rejimi açın. Oldu. Belə ki, bir gedək burada callled-- proqram Mən PHP dot mətn zəng edəcək. Və əvvəlcədən mən burada iki faylları var. Mən yalnız heyəti üçün bir fayl etdi ki, var personalın info bütün, bütün adları Kursun haqqinda. Və sonra indi mən yalnız qoymaq bəzi saxta nömrələri 555-1212. Belə ki, bu, həqiqətən, hər yerdə getmək deyil. Lakin, bu CSV fayl daxilində qeyd biz əvvəl qısa danışdıq ki, Fayl IO kontekstində. Bir CSV faylı nədir? Vergül dəyişənlərin ayrılır. Və bu çox kimi növ edir yüngül bazası, siz əgər. Sort dörd sütun növü var Bu fayl və orada kələ-kötür, mahiyyətcə lakin vergülləri fayl sütunları təmsil edir. ilk sütun TF və ya CA adıdır. İkinci sütun son adıdır. Üçüncü sütun onların telefon nömrəsini edir. Dördüncü sütun yəqin is-- dördüncü sütun yəqin nədir? OK, belə ki, onların daşıyıcısı var. Verizon, Sprint və ya, və ya nə deyil. Mən əvvəllər CSV misspoke əgər. Virgülle ayrılmış dəyərlər CSV burada. Mən bu ilə nə edə bilər? Yaxşı bu, yalnız bir böyük mətn faylı və sağ, uzun cür? Bu kimi gedir cür annoying ola bilər. Və bu, baxmayaraq ki, çıxır ki, əgər mən , edək mətn mesajı göndərmək istəyirəm Burada Alex deyirlər. Mənə mənim brauzerinizin gedək və tam ekran rejimi çıxmaq yalnız mən geri və irəli keçid edə bilərsiniz. Mən getmək əgər, görək çıxır Burada və Gmail, bütün sağ daxil. Bu hissəsində baxmaq etməyin. Mən görmək almaq. əlbəttə Livestream bilər hələ mən edirəm nə görmək. Oldu. Belə ki, burada yalnız Gmail deyil John Harvard hesab. Mən göndərmək istəyirsinizsə Belə ki, Alex mətn mesajı, Mən əlbəttə bir mesaj tərtib edə bilərsiniz. Və çıxır və mən var burada əvvəl Alex ilə test belə ki, müəyyən bir domen əlavə edə bilərsiniz insanların telefon nömrələri adı dünyada mövcuddur, çünki şeyi şlüzlər e-poçt SMS çağırıb. Hansı bütün deyərək bir xülya yoldur Bizə olan mobil telefonlar var ki, Əlbəttə, telefon nömrələri, yəqin ki, sizin daşıyıcısı üçün var kimi müəyyən şəkilçi Verizon mətn mesajı üçün Vtext.com Siz əlavə edə bilərsiniz dot com, sizin Öz şəxsi telefon nömrəsi, və sonra Siz və ya dostlar, və ya valideynləri bilər xüsusi ünvanda sizə mətn. Və Verizon, bir e-poçt bir server var server, sonra bu e-poçt qəbul ki, sonra rəqəmli hissəsində və baxır nə xüsusi sənaye sehrli istifadə edir onlar həqiqətən artıq onu göndərmək üçün xüsusi mobil havasında telefon. Mən, çünki indi bu gözəl həqiqətən mətn mesajı göndərmək üçün necə və ya hələ kod yazmaq üçün Mobil telefon üçün, və sizin üçün məhz bunu bilər son layihə, lakin indi bütün Mən laptop burada var. Belə ki, CSV üzərində təkrarlamaq istəyirəm fayl, xətti, xətti ilə, xətti ilə, xətti ilə, , personalın telefon nömrələri hər qamarlamaq və onların daşıyıcısı və programatically, telefonu, ki, concatenate müvafiq domen adı ilə sayı və sonra bir e-poçt göndərin. Belə ki, addımlar bir çox var. Və uğurlar C. bunu Bu vəziyyət bir kabus bir faylı açmaq üçün, oxumaq üçün xətti, xətti ilə, xətti ilə, sizin kimi görən, və ya tezliklə ola bilər problemi ilə, beş əgər deyil problem sonra dörd qurmaq və dinamik concatenate üçün iki strings birlikdə C, çünki, iki strings almaq və onları birləşdirmək, minimal sizə nə çox güman ki, nə etmək lazımdır? Siz sağ, daha çox yaddaş bəyan etmək lazımdır? Mən daha çox yaddaş ola bilər, malloc sual? Mən bu yarım qoya bilər burada, burada bu yarısı. Bu, sadəcə bir çox addımlar var. Və nöqtəsi ilə siz kaybettim axmaq az demo maraq burada hər kəsin telefon beep etmək. PHP bu cür edək style, vasitəsi biz yalnız ki, mətbəx sink daha çox istifadə edərək başlayın. Və ideyaları əsaslı eyni, lakin biz çox narahat yoxdur ki, aşağı səviyyədə haqqında çox. Belə ki, necə ola bilər görək bunu haqqında getmək. Və yalnız mən deyil , keçmiş səhvləri təkrar Mən burada özüm üçün bəzi qeydlər yazdıq. Mən bizə gəzmək bilərsiniz əgər in görək fundamental addımlar bəzi vasitəsilə, və sonra vaxt naminə biz lazımdır bəlkə sonunda bəzi küncləri kəsilmiş. Mən irəli getmək və açıq gedirəm bracket PHP bu faylı başlamaq üçün. Mən irəli getmək və bunu gedirəm. Siz lazımdır kimi, qolu Fayl tezliklə həqiqətən, görmək açıq f adlı bir funksiyası çağırır. Bu bir fayl açılır xatırlayıram. Və quote, dırnağı bağlamaq, r yenə nə deməkdir? Yalnız oxumaq üçün onu açmaq. İndi p set, siz bu idi. Və bir şey ola bilər idarə, fu, bar, bas, hər hansı bir dəyişən adı. Amma ümumiyyətlə kompüter alim, açıq fayl zəng bir fayl qolu verilməsi bir şey danışmaq belə yapışmaq üçün. Mən yalnız gedirəm bəzi səhv yoxlanılması. Dəstəyin yalan Belə ki, yalnız kimi C, mən kimi bir şey üçün gedirəm, fayl, backslash n aça bilmədi. Və sonra mən yalnız gedirəm irəli və exit getmək üçün. Və bu, PHP, çıxır Mən funksiyası daxilində deyiləm. Burada heç bir əsas funksiyası var. Belə ki, özlüyündə, qayıtmaq yoxdur. Mən çıxmaq. Hansı mahiyyətcə eyni şeydir. Mən yəqin ki, bir y mövcud alıram. Bir yalnız bir növ bir səhv deməkdir. Bu qeyri-sıfır var, belə ki, bir səhv var. Bütün sağ, mən indi burada deyiləm, belə ki, Mənim proqramda Mən fayl açılmışdır. Mən irəli getmək və bəyan gedirəm URL adlı array, və C bilirəm olardı əvvəlcədən serialın ölçüsü, sağ? Və ya bu elan etmək lazımdır bir göstərici, sonra malloc istifadə edin. Və sonra hər dəfə mən oxumaq fayl başqa bir sıra vasitəsilə, Mən malloc lazımdır gedirəm daha çox yaddaş, malloc daha çox yaddaş. Bu boyun bir ağrı var. Və təşəkkürlə, PHP, və Ruby, və Python və JavaScript, onlar Sizin Diziler artacaq sizin üçün avtomatik olaraq. No daha malloc. No daha çox yaddaş idarə edilməsi. kompüter ki, qayğı. Amma qiyməti payment. Bu bir az yavaş. Və bu kimi bir proqram üçün biz qeyd etmək fikrində deyilik. Biz 100 mətn mesajları göndərmək üçün olacaq. Məsələn hiss etmək niyyətində deyil. IT, həqiqətən, yalnız başlayır seçdiyiniz dil fərqi zaman məlumatın və ya sizin proqramları , həqiqətən, həqiqətən əhəmiyyətli almaq daha çox belə olacaq kimi Bizim web-based məhsulları ilə. Amma indi nin irəliləmək edək. Çıxır isə var C funksiyası f CSV almaq çağırıb. Fayl CSV almaq ki, edir ki, onun arqument kimi sapı fayl, və bu ilə, sonra sıra gəlir satır, satır, bir sıra oxumaq üçün. Belə ki, yalnız bir xətt oxuyur fayl mətn. Lakin, bu funksiya haqqında gözəl nə var yalnız mənə mətn xətti əl deyil. O vergülləri üçün görünür, və xətt çözümler. Və xətti analiz etmək split deməkdir bu çərçivədə müəyyən dəyərlər üzərində. Başqa sözlə, dollar işarəsi sıra bir dəyişən Mənə indeksləri bir dəstə vermək niyyətindədir. Bu olacaq Mənim CSV ilk sütun. Bu ikinci olacaq sütun, bu, üçüncü olacaq və bu dördüncü olacaq. Geri və Excel, çünki Biz bunu son dəfə əməkdaşlıq Mən download əgər, lakin heyət CSV nöqtə. Whoops, adını dəyişmək deyil. Mən heyəti dot download CSV və onu açılış cəhd edin, Mən artıq oh I registered-- etdik son vaxtdan Excel yeniləmək etməyib. Siz işçi nöqtə ki, görürsünüz CSV, mən dörd sütun var. Beləliklə, mən oxumaq zaman Burada Abby üçün ilk satır, dollar işarəsi sıra 0, Abby var dollar işarəsi sıra bir Lyons dollar işarəsi sıra iki, onun sayı və sonra onun telefon daşıyıcısı. Belə ki, bütün var. Və, gözəl çünki İndi anlamaq üçün yoxdur o virgülle bütün, həqiqətən, burada. Mən irəli getmək üçün gedirəm və ki müəyyən verilmiş, bunu, Mən onun adı ki, gedirəm sıra bracket sıfır, vəd kimi. Mən grab-- gedirəm və həqiqətən, siz nə bilirik? Mən narahat deyiləm onun adı, bu halda. Mən bu sadə saxlamaq üçün gedirəm. Mən onun sayı gedirəm sıra bracket iki düşünürəm. Və onun daşıyıcısı harada idi? Row üç üzərində bir. Belə ki, heç bir şey yoxdur, yeni. Bu bir sıra daxil yalnız sıfır endeksleme var. Və indi mən aşağıdakı gedirəm. Daşıyıcı bərabərdir əgər AT & T-- bərabərdir Mən yalnız bir loop üçün gedirəm Mən bir e-poçt yaratmaq istəyirik bu kimi görünür ünvanı. Bu 617-555-1212 olacaq at, onu nə text.ATT.net, Mən istəyirəm nə. Belə ki, necə bu etməliyəm? Mən aşağıdakı gedirəm. Onun ünvanı, onun sayı olacaq və indi, mənə irəli getmək və bunu bildirin. Bu, bəzi funky sintaksis edir. Mən faizi s oyun edə bilər, lakin mən, həqiqətən, yalnız bunu edə bilərsiniz. Belə ki, bu, bir PHP şey, lakin Mən yapýyorum nə hesab edək. Dollar ünvan imzalanıb sol, yalnız bir dəyişən. Mənə bir dəyişən verin. Mən növü müəyyən etmək üçün yoxdur. PHP anlamaq edəcək. Sağ tərəfində, data type nə ki, bütün şey bir sağ tərəfdən? Bir string kimi görünür, ikiqat var, çünki qədər sol və sağında verir. İndi burada bir funky yeni sintaksis var. Qıvrım aşırma var, və dollar işarəsi nömrəsi. Amma ki, sintaksis nə tahmin almaq yəqin ki, mənim üçün nə etmək PHP izah? Bəli. Yalnız orada dəyər daxil edin. Belə ki, heç faizi s. Biz çap f, və ya s istifadə edə bilər print f və ya bu kimi bir şey, PHP və bir çox, lakin yüksək səviyyədə dil, Siz ola bilər ki, görmək olacaq bəlkə, funksional eyni şey altı müxtəlif yolları. Və belə olmaq başlayır dizayn və ya stil bir məsələ. Belə ki, bu yalnız bir sirli axtarır yoldur deyərək, mənə bir e-mail vermək lakin plug-in sayı bu qıvrım aşırma arasında. Və qıvrım aşırma deyil final Ünvan son. İndi biz bəzi atlayabilirsiniz zaman xatirinə bu xətlər. Belə ki, bir daşıyıcı bərabərdir əgər , verHorizon-- whoops bərabərdir Mən bir şey etmək istəyirəm Verizon-- çox oxşar, burada ünvan olur, quote, text.ATT.net at dırnağı bağlamaq, nömrəsi. Və sonra mən eyni cür edə bilərsiniz daşıyıcılarının istirahət üçün bir şey. Amma yalnız indi dot, nöqtə, nöqtə edəcəyik. İndi fərz edək ki, Mən təkan, array əlavə etmək istəyirəm. Mən əlavə etmək istəyirəm array, ünvanlarını çağırıb. Bu ünvan, bu necə var PHP bir sıra bir şey əlavə edin. Siz malloc etmək lazım deyil. Siz array ölçüsünü yoxdur. Siz yalnız array, təkan deyirlər. Siz nə array push-- istəyirəm nə Siz üzərinə bir şey təkan istəyirsiniz? Ünvanları. Siz URL üzərinə basmaq istəyirəm nə? Ünvan. Və əslində, əgər həqiqətən ağıllı olmaq istəyirəm, bəzi sintaktik şəkər bu, belə ki, danışmaq, olan yalnız bunu edə bilərsiniz necə deməkdir gözəlləşir yol bunu etmək olardı. Bu çox artan təsiri var ölçüsü bir çox ünvanları array, və sonra əlavə Plop onu e-mail. Bəli. Auditoriya: [işitilemez] HOPARLÖR 1: bir typo başqa, oh daşıyıcısı Varsa. Hər şey yaxşıdır. O, həmçinin mənim uğursuzluq kimi deyil Bu proqramın bir hissəsini həyata keçirə sonra. Amma tutmaq üçün təşəkkür edirəm. Daha bir bug. Təşəkkür edirəm. Biz bu Vtext.com olmaq istəyirəm. Bəli. Oldu. Belə ki, bu bizi tərk edir? Biz faylı açmaq üçün kodu yazdıq. Biz təkrarlamaq bir loop var fayl satır üzərində. Biz edər kod mənim bir zamanda array, bir doğru biçimlendirilmiş e-mail. Belə ki, həqiqətən qalır ki, bütün göndərin bu insanların hər bir e-poçt. Beləliklə, mən qabaqda getdi etdik və aşağıdakı kimi özümü readied. Mən is-- burada və edək gedirəm irəli getmək və bəzi faktiki kodu keçmək, bu kimi görünür. Belə ki, burada pre-bişmiş deyil version Mən əvvəllər yazdı. Mən başa qeyd Sprint həyata keçirir. Mən T-Mobile həyata tamamladı. Mən Virgin Mobile həyata tamamladı. Mən əvvəlcədən üzr istəyirik olacaq. Bir neçə daşıyıcıları var ki, sinif bir tələbəmiz var Mən sadalamağa narahat deyil ki, burada əgər vəziyyətdədir. Belə ki, bütün mətnlər çıxmaq olacaq. Amma mən nə etmək lazımdır nə görmək edək. Mən yalnız faylı bağlamaq kimi p dörd seçin. Bu yeni sintaksis edir. Və biz bir az görürsünüz Zamanla bu bit, xüsusilə p ilə yeddi və səkkiz seçin. Amma bu yaratmaq üçün sintaksis edir strukturunun xüsusi bir növü. Kitabxana var həyata çevirir ki, PHP adlı PHP poçt ilə gəlir. Həyat Onun məqsədi üçün program e-poçt göndərin. Bu code başqasının yazırdı ki, Bizə e-poçt göndərmək üçün daha asan edir, belə ki, biz saxlamaq yoxdur geri və irəli Gmail gedir, və insanların e-poçt ünvanlarını sovuşdurmaq. Burada xətlərinin bütün dəstə var ki vicdanla, mən yalnız cür sitemizi və sənədlərin yapışdırılır. Və əslində, əgər maraqlı, mən bütün sol sənədlərin URL kodu biz sonra göndərmək lazımdır ki. Və arasında fark edirəm şeyi Mən bu kitabxana deyirəm ki, sağ, Gmail server istifadə? SMTP biz biz zaman qısa danışıb Sadə mail olan Yale idi transfer Protokol. Bu protokol ki, e-poçt göndərmək üçün istifadə server, və that Gmail o biri var. A port, bu TCP port nömrəsini. Siz əgər gözəl əvvəl 587 görmədim. Just sənədlərin bilirik. Burada mənim istifadəçi adı var. Mən CF50 bot istifadə gedirəm. Və bir anda, mən yalnız gedirəm bot faktiki parol yazın. Və sonra burada, qalır nə görürsünüz. Mən Ünvan mənim müəyyən CS50.net da bot olunacaq. Mən göndərmək peşman olacaq mətn mesajı 800 insanlar , özledim sevgi CS50 bot bəlkə deyir Bu gün gələ bilmədi edənlər üçün. Və sonra line 76, mən nə etməliyəm? C. kimi görünür bu cür Mən üçün 0 bərabərdir, n bərabərdir indi yeni saymaq. Bu almaq istəyirsinizsə çıxır ki, bir sıra şeylər sayı Artıq yadda yoxdur. Siz yalnız bir xahiş edə bilər sayı adlanan funksiyası, və bu nə qədər izah edəcək URL array var. Və sonra mən əlavə etmək gidiyorum e-poçt ünvanı. Və mən bu bilirik sənədləri istifadə edərək. Bir əlavə ünvan funksiyası var. İndi orada qeyd sintaksis bir parça. Biz əvvəl bu gördüm ruhunda C. oxşar. Siz dollar işarəsi hesab edə bilər bu bir dəyişən kimi göndərin. Amma bu daxilində struct var olan yalnız xassələri vardır, dəyişənlər Siz əgər. Amma bu çıxır PHP, ki, bir obyekt yönümlü proqramlaşdırma var dil, Java kimi ZPT etdi əgər. Dollar işarəsi mail, əgər siz to-- bu da onun daxilində funksiyaları var və ya üsulları. Belə ki, bu demək deyil xüsusi PHP poçt kitabxana, mən onun bir dəyişən var, əgər, Mən bir funksiyası zəng etmək istəyirəm ki, əgər ki, kitabxana ilə gəlir, bugünkü məqsədləri üçün, yalnız arrow notation istifadə bilirik. Heç bir dot notation var. Bu, sadəcə arrow var. Amma ki, bir göstərici deyil. Bu, sadəcə C sintaksis borc var. Belə ki, zəng daxilində ünvanı əlavə Bu kitabxana obyekt və ya dəyişən. Oldu. Bu sehrli xəttidir. Mən bir e-poçt göndərmək necə. Bu açılır bərabərdir Gmail, onu yazaraq və göndərmək vuruş. Amma bu əvəzinə göndərmək olacaq Bu orqanı ilə, bu ünvana e-poçt, CS50 bot edir. İndi əsas xətt. Bu xətt 2011 kimi yox edildi Mən hesab edirəm ki, mən son bu cəhd. Orada line, əlbəttə, URL təmizləyir. Belə ki, məntiqi, I, əgər Ünvan aydın deyil hər iteration sonra ilk e-poçt və ya mətn mesajı Alice gedir, ikinci gedir Alice və Bob, üçüncü Alice və Bob və Charlie gedir, səbəbdən çox bahalı səhv Hesab edirəm ki, il etdi. Belə ki, görək. Hər hansı bir sualınız var biz bütün bir mətn göndərmək əvvəl 10 faiz ehtimalı ilə mesaj? Hər-hansı sual? Oldu. Məni burada və dəyişiklik getmək edək işləməlidir nə parol, güman ki, Gmail tərəfindən qara siyahıya olacaq. Belə ki, onlar bütün getmək bilər out, onlar bu yana yəqin ki, 800 e-poçt göndərmək bizim kimi deyil bütün bir dəfə loop üçün edir. Ki, deyil-ci ildən xüsusilə insan davranış. Oh, mən başqa bir şey dəyişdirmək üçün gedirəm. Üst, mən sent-- gedirəm tələbələr CSV dot fayl dəyişir. Mən bu açıq deyil, lakin bu bir deyil 100 işçi heyəti ilə eyni CSV faylı lakin 800 şagird, yalnız Harvard, çünki Yale Bu həftə oktyabr fasilə var. Və bir qaxac şey cür kimi görünür nə üçün onlara bütün mətn etmək Onlar bayram sinif deyilik. Hər şey yaxşıdır. Just Harvard tələbələr ki, fayl daxilində bu gün. İndi geri gedək Mənim terminal pəncərə. I növ sinir edirəm. OK, belə ki, indi mən getmək üçün gedirəm kataloq və PHP mətn dot PHP. Necə bir igid könüllü haqqında? Belə ki, mənə bu istəmirəm. OK, qədər gəlib. Sənin adın nədir? MAYA: Maya. HOPARLÖR 1: Maya. Qədər Maya gəlib. Oldu. Bu işləri əgər in nəzər salaq. Mən öz e-mail qoymaq fayl öz telefon nömrəsini fayl, belə ki, inşallah mən də bir almaq lazımdır. Görüşmək Nice. MAYA: Eyni şəkildə. HOPARLÖR 1: Beləliklə, siz nə etmək lazımdır bütün 800 mətn mesajları göndərmək üçün Enter, Mən qıymaq olmasaydı. Nice. Statistik, bir müddət bilər, biz bir e-poçt almaq qədər ünvanını bir mətn mesajı İndi otaqda. Nin uzanmaq və görmək edək. Auditoriya: [fit] HOPARLÖR 1: Bəli, Oh. Auditoriya: Gotcha, Oh. HOPARLÖR 1: loops üçün bu are-- çünki PHP yavaş deyil. Bu yavaş Gmail, çünki Bizi azaldılmasını və deyil Bizi daha çox göndərmək imkan saniyədə bir e-poçt kimi. Bir şey? Bu mənə test üçün çətin bir şey idi Mənə və mənim bir telefon yalnız ev. Ki bot olan inşallah edir? Bəli? Yox? Bəli demək. Yox? Bu bir dost var? Yöndəmsiz. OLDU. Baxmayaraq iş olduqca əmin olun. Oh uh. Onlar oh, bir dəqiqə gözləyin black--. Oh, siz nə bilirik? Bircə dəqiqə zəhmət olmasa. Yalnız Maya və istisna olmaqla, mən Mia, bu idi? MAYA: Maya. HOPARLÖR 1: Maya, gedir Mən yanlış burada nə bilirik. Oh, bir dəqiqə gözləyin. Mən yalnız 100 göndərdi edirəm 555-1212 mətn mesajları. Yanındayız. Mən hər il qazana bilməz. OLDU. Maya? Post istehsal düzeltmek. Dammit! Ünvanından sonra. OK, yanındayız. Sorry. Hər il ağrılı deyil. OK, bir an. Bu yaxşıdır. Mən əvəzinə bunu gedirəm. Print ünvanı. OK, yanındayız. Print ünvanları, bracket i. Bəli, mən ki, istəyirəm. Dollar sign-- OK mən deyiləm nə izah edəcəyik Mən bu run sonra, bir anda edir. Hər il. OK, burada biz gedin. Mən izlersin var və mən istəmirəm Hər kəsin telefon nömrəsini göstərmək üçün, lakin Maya təsdiq edə bilər baş bir nod ilə, o hər kəs görür sinif telefon nömrəsi Mən kopyalayın gedirəm ki, Gmail adlı proqram. Və Gmail əgər, nə demək istəyirsiniz? Sənin üçün darıxıram. Sevgi ki ki, məndən deyil. Mən hətta hələ göndərmək hit deyil. Belə ki, irəli getmək və bunu bildirin Bu, mən zoom edə bilərsiniz əgər. OLDU. Belə ki, indi Gmail adlı proqram istifadə edirəm. Maya varsa, siz istədiyiniz Send düyməsinə basın, Biz nə biclik olacaq code həyata olmalıdır. Bir şey? [BEEPS] Auditoriya: Yep. HOPARLÖR 1: Bəli? Salvation? Auditoriya: Yep. HOPARLÖR 1: Miss siz. Mən qalan göndərmək üçün gedirəm. Mən hesab edirəm ki, çünki mən yarım göndəriləcək Gmail o keçmək imkan verərdi. Belə ki, yalnız bu gün gün xatırlayıram ki, Mən Gmail istifadə edə bilərsiniz ki, öyrəndim. Ki, dəhşətli idi. Maya üçün böyük alqış aldı. Təşəkkür edirəm. Belə ki, bütün sağ,. nə [BEEPS] Biz bəli, bir neçə beeps var? Oldu. İndi mən həqiqətən 700 almaq üçün gedirəm geri sinif yoldaşları bədbəxt e-poçt. Belə ki, ən azı biz görəcəyik ki, dəyər idi. Belə ki, nə yanlış getdi? Mən getdi nə anlamaq lazımdır Əslində sonra yanlış, ancaq nə qədər asan baxmaq Bu PHP bunu idi. Belə ki, biz, həqiqətən, indi nə edə bilər biz PHP bu ifadəlilik var. Dəhşətli idi was--. Oldu. Belə ki, həyata getdi nə idi. Bu mənə bu səhər test mənim telefon, mənim telefon faktiki ekran. Amma indi niyə hesab edək Biz, həqiqətən, təqdim edirik ilk növbədə bu məhsulları bütün. Belə ki, məqsəd deyil bu proqramları yazmaq command line yazılı, sağ? Mən bir sadə yazdı Proqram hello, yazdım conditionals ki, bir kiçik proqram, və s bir oxu xətti və istifadə olunur. Və nəzəriyyəsi, mən yalnız yazırdı göndəriləcək bir proqram 800 mətn mesajları, vermək və ya 800 almaq. Və proqram bütün idi hələ command line axır. Və əlbəttə ki, Biz web, sağ? Məqsədi artıq istifadə edərək başlamaq üçün nə iddia istifadə etmək daha asan bir deyil dil, daha daresay baxımından güclü dil xüsusiyyətləri ki, ilə gəlib, başlamaq üçün web pages yaradır kodu yazmaq. Belə ki, sonuncu dəfə ötən həftə, biz HTTP və HTML haqqında danışdı. Və HTML haqqında gözəl nə var yalnız təmiz mətn var ki. Və mətn əlbəttə bir şey edə bilərsiniz sözün çap axtararaq çap f funksiyası, və ya çap funksiyası. And olsun ki, PHP nə var İndi imkan gedir. Belə ki, nümunələri arasında biz bugünkü mənbə kodu var, kodu bəzi əlavə Mən, bir an əvvəl orada qoymaq biz məsələn bu kimi proqramları var. Froshims, və ya Birinci Sınıf Intramural idman, əslində ilk extracurriculars biri Mən il əvvəl ilə məşğul olmuşlar. Və mənim roommate və mən ilə kampus bəzi digər uşaqlar, froshims proqram çalıştırmak üçün istifadə olunur. İndi mənim mətn mesajları alıram. İndi belə ki, biz geri gün, belə ki, bu 1996-cı il idi və ya belə bir internet var idi lakin heç bir process-- var idi froshims üçün veb idi. Və belə ki, qeydiyyatdan keçmək üçün istəyirdi futbol və ya voleybol və ya nə olursa olsun, Bu şey doldurmaq olardı kağız parçası çağırıb və Harvard arasında gəzmək olardı həyət, siz uçmaq olardı Proctor mail slot daxil olan Wigglesworth, yurdda biri idi. Bu qeydə idiniz. Və o, sonra ki sizə bir e-poçt bəstələmək əl, çox mən kimi yalnız Maya ilə burada etdi və sonra təsdiq olunacaq olması kimi qeydə alınmışdır. Belə ki, bu aşağı kimi idi meyvə asma, belə danışmaq. Bu cür ki, axmaq idi biz bu kağız istifadə edilmişdir. Mən etmək istəyirdi Yalnız bir web getmək üçün, və ya birinci kurs bir getmək var haqqinda, idman üçün qeydiyyatdan və yalnız bu məhsulları bir çox avtomatlaşdırılması onların adları və e-poçt qoyaraq və s bazasında. Və əslində, ilk versiyası veb, super çirkin HTML istifadə edərək, bu kimi bir şey baxdı bilər. Bu, həqiqətən idi, istehzayana, daha utandırıcı bu geri çox axtarır sonra. Amma bir proqramlaşdırma dili istifadə olunur. PHP deyil, Perl adlı, olan köhnə dilidir, lakin ruhunda çox oxşardır. Mən yalnız tamamilə özüm üçün öyrətdi. Və bu, onu anlamaq üçün mənə bir müddət etdi dostlar suallar çox xahiş. Amma fikir eyni idi. PHP həqiqətən nəzərdə tutulmuşdur nə çünki üçün command line stuff deyil biz yalnız, ilə oynanan lakin web proqramlaşdırma üçün. Bu, həqiqətən, onun xüsusiyyət bağlı oldu web qurmaq kimi edir. Bu froshims edir. Mən istəyirdi Bu formada qeydiyyatdan Bu, olduqca çirkin əlbəttə, lakin mənə irəli gedək və bir az rahat tələbə olmaq, Matthews üçün nə idman, Qeydiyyat basın. Mən nə etmək istəyirəm nə bir formada məlumat təqdim, Biz kimi Google server biz tamamilə son dəfə idi onların backend istifadə edərək xəyanət, mən Öz backend kodu həyata keçirmək istəyirik. Hansı yazmaq PHP deməkdir URL yaşayır kodu ki, forma data təqdim edilə bilər. Və sonra indeksi, bir server PHP yazılı, o istifadəçi girişi cavab verə bilər. Onun adı, və ya rahatlıq səviyyəsi kimi, və ya sonra yurt və onunla bir şey yoxdur. Bu halda, mən yalnız gic onu çap olduqca, bütün deyil mətn kimi. Amma əlbəttə bilər HTML bilirsinizsə, təsəvvür, və tezliklə yaratmaq üçün necə bilmək lazımdır Çap f, və çap HTML, oxşar funksiyaları və, əlbəttə bilərsiniz , deyir ki, bir gözəlləşir web page yaratmaq hey David, indi qeydə alınır. Siz bir az rahat istəyirik Matthews tələbə, sağ? Siz yalnız% SES bütün dəstə istifadə edə bilərsiniz, və ya qıvrım aşırma və dollar işarəsi notation Mən bir an əvvəl istifadə daha çox istifadəçi dostu mətn yaratmaq Bu daha. Belə ki, bu bir fayl bir nəzər salaq. Froshim sıfır dot PHP bu kimi görünür. Mən CS50 IDE yenidən zaman, froshim sıfır bu kimi görünür. Bu froshim sıfır dot PHP edir. Və bu fayl haqqında nə hiss edirsiniz? Auditoriya: [işitilemez] HOPARLÖR 1: Bağışlayın, bir az louder? Auditoriya: [işitilemez] Bu HTML bütün var. Və əslində, çünki edir nə PHP haqqında maraqlı Bu nəzərdə tutulmuşdur ki, yaxşı olmaq və ya pis üçün, içe HTML kodu ilə. Və əslində, hətta bu olsa fayl, sıfır dot PHP froshim üst bir PHP şərh var bu, bütün, yalnız HTML var. Amma əksinə, mən açmaq əgər, edək demək, sıfır dot PHP qeydiyyatdan olan yalnız üst böyük bir şərh var. Bu da demək olar ki, görünür nə istisna olmaqla HTML kimi? Line, nə, 21 bir az qəribə görünür. Amma PHP rejimində daxil alıram qeyd açıq bracket sual işarəsi PHP ilə. Sonra mən bəzi şeylər var. Və sonra xəttinin sonunda demək olar ki, Mən, mark PHP sual. Və bu mən içe demək nə. HTML yaza bilərsiniz ki, yalnız server tüpürmək istəyirəm. Amma bir şey etmək istəyirsinizsə, səhifə vasitəsilə dinamik partway, kimi mənim ad daxil və ya yurt və ya rahatlıq səviyyəsi, Mən bir funksiyası istifadə edə bilərsiniz print r kimi olan yalnız deməkdir ki, recursive çap bu format, bu dəyişən çap Lakin istədiyiniz. Bu, həqiqətən deyil insan məqsədləri, yalnız var ayıklama və ya diaqnostik məqsədlər üçün. Belə ki, mən ki, necə var. Mən əvəzinə iki dot PHP froshims getmək əgər, qeyd ki, bu formada fəaliyyət kimi sıfır dot PHP qeydiyyatdan deyil old-- əvvəlki əslində. Amma bu iki nöqtə PHP qeydiyyatdan edir. Belə ki, necə bu bir baxaq fərqli bir az davranır. Mən versiyası iki daxil edin. Burada, mən Davud kimi qeydiyyatdan az rahat, Mathews yurt olan, qeydiyyatdan keçməlisiniz. Belə ki, bu dəfə siz ifadə edərək, həqiqətən, qeydə alınır. Mən burada nə görmək edək. Mən reyestrinə iki dot baxsaq PHP, bu, bəzi daha PHP kodu var. Bu, baxmayaraq ki, bir az təmiz hələ bu xətt üzrə bir az uzun wraps. Burada edək. Mən HTML tag çap başım tag, Mənim adı tag, baş, bədən. Və sonra mən demək başlamaq PHP rejimi daxil kimi şeylər. Və tag ki, açıq bracket Php sual işarəsi PHP deyir hey, server, şərh execute-- PHP aşağıdakı stuff Siz son tag görmək qədər. Və hər hansı bir bilmirəm bilər, baxmayaraq ki, Siz indiyə qədər gördüm başqa PHP, cür oxuya bilərsiniz Bu olduqca daxilən. Adı boş və ya rahatlıq əgər boş və ya yurt boş, mən nə etməliyəm? Mən istifadəçiyə nə deyirsiniz? Siz adı təmin etməlidir, rahatlıq, və yurt, və s. Else, Mən sizə demək qeydiyyatdan, yaxşı deyil, həqiqətən. Mən, həqiqətən, demək heç bir verilənlər bazası var, çünki. Mən data ilə bir şey bunu deyiləm. Mən yalnız üz atma alıram nümayiş məqsədləri üçün. İndi cür xətti 22 skimped. Daha syntax var var, lakin dollar işarəsi post maraqlı növüdür vurğulayır. Bu PHP haqqında gözəl nə var. PHP, siz adlanır nə var bir neçə super qlobal dəyişənlər. Onlar daha sort var qlobal dəyişənlər çox əhəmiyyətli. Və bu, bütün hərflərlə kimi, PHP ilə gəlir. Bir server varsa Belə ki, bir web server, Apache kimi, yüklü və dil yüklemek PHP, qəflətən üçün dəstək Bu super istifadə edə bilərsiniz Sizin kodu qlobal dəyişənlər. Və haqqında gözəl nə var PHP ki, əgər yalnız dot başa bir fayl yazmaq PHP, bir web server qoyun və sonra ona bir formada təqdim ki, fəaliyyət tag və bir forma tag vasitəsilə, ki, fəaliyyət atribut forma tag, PHP və web tamamilə qamarlamaq üçün necə tutulur bu əsas dəyər cüt bütün sual kimi URL mark q, pişik bərabərdir Bu necə q və pişiklər anlamaq olacaq. Bir şəkil, və ya istifadəçi adı təqdim varsa, və ya parol, Facebook kimi PHP sizin üçün anlamaq edəcək harada ki, data bütün var. Və yalnız verəcək Siz assosiativ array adlı dollar işarəsi underscore post, və ya dollar işarəsi almaq vurğulamaq, Siz olsanız asılı olaraq almaq və ya post təqdim istifadə. Və yalnız siz verəcək super qlobal dəyişən, Siz adı almaq istəyirsinizsə, belə ki, Istifadəçi ki, internet vasitəsilə təqdim ki, forması, siz sözün yalnız adını demək super qlobal dəyişən, quote, dırnağı bağlamaq, adı. Və quote, dırnağı bağlamaq rahatlıq, və quote, dırnağı bağlamaq yurt. Və biz bunu edə olacaq bu və çox daha çox PHP ilə. Və bu idi, baxmayaraq ki, ona bir qasırğa nəzər, biz daha çox gələn həftə dalış lazımdır. Biz bir verilənlər bazası təqdim edəcəyik ki, həqiqətən istəyirik həyata başlamaq gedir Öz e-ticarət based yalnız bir həftə vaxt kimi. Belə ki, biz növbəti dəfə görmək, və lazımdır Siz mətn mesajları var ümid edirik. Bye. [MUSIC PLAYING] [DOOR AÇILIŞ] HOPARLÖR 2: Hey. HOPARLÖR 3: Nə var? HOPARLÖR 2: Nə edirsən? HOPARLÖR 3: problem set üzərində işləyir. HOPARLÖR 2: Nice. Beş yüksək. [HIGH FIVE] Uh, burada nə edirsən nə are--? HOPARLÖR 3: Just həyata asma. Just geri idman zalı var. Mən kömək edə bilər, lakin zaman biz yüksək fived qeyd, ki, olduqca kobud əlləri var. Siz idman zalı getmək edirsiniz? HOPARLÖR 2: Xeyr Yox. HOPARLÖR 3: Dostum, siz olduqca böyük baxmaq. Hər kəs bilir, çünki o, pis 8-ball kampus böyük insandır. High beş. HOPARLÖR 2: yox, Uh. Xeyr, mən yaxşı edirəm. Mən yaxşı Ben edirəm.