[MÜZİK OYUN] HOPARLÖR 1: Bu CS50 ve Bu haftanın yedi sonudur. Bugün belki nerede biz ise Gerçekten size dillerin öğretimine. Biz son birkaç tanıtıldı hafta HTML ve CSS, ikisi de programlama dilleri vardır. Ve gerçekten de, yaptığımız bile değil Neredeyse tüm etiketleri bakmak HTML ve neredeyse tüm gelir CSS ile gelen özellikler, Bu HTML ve CSS için o tür. Biz sadece genel edeceğiz Size varsayarak başlamak genel fikirler anlama etiketleri ve öznitelikleri, ve sayfalar gönderiliyor istemciden sunucuya. Bugün bakmaya başlar çünkü Başka bir programlama dili, PHP. Biz bu süper hızlı yapmak için gidiyoruz. Biz, PHP başına size öğretmek için gitmiyoruz Biz size öğretmek için talip olmadı gibi çok C, başına değil, programlama. Gerçekten de, bir Bu ders için hedefleri Size C öğretmek için değil, veya HTML, CSS veya, veya PHP, ya da diğer herhangi bir sayıda buzz kelime veya kısaltmalar, ancak bilgisayar bilimi oldukça ve nasıl temelde program. Ve gerçekten de, bugün almaya başlar Tüm kapalı bu eğitim jantlar ayrıca içinden uçarak aşağıdaki gibi dil, PHP denir. İşte bu dil neye benzediğini olduğunu. Bu gerek orada olduğu ortaya çıktı Yazılı bir programda bir ana işlevi PHP adında bir dille. Zaten biraz daha basit sesler Yani C'den, hangi ile biz aşina. O çıkıyor ki eğer Bir değişken bildirmek istiyorum Eğer C'ye neredeyse aynı bunu Ama tek fark burada açıkça var Ben bir dize ilan zaman, ya da belki iki farklılıklar. Ne farklı görünüyor? HEDEF KİTLE: Dolar işareti. KONUŞMACI 1: Evet, dolar var Daha önce hiç görmediğiniz imzalanacak. Ve ne eksik? Evet? HEDEF KİTLE: [duyulamaz] KONUŞMACI 1: Evet, hiçbir veri türü var. Peki PHP ne olduğu ortaya çıktı biz gevşek yazdığınız dili, çağrı C şiddetle yazılır. Gevşek sadece anlamına gelir yazdığınız Farklı veri türleri vardır, dizeleri ve ints ve yüzer vardır. Ama bilgisayar rakamları ortaya. İnsan programcı onu anlamaya gerek yok. Böylece tüm yapmanız gereken bir değişkendir ilan dolar işareti, ismi sizin Değişken ve daha sonra, örneğin, alıntı unquote, merhaba dünya. Peki bu ne olduğunu durum PHP gibi görünüyor. Herhangi bir fark var mıdır? Hayır. Çıkıyor bu yüzden bu aynıdır. Ve daha az olabilir şube ya da daha fazla şube, ancak sözdizimi dönüşler aynen dışarı. Boole ifadeleri can birlikte sipariş edilebilir. Boole ifadeleri Birlikte Topraklı edilebilir. Hala anahtarları var. Hatta kullanmadıysanız Bu, bu C var olmayan ve işlevsel konum PHP eşdeğer. Ve aslında, PHP they Biraz daha güçlü. C, sadece belirli karşılaştırabilirsiniz ints ve karakter gibi veri tipleri, PHP aslında karşılaştırabilirsiniz oysa kalmadan tam tüylenmek dizeleri işaretçiler ve benzeri endişelenecek. Yani burada bir for döngüsü var. Bu sadece pseudocode olduğunu Kod, eğer olacaktır. Ancak yapısal olarak bu C'ye aynısı İşte while döngüsü, pseudocode var therefore-- C'ye denk Özdeş loop-- ederken İşte bir do var. Ve böylece bir tür var Burada bu model bu sayede Birkaç diğer sentaks var özellikleri, biz gerçekten görmeye gidiyoruz. Aslında, burada bir güzel bu sayede PHP yolu, Eğer yineleme istiyorsanız Bir dizi üzerinde ve üzerinden atlamak istemiyorum sahip zihinsel ve sözdizimsel çemberler int i az, 0 eşittir n daha i artı plus-- hangi can sıkıcı sözdizimi sadece bir sürü olduğunu. Biraz daha diyebilirim akıcı her numara Bu durumda, sayı, burada olarak dolar işareti numaraları, ben varsayarak yaşıyorum, Bir dizi denilen numaralar gibi. Ve sonra, numarayı varsayarak yaşıyorum tekil bir değişken olacak. Ve PHP Ben yineleme olarak benim için ne yapacak Bu döngü üzerinde, her tekrarında, bir o değişken sayısını güncelleştirmek gidiyor daha çok sayıda yer i öğe,. Yani bu sadece benim için bütün işler. Hiçbir köşeli parantezler, hayır dolar işareti, hiçbir noktalı virgül. Sadece biraz basittir. Peki, isterseniz bir Dizi, çıkıyor sen oldukça benzer bir şey yapabilir C. sözdizimi biraz farklıdır. Ama burada bir dizi denir Dolar numaralarını imzaladı. Ve ben PHP kullanmak, kare parantez, o çıkıyor. Ve biz yine bu görmeye gidiyoruz JavaScript-- henüz başka bir dil. Ben sadece köşeli ayraç notasyonu kullanmak virgülle ayrılmış listesi var Bu durumda tamsayılar, evi. Ama bu bana bir dizi verir. Ancak PHP daha güçlü, Biz de genelde ne var ilişkilendirilebilir diziler denir. Ve dillerin bir sürü de bu var. C dizileriyle ilgili bir şey dizinler olmasıdır bir dizi, bir şey için size köşeli parantez içinde kullanmak hangi aracılığıyla Eğer elemanlarına erişim ne olmalı? HEDEF KİTLE: [duyulamaz] KONUŞMACI 1: Onlar sayılar olması veya Özellikle sıfırdan up tamsayılar. Peki, PHP ve bu döner dışarı, diğer dillerde, Sahip başlayabilirsiniz Sayısal olmayan indeksler. Ama aslında kelimeleri konum veya ifadeler yerine, böylece nerede bir şey hatırlamaya çalışın veya bir değişken i depolanır aslında bir kelime kullanmak ve söyleyebiliriz ki- Böyle bir kelime diyebiliriz. Yani dolar işareti alıntı Burada bir değişkenin adı. Bu biraz korkak sözdizimi İki anahtar değeri ilişkilendirme var: Bu değişken için çiftleri. Özellikle, bu beni veriyor uzunluğu 2 olan bir dizi. Ancak endeksler 0 ve 1 değiller. Indeksler alıntı unquote vardır sembolü ve alıntı unquote fiyatı. Ve bu indeksler değerleri, sırasıyla FB Facebook için Ben son ne zaman ve 79,53 $, Bunun için bir fiyat kontrol etti. Bu ne anlama gelir? Peki, bu demektir yerine kod yazma Bir şeyler yapmak için kullanılan bu nerede gibi Dolar sign-- ya da daha doğrusu, C gibi Hatta bir dolar işareti olmazdı. Ben bir şey yapacağını Daha sonra tırnak ve benzeri Ben bazı olsun dirseğini yapacağını keyfi sayısal değeri endeksli. Eğer sen, PHP bugün başlayan Bazı değerde almak istiyorum, biz tür daha var anlamsal anlamlılık. Söyleyerek sadece süslü bir şekilde biz can Sadece onlar ne şeyler diyoruz. Ve almak istiyorsanız bir şey sembolü olarak, Şimdi tam anlamıyla yapmak unquote sembolü alıntı köşeli parantez içinde Bunun yerine sadece bir dizi. Bu yüzden güzel bir kolaylık var. Ve şimdi için o tür. Demetleri var PHP diğer özellikleri. Ve gerçekten de, PHP ile geliyor meşhur evye. Onlarca, yüzlerce fonksiyonların gelmek C ile birlikte birden fazla PHP-- çok Ve bu amacıyla değil korkutur ama oldukça yardımcı Bunu biz hiçbir fark Artık kod yazmak zorunda Bu kavramsal burada çeşit aşağı. Şimdi biz sadece yararlanarak başlayabilirsiniz çok daha gelişmiş özellikler PHP gibi diller var. Yani biz endişelenmenize gerek yok bellekte şeyler etrafında hareket. Biz malloc hakkında endişelenmenize gerek yok ve daha düşük düzeyde tümünü Eğer güreş olacak güçlü ayrıntılar ile pset5 ile mücadele değilse ama sen başlayabilirsiniz verilen yakında alır. Aslında, en bir süper yazalım PHP basit bir program, aşağıdaki gibi. Ben CS50 içine kafasını gidiyorum Burada IDE ve yapmam gereken ne gidiyorum Bu çok basit, yeni bir dosya oluşturmak olduğunu merhaba nokta PHP çağrılacak gidiyor. Bunun yerine nokta c, bu kadar gidiş nokta PHP çağrılacak. Ve sonra bu dosyada, Ben yazmaya başlayabilirsiniz. Ama çıkıyor bir şey bilmem gerekiyor Genel olarak herhangi bir PHP dosyası ihtiyacı var bazı özel sözdizimi ile başlamak. HTML ruhu içinde benzer, ama yine PHP programlama dili değil, bir biçimlendirme dili. Böylece her dosya ve çeşit aptalca itiraf edeceğiz arıyorum. Açık aparatı, soru işareti, PHP. Ve bu sadece var demenin dilin yolu, hey, bilgisayar burada bazı kod geliyor PHP adında bir dilde yazılmış. Ve sonra dosyanın en sonunda, Eğer karşısındaki tür tür yapmak. Size, yine PHP sadece yazmazlar Soru işareti, açılı ayraç yapın. Ve sonra her şey içeride koymak Bu iki etiketleri, tabiri caizse, olacak, ya da PHP kodu olmalıdır. Yani süper basit bir şey yapalım. Devam edin ve baskı yapmak için gidiyorum def, merhaba dünya, ters eğik çizgi n kaydedin. Ve şimdi benim isteminde, ben gidiyorum yapmak hayır, ben yapacağım hello-- yapmak, nokta merhaba çizgi. Hayır, nokta çizgi, hm. Yani bir şey farklı. Ve gerçekten de, bu önemli bir fark C. C gibi PHP ve diller arasında sözde derlenmiş diliydi. C derlenecek için ne anlama geliyordu? Ima neydi? Evet. HEDEF KİTLE: makine koduna yazdı bu nedenle bilgisayar tarafından çalıştırılabilir. KONUŞMACI 1: Kesinlikle. Biz ilk dönüştürmek zorunda makine kodu, sistem sıfır ve birleri sözde aslında çalıştırılabilir olacak önce ve bilgisayar tarafından anlaşılan. Içeride Intel tarafından. Bilgisayarın içindeki CPU tarafından. PHP, aksine, denir ne bir dil, hangi Eğer derleme anlamına gelir birler ve sıfırlar, makine koduna, Bunun yerine kaynak kodu olarak bırakın. Ve yerine girdi olarak geçmek Bir programa, bir tercüman başkası yazdı yıl önce anlar satır satır, karakter karakter. Bu yüzden, diğer bir deyişle insanlar orada yazdı bakacağız bir program satır kod satırında, ve anlamaya neler Bilgisayar, yapmalıyım dönüştürmeden doğrudan sıfırlar ve olanları. Bir döngü için görürse Yani, Bu sözde tercüman Ben gereken her hakkı gibi olacak Tekrar ve tekrar ve tekrar bir şeyler yapmak. Ne yapmalıyım? Beni sonraki satıra bakalım. Beni sonraki satıra bakalım. Ve gerçekten satır satır o yorumlar. Yani çalıştırmak için, ben marka kullanmayın. Ben bu durumda nokta çizgi kullanmayın. Bunun yerine, hangi PHP do Bir program, nam-ı diğer adı Bir tercüman, işte CS50 IDE önceden yüklenmiş, ve şimdi bir geçmesi gerekiyor komut satırı argümanı, hangi oldukça sade adıdır Ben yorumlamak istiyorum dosya. Ya da daha sıradan, ben çalıştırmak istiyorum. Ben Enter hit Ve eğer, biz var. Merhaba Dünya. Şimdi çıkıyor ben Kullanılan baskı def kasten PHP C bizi köprü. Çoğu PHP programcıları, sizin de göreceğiniz gibi, Hatta baskı def kullanarak rahatsız etmeyin. Onlar sadece adında bir işlevi kullanmak C yoktu baskı. Ve bu yüzden aslında şimdi bunu yeniden eğer işlevsel aynı şekilde davranır. Ben yüzde s kullanamazsınız ve benzeri yüzde i ve ama başka yolları da vardır Bunu yapmanın PHP. Ancak bu sadece için , sözdizimsel söylemek Yukarı bazı garip şeyler dışında Üst ve aşağıya bazı garip karakterler altta, kavramlar şimdi Bu diğer dil programlama aynı olacak. Aslında, en bir başka örneği yapalım. Yani ben önde gidiyorum ve bu dosyayı kapatın. Bana bir tane yaratalım o Ben şartları 1 nokta PHP arayacağım. Yani hiçbir sıfır, ne yaptım çünkü Ben birkaç hafta önce geri baktı biz denilen bir dosya vardı koşullar 1 nokta C. Ve Ben bunu dönüştürüldü yaptım benim Baş ve kağıt üzerinde burada, ve yakında ders en üstünde Web sitesi, PHP içinde satır satır. C sürümünde Yani, biz bir şey yaptım dize gibi s dize olsun alır. Yani bu biraz farklı PHP bunu. Bunun yerine, ben sadece gidiyorum daha doğrusu yapmak, ya da ben yapmış olabilir int n almak alır int, daha önce bu örnekte. Bunun yerine o, ben n yapacağım satır okumak olur, ben bir tamsayı isterim, Lütfen. Yani bu sadece benim istemidir. Ve böylece çıkıyor ve Ben sadece bu bilemez okumak veya işlev gördükten daha önce, PHP fonksiyon satırları okurken istemi olan bir argüman alır insan ve hayat onun amacı için Bir metin satırı okumaktır o da o tür olduğunu. Sonra bu depolar Değişken n içine metin. Ve şimdi ben bir şey yapmak isteyebilirsiniz gibi benzeri hafta, hafta önce yaptığı sınıfının on. N, daha büyük olduğu takdirde sıfır, o zaman, ben gidiyorum Biz sadece gördüğümüz sözdizimi ödünç, Baskı def, sen pozitif bir sayı aldı ters eğik n. Else n eşitse ben, sıfıra eşit go ahead ve diyecek, baskı def, sıfır ters eğik çizgi n aldı. Else, dava burada olmalı Elbette olabilir, baskı def, Eğer negatif bir sayı aldı. Ve biz kesinlikle uygulayabilirsiniz Bu şeyin mantığı Farklı bir demet yolları, ama burada nokta bu, sözdizimsel bir ancak yeni bir şey değildir. Sadece dolar işareti var ve yeni bir fonksiyon ve okuma çizgi. Ama temelde ne yeni şimdi ben bu yorumlama olmam. Ben girdi olarak geçirerek Başka bir programa. Ben, bu çalıştırmak istiyorsanız Yani Ben herhangi bir hata yapmadım, Ben, PHP çalıştırmak için gidiyorum 1 nokta PHP, Enter koşulları, Ben, sayı 50 yazmanız gidiyorum ve şimdi o işler için varsayalım. Mantık Çünkü Haftanın tek aynı şeyler. Pekâlâ, ne güzel underwhelming, değil mi? Biz herhangi yapabileceğini dillerin sayısı. En şeyler yolu daha güçlü yapalım. Diyelim bitirmek problemi beş set. Yani go ahead ve bunu yapmak için gidiyorum. Ben bir dosya oluşturmak için gidiyorum Sözlük nokta PHP denilen, Eğer olabileceği gibi eğimli ve notlar sürü aşağı karıştırmak, notlar sadece yardımcı olacaktır Eğer izin eğer sorunlar PHP beş set uygulamak. Ama biz nasıl gördüğünü çabuk şimdi edeceğiz biz Aynı sorun setini uygulayabilirsiniz. Yani Sözlük nokta PHP, ben gidiyorum zaten orada olduğunu varsaymak Dünyada bir dosya heceleme denir. Ve gerçekten, ben önceden bunu ve biz bu hat üzerinden yürümek olmaz satır, ama eğer meraklı sonra ve gerçekten istediğiniz etrafında fikrinizi sarmak için c ve PHP arasındaki farklar, kelimenin tam anlamıyla bu dosyayı karşılaştırmak, Bugünün kaynak kodundan speller, daha sonra deftere edeceğiz Bugün, s kümesine karşı Biz size beş speller nokta c ve satır hemen hemen aynı çizgi. Biraz daha dolar işaretleri var. Birkaç fonksiyonları biraz farklı. Ama güzel bir yolu var bir tür nasıl görmeye Eğer başka bir dile çevirmek. Ve bu hat için neredeyse aynı çizgi. Ama o kabul edeceğim var ve ne ben burada yapacağım uçurmak için deneyin sizin reimplementing tarafından sakıncası Sorunun tamamı beş şeklini ayarlamak senden daha hızlı şimdiye kadar yapıyorum. Yani örneğin, ben ilk gidiyorum boyut olarak adlandırılan bir global değişken bildirmek ve sıfıra eşit olarak ayarlayın. Şimdi bu kadar tasarruf değil. Oran uygulanmaktadır hemen hemen aynı boyutta, ya da ipucu ipucu, bu gece ya da yarın olacak, sadece adında bir küresel değişkeni kullanarak boyutu ve sıfıra eşit ayarlama. Bu özellikle değil inanılmaz spoiler. Yani veri yapıları neydi seçim daldı olanlarınız ve spec okumak, hangi veri yapıları Çoğunuz kullanıyorum var? Bir hash tablosu ya da belki, denemek bunların bazı türevlerini. Yani en azından bir karma tablo uygulanması, , kod satırları bir çok tür sağ? Ve bunların hepsi olabilir değil hafta içinde bu noktada, fonksiyonel ama bu iyi. PHP, eğer Çünkü yapılan bir karma tablo istiyorum. Sağ? Ben ettik bu değişken Yani Sadece belli bir ilan dolar işareti masa denir, önce giriş başına. Ama ben gerçekten sadece at, istediğiniz Günün sonunda, bir dizi. Ama bir sayısal endeksli Dizi, bu hafta iki gibi çünkü şeyler, biz diziler hakkında konuştuk. Ben bir karma tablo istiyorum. Ama karma tablo gerçekten demenin somut bir şekilde, Eğer bir ilişkisel dizi istiyorum. Sen edebilmek istiyorum değerleri ile ilişkilendirmek tuşları. Değerlere sahip tuşlar. Gerçekten, bir sözlük nedir? Peki bu anahtarların bir sürü var. Elma, armut, ve muz gibi sözler, ve bu İngilizce kelimelerin tüm Size teslim söyledi. Ve değerler etkili olduğunu senin sözlüğe takmadan olan biri doğru ya da yokluğu, yanlış. Başka bir deyişle, eklediğiniz anahtar değer çiftleri bir sürü, elma, gerçek, armut, gerçek, muz, gerçek. Eğer almak veya baktığında Böylece senin karma tablo bu verileri yedekleyin çek fonksiyonu ile, sen Ya bir cevap geri almak, evet, benim kompleksi buldum tablo hash veya hayır, orada değil, böylece return false. Peki bunu yapmak için, tüm ihtiyacım veriler I gibi yapının daha önce önerdi. Ben sadece gerekiyor kelimeleri ilişkilendirmek gibi unquote alıntı, sembol, Gerçek bir değer gibi, sahip. Yani benim karma tablo var. En aslında kullanalım. Yani birkaç fonksiyonlar var Ben uygulamak gerekiyor. Devam edin ve ısırmaya gidiyorum Bir işlev olarak adlandırılır boyutta kapatır. Hiçbir argüman alır. Ben ile uğraşmak zorunda değilsiniz kelime, PHP, geçersiz. Ben sadece boyutunu geri dönmek için gidiyorum. Ve bir kenara olarak, PHP vardır Bu minorly can sıkıcı detay, bir şey küresel eğer, nereye var Kullanmakta olduğunuz hangi işlevi anlatmak o, hey, bu global bir değişkendir. Yani, küçük aptallık, ama sen yine bunu yapmak zorundayız. Peki yük hakkında? Ben uygulamak için gidiyorum Bir işlevi çağrılır yük Bu, bir sözlüğe adına alır sadece problem beş set gibi. Ve ben devam etmeden önce ben değil fark oldukça aynı şeyleri yazarak edilmiştir. Peki PHP açıkça farklı nasıl C karşı bir işlev bildirmek? Evet. HEDEF KİTLE: [duyulamaz] KONUŞMACI 1: Hiçbir dönüş türü. Ve gerçekten de, bu durumda, PHP bulunuyor o gevşek yazdığınız oluyor da sürece, Ayrıca bu anlamda biraz özensiz. Sen programcı olarak belirtmezseniz Bu işlev döndürür neyi. Aslında bakmak gerekir kodu olduğunu anlamaya. Ya yorumları okumak veya belgeler. Artılar ve eksiler So bu tür kararların alınması. Ama söylemek zorundayım Anahtar kelime, fonksiyon. Ve biz ne zaman öğrenirler Birkaç hafta içinde JavaScript Biz de aynı şeyi görmeye gidiyoruz Yine, ancak aynı fikir. Işlevin adı, argümanı ya da bunun, şimdi argümanları ya da eksikliği Burada uygulamasıdır. Yani sadece bazı köşeleri kesmek için gidiyorum Sadece bir an için dramatik olmak. Ama ben gitmek önde ve bu söyleyeceğim. Bu benim yükleyebilirsiniz nasıl bir diziye bir dosya. Dosya adında PHP bir işlevi yoktur. Bunu bir dosyanın adı ver. İçinde, bir dizi size geri eller hangi dosyadan her çizgidir. Sıfır, itibaren, yukarı n eksi 1 satıra. Doğru, bu kadar? Hiçbir f okuma var. Hiçbir f olsun s var. Hiçbir Yüzde s var. Hiçbir baş ağrısı var. Hiçbir feof var. Bu şeyler her hangi Eğer, belki güreş oldum p dört ve beş set ile gider. Yani sadece içine bu satırları okurken Dosya ve sonra ne biliyorsun? Ben bu kelimeleri üzerinde yineleme yapmak istiyorsanız, Ben çizgi olarak her hatlar için, yapabilir. Bu tür bir akıllı olduğunu unutmayın bir dizi, dizinin üzerinde yineleme yolu indeksi ve her iterasyon çağrı üzerine Geçerli satır, dolar işareti hattı. Ve burada ben gidiyorum ve masa, dirsek, çizgi, doğru olur söylüyorlar. Diğer bir deyişle, bu nasıl PHP benim karma tabloya eklemek. Ben dolar işareti masa, demek ki benim ilişkisel dizidir yukarı yukarıdaki kod satırının başına boş. Içine Sonra endeksi değil, bir numarasını kullanarak, ama tam anlamıyla kullanarak Ben umurumda kelime. Belki elma veya armut var veya muz ya da her neyse, ama özellikle ben indeksleme ediyorum içine daha önce önerdiği gibi. Ben adını almak benim ilişkisel dizi, ve sonra alıntı Alıntı sonu kullanın bir dize ile köşeli parantez, yerine gerçek sayısı. Ve böylece bu. Yük fonksiyonu yapılır. Bu döngü yineler keresinde koyduk karma tabloya her şeyi. Şimdi küçük feragat, orada bir Ben düzeltmek gerekiyor kaç şey. Ve sürümü çevrimiçi göndeririz nüanslar hepsine sahip olacak, ama çoğunlukla sadece bazı olacak hata denetimi ve bazı küçük tweaks. Ama bu gerçekten onun özü bu. Ben şimdi uygulamak istiyorsanız Çağrılan işlev Bir beklediğini, hangi kontrol onun argüman olarak kelime, Bunu yapmayı nasıl gidebilir? Eh, ben sadece eğer, demek için gidiyorum Benim tablonun içinde, yeri kelimeye, Eğer ayarlanır. Yani orada bu-- varsa Aslında, biliyor musun? Ben bunu yapacağım pseudocode biraz. Ama fikir aynıdır. Bu doğru eşitse true döndürür. Pekala. Ne tür nerede görebilirsiniz Else-- Bu return false going-- olduğunu. Bitti. Kontrol yapılır. Çok güzel, değil mi? Ve böylece gerçekten almak bu nedir? Ve bu da, bazı köşeleri kesme. Online versiyonu bak hafif nüansları tüm. Ama bunun özü bu. Içine Endeksi senin ilişkisel dizi, nam-ı diğer Bir değer varsa hash tablosu, bkz Orada, o true olarak ayarlanırsa ve eğer öyleyse, doğru dönün. Bu yüzden whittled ettik karmaşıklığı her. Yani zihin tür üfleme, değil mi? Ben, boşaltma ile terbiye rahatsız olmaz in fact-- Çünkü oh, biliyor musun? Evet, boşaltma ile bitirelim. Görünebilir bir karma tablo boşaltın Fonksiyon boşaltma gibi dönün. Tamam böylece boşaltın var. Bir şey yok, çünkü Doğru, boşaltmak için? Hiçbir malloc var. Ben açıkça sormadı her şey için işletim sistemi. Ben sadece değişkenleri kullanmaya başladı. Ve böylece bu çok bir tezahürüdür üst düzey dillerin özellikleri. Yani yine, bu terimin en Burada aşağı uğraşan oldum C. Süper düşük seviyede. Bilgisayarın belleğini görebilirsiniz. Sen bir şey dokunabilir Bilgisayarınızın RAM istiyorum, iyi ya da kötü. Yukarı, biz gidiyoruz bu gücü vazgeçmek. Ama Tanrım, nasıl bakmak daha az kod yazdım. Aslında ben konuşurken olmasaydı ve benim yazım üzerine konuşurken, biz bitmiş olurdu Beş dakika önce bu örnek. Peki fiyat ne ödenen ediliyor? Peki en bir göz atalım. Hadi bir bakalım. Devam edin ve CS50 çalıştırmak için gidiyorum. Beni ilk inelim Günümüz örnekler burada Ben daha önce olduğu gibi metinler dizin var. Ben çözümü çalıştırmak için gidiyorum sorunun beş set denilen ile geliyor CS50 hesabında olan yazım. Ve ben bir şey üzerinde çalıştırmak için gidiyorum King James İncil gibi büyük, sadece bu yüzden biz gerçekten koymak test personel çözümleri. Şimdi bazen internet var bir Biraz daha yavaş, biraz daha hızlı, kaydırmak için bir süre alabilir. Ama 0,56 saniye toplam aldı Kral James kontrol büyü İncil personeli çözüm kullanarak. Yani oldukça iyi. Sevgiler, çok daha yavaş olabilir ve bu tamamen iyi. Ama burada doğrudur. Böylece personel çözümdür. Ben gidip PHP sürümü temizlemek durumunda. Ve ben biraz yapacağım Pişirme gösterisi şey gibi. Biz Yazdığım kod almak için gidiyoruz Daha önce, bu yüzden mükemmel doğru. Yazdığım kod gitmiyorum çünkü şimdi mükemmel doğru olması için. Ama PHP sürümünü çalıştırıyorsanız, ne bugün vazgeçmek zorunda mı? Bana beş dakika sürdü uygulamak p beş set, ben iddia ediyor. Ne fiyat ödemiş? Evet. HEDEF KİTLE: Hız. KONUŞMACI 1: Hız. Ne demek istiyorsun? HEDEF KİTLE: Bu uzun almaya gidiyor. KONUŞMACI 1: Tamam. Görelim. Bu, uzun almaya gidiyor değil yazmak için, ama çalıştırmak için. Evet. Yani bu deneyelim. Yani burada devam edip yapacağım Heceleme PHP, çünkü dosyanın yazım denir. Yani çalışan değilim sözlük, hatırlama, Ben speller denilen bir program koşuyorum. Ben aynı geçmek için gidiyorum Dosya, Kral James beşinci. O tarafından uçuyor. Bu sadece, internet hızı olabilir bu yüzden çok fazla şey içine okumam. Ama emin uzun hissediyorum. 1,26 saniye. Şimdi bu oldukça hala lanet hızlı, doğru mu? Ve hissettim tek nedeni daha üç ya da dört, ya da beş gibi saniye, yani sırf var İnternet yavaş ediliyordu. Harcanan bilgisayar zaman 1.26 oldu saniye karşı ben 0.56 düşünüyorum. Yavaş iki kat daha çok fazla. Şimdi bu darn hala Hızlı, ancak bir tezahürüdür var arasında, gerçekten, bu tam fiyat. Biz yorumlama Çünkü satır satır kod içinde, ve bu program PHP okuyor benim soldan sağa alt kodu üst, daha fazla düşünme yapmak zorunda. Bu tür dönüştürmek zorundadır kendisi içinde onu karşılık gelen makine anında kod, bu nedenle, konuşmak için Hatta mekaniği rağmen biraz farklıdır. Yerine sadece besleyecek Intel CPU ham sıfırlar ve olanları o doğal anlar. Yani kesinlikle eller aşağı, Biz bedel ödedik. Ve kod dilde yazılmış PHP eğilimi gibi yavaş olması. Ama Tanrım. Yani şimdi ben yazım denetimi yaparken benim Dosya, ben fazladan 0,7 harcamak ya da 20 saat vs saniye uygulamak Daha hızlı, doğru yazım denetleyicisi? Bir ticaret off türüdür. Ve sadece p başlıyoruz eğer 20 saat olmayabilir, beş set. Bu çok daha az olabilir. Ama gerçek, bir ticaret kapalı. Ve gerçekten büyük kod çalıştırıyorsanız veri kümeleri, hatta eski donanım üzerinde, farklar, bu tür kesinlikle ekleyebilirsiniz. Herhangi bir sorunuz bugüne kadar? Evet. HEDEF KİTLE: [duyulamaz] KONUŞMACI 1: Üzgünüm, olabilir bunu bir kez daha söylemek? HEDEF KİTLE: [duyulamaz] KONUŞMACI 1: süresini veriyoruz. Eh, bu yüzden evet. Sen zamandan tasarruf derlemek zorunda değil, işte eğer sorduğun buysa. Gerçekten de, CS50 olarak, programların çoğu Onlar bir süre alabilir olsa yazma, onlar nispeten kısa konum. Birkaç düzine kod birkaç yüz hatları, ve bu yüzden oldukça hızlı bir şekilde derlemek. Ama başlattığınızda Daha büyük programları yazma, gibi Microsoft konum veya konum Google ve yazma gerçekten büyük programlar C veya C ++ veya benzer derlenmiş dil, birçok saniye sürebilir hatta dakika veya daha uzun kod satırları milyonlarca derlemek. Ve orada da, o Fark eklemek için gidiyor. Ve aslında, biz bir kez Geçiş Bugün, aynı gün Bugün, web programlama PHP kullanarak, sen Bunu sadece çok bulacağım kod yazmak daha zevkli Bu aptal yapmak zorunda değilsiniz zaman terminal değişim gibi adımlar Pencere tipi make merhaba, yeniden çalıştırın, pencere yeniden. Aptal Sadece çok Mekanik adımlar olduğunu Sadece yapmanın yolu olsun İlginç, eğlenceli işler. Ve gerçekten biz PHP ile o atmak. Ve biz etkileşim daha hızlı onunla. Evet. HEDEF KİTLE: [duyulamaz] KONUŞMACI 1: Tabii. Bunu netleştirmek Can yorumlanmalıdır vasıtası? Bir dil derlerken C gibi, iner Biz makineye söylediğim gibi Kod, sıfırlar ve olanları. Ve Intel yıllar önce karar sıfırlar ve olanları belirli kalıpları , ekleme, çıkarma veya temsil veya baskı ya da diğer temel işlemler. Yorumlanmış dil dünyasında PHP, JavaScript veya veya Python gibi, veya Ruby, ya da demet Başkaları yerine, birisi yazmış bir Bu durumda interpreter--, o da aynı, PHP denir Bu temelde dil alanındaki bir isim İçinde yinelenir bu büyük bir döngü vardır kod satırları tüm Ben girdi olarak onu beslemek olduğunu, böyle merhaba dot PHP veya sözlük nokta PHP. Ve sonra onların büyük düşünebilirsiniz koşulları bir çok sahip olarak döngü. Ve eğer bu koşullar, demek İnsan için anahtar kelime yazmıştır, yapmaya başlayabilirsiniz özel hayatının Kod tekrar tekrar. Ya da insan varsa kod satırını yazılı, eğer, sadece yürütme onların koşullu sonraki satır. Yani yorumlama gibi gerçekten var İnsan anlamda doğrultusunda bu satır, ve bu sadece zaman alır. Bu yükü alır. Ve bu da, bir price-- var: güzel bir soru biz ödemek. O yüzden başka bir demo yapalım Bu biraz daha dramatik. Bir Basketbol Sahası Bu, ben söylemek istiyorum, var korkunç başarısız bir% 90 olasılık, ama hayran kalacaksınız % 10 olasılıkla. Yani her yıl denemek böylece biz bunu yapmak için geçer bir program yazmaya çalışın Sorun kendisi için var, sıfır set sunulan telefon numaralarını ve diğer demografik bilgilerin sürü ve biz programlı size bir kısa mesaj gönderin. Ve sonra herkesin telefon bip veya titreşimli başlar, ve çünkü, sadece inanılmaz iyi, bilgisayarlar neler yapabileceğini bakmak. Bu nadiren düzgün çalışır o büyük ölçüde, görünüyor Ben genellikle kara listeye almak için Gmail veya başka bir hizmet tarafından aslında bir ölçekte bu yapmaya çalışıyor. Ama komik bir şey biz bu yana, too Bugün burada herkesi yok son kez biz eğlenceli bir gerçektir İki yıl önce bu çalıştı Ben bir program yazdı düşünüyorum Bu bir döngü iterating oturdu sınıftaki tüm öğrencilerin üzerinde, ve bunların bir metin mesajı her biri ve bu gibi bir şey söz konusu Neden derste değilsin? , CS50 bot seviyorum. Sen kaç özür dileyen hiçbir fikrim yok ve çeşit ağrılı e-postalar Ben gelen yanıt aldık n eksi burada değildi 100 kişi o gün. Ve hatta komik, daha utanç verici story-- bilirsin, orada onu koyalım. Bir kaç yıl öncesine kadar video zaten. Yani yakında beni görecek for döngüsü bilgileri, bu sayede o bir hata yazmak çok kolay döngü için, bu ilk kez döngü içinde, sen Bir metin mesajı göndermek. Döngü I yoluyla ikinci kez bir daha kısa mesaj göndermesi gerekirken, ve sonra bir daha metin Mesaj ve daha on. Eğer bir yazım hatası yaparsanız Ama çıkıyor Size bazen programlarken bir tane göndermek programlar yazabilirsiniz metin mesajı, daha sonra iki kısa mesajlar, herkese daha sonra üç kısa mesaj kim zaten kısa mesaj aldım ki. Ve bildiğiniz gibi, bir şey yapıyor, artı bir şey, artı bir şey, artı bir şey, bir çok büyük O'dur metin mesajları, veya n karesi, veya 0,10 $ bir metin mesajı, 20.000 $. Neyse ki ben daha önce Control-C vurdu oldu, ama en azından bir tane borçlu yaptı senin öncekilerden için 20 $ 200 bazı garip metin mesajları o Sadece onun telefona gitti ama Ayrıca eski bir fiske vurmak telefon gibi oldu bu yüzden dışarı itti gibi onun Her diğer kişisel metin belleği mesajı aslında kazanılmış vardı. Yani biz bir amacımız var Bugün, bunu yapmak değil. Belki uçak modunu açın. Pekala. Öyleyse bir içine gidelim Burada callled-- programı PHP nokta metin arayacak. Ve peşin, ben burada iki dosya var. Ben sadece personel için bir dosya yapılmış, o var Personelin bilgi hepsi bütün isimleri dersin web sitesinden. Ve sonra şimdi ben koymak Bazı sahte sayılar 555-1212. Yani bunlar aslında her yerde gitmek değildir. Ama, bu CSV dosyasının içini fark Daha önce kısaca konuştuk hangi Dosya IO bağlamında. Bir CSV dosyası nedir? Virgülle ayrılmış değişkenler. Ve bu çok benzer tür bir Hafif veritabanı eğer sen. Çeşit dört sütun tür var Bu dosyada, orada pürüzlü, esasen ancak virgül dosyasındaki sütunları temsil etmektedir. İlk sütun TF veya CA'nın adıdır. İkinci sütunda, son adıdır. Üçüncü sütun onların telefon numarasıdır. Ve dördüncü sütun görünüşte bu-- Dördüncü sütun görünüşte ne olduğunu? Tamam, bu yüzden onların taşıyıcı var. Verizon, Sprint veya, ya da ne o kadar. Ve ben, daha önce CSV misspoke eğer. Virgülle ayrılmış değerler CSV burada. Yani bu konuda ne yapabilirim? Peki bu, sadece büyük bir metin dosyası ve sağ, uzun tür? Bunun gibi gidiyor tür can sıkıcı olabilir. Ve bu, olsa da, çıkıyor eğer , haydi bir kısa mesaj göndermek istiyorum Burada Alex söylüyorlar. Benim tarayıcı içine gidelim ve tam ekran modundan çıkmak Sadece bu yüzden ileri geri geçiş yapabilirsiniz. Ben de gidersem, bakalım çıkıyor Burada, ve Gmail, tüm sağ oturum. Bu bölümde bakmıyoruz. Sadece görmek için olsun. Tabii livestream can Hala ne yapıyorum bakın. Pekala. Yani burada sadece Gmail olduğunu John Harvard hesabı. Ben göndermek istiyorsanız Yani Alex'e kısa mesaj, Ben tabii ki bir mesaj oluşturabilirsiniz. Ve çıkıyor ve ben ettik Burada daha önce Alex ile test yani belirli bir etki alanı ekleyebilirsiniz İnsanların telefon numaralarına isim, Dünyada var varolduğundan şeyler ağ geçitleri e-posta SMS çağırdı. Hangi tüm söylemenin süslü bir yoludur Bize kim cep telefonu var Tabii, telefon numaraları var, Muhtemelen sizin taşıyıcı için orada at gibi belirli bir eki Verizon metin mesajı için Vtext.com sen ekleyebilirsiniz nokta com, senin Kendi kişisel telefon numarası ve ardından Siz veya arkadaşlar, ya ailen olabilir söz konusu adreste sizi metin. Ve Verizon, bir e-posta sunucusu vardır bir Sunucu, üzerine bu e-postayı aldıktan olduğu, Daha sonra sayısal kısmında ve bakar ne olursa olsun özel sektör sihrini kullanır onlar aslında üzerine dışarı göndermek zorunda Size özel hücreye airwaves telefon. I do not çünkü şimdi bu güzel Gerçekten bir metin mesajı göndermek için biliyorum ya da henüz kod yazmak Benim cep telefonu için, ve sizin için tam olarak bunu yapabilir nihai bir proje ama için şimdi tüm Benim laptop burada var. Yani bu CSV yineleme istiyorum Dosya, çizgi hattı ile, hattı ile, hattı ile, , personelin telefon numaraları her kapmak ve bunların taşıyıcısı ve programlama, telefon bağlamak, yani birleştirmek Uygun etki alanı adıyla sayısı ve daha sonra bir mesaj gönderin. Yani adımların bir sürü. Ve iyi şanslar C. yapıyor Bir durumun bir kabus Bir dosyayı açmak için, okumak için çizgi, satır, satır, senin gibi görüyoruz, ya da yakında görebilirsiniz sorun, beş set değilse Sorun daha sonra dört set ve dinamik bitiştirmek için İki şeritler birlikte C, çünkü İki dizeleri alıp bunları birleştirmek, minimal sen ne büyük olasılıkla yapmak gerekiyor? Haklısınız, daha fazla bellek bildirmek gerekiyor? Ve ben daha fazla bellek olabilir, malloc sorabilir miyim? Yani bu yarım koyabilirsiniz burada, burada bu yarısı. O sadece çok adımlar var. Ve bu noktada tarafından size kaybettim aptal demo ilgi nereye herkesin telefon sesi olun. En PHP bu tür yapalım stil, bu sayede sadece O evye daha kullanmaya başlayabilirsiniz. Ve fikirler temelde aynı, ama biz de endişelenmenize gerek yok Bu alt düzey hakkında çok. Peki nasıl olabilir görelim bunu hakkında gitmek. Ve sadece bu yüzden değil geçmiş hataları tekrar Buraya kendim için bazı notlar yazdım. Ve ben bizi yürüyüş yapabilirsiniz bakalım temel bazı adımlar sayesinde, ve daha sonra günlerin hatrına yaparız belki sonunda bazı köşeleri kesti. Devam edin ve açık yapacağım braket PHP bu dosyayı başlatın. Ve ben go ahead ve bunu yapmak için gidiyorum. Eğer olacak şekilde, kolu Dosya Yakında aslında görmek Açık f adında bir işlevini çağırır. Ve bu dosyayı açar hatırlıyorum. Ve alıntı, unquote, yeniden r, ne demek? Sadece okumak için açın. Şimdi p sette, bunu yaptın. Ve bir şey olabilir işlemek, fu, bar, bas, herhangi bir değişken adı. Ancak, genel olarak bir bilgisayar bilim adamı, bir açık dosya çağırır Sana bir dosya tanıtıcısı veren bir şey tabiri caizse tutunmak için. Ben sadece yapmak için gidiyorum Bazı hata denetimi. Tanıtıcı yanlış ise Yani, tıpkı C, ben böyle bir şey yapmak için gidiyorum, Dosyayı, ters eğik çizgi n açılamadı. Ve sonra ben gidiyorum önde ve çıkış gitmek için. Ve bu, PHP, çıkıyor Ben bir işlev içinde değilim. Burada ana işlevi var. Yani tek başına, dönüş yok. Ben çıkın. Hangi temelde aynı şeydir. Ve ben muhtemelen bir y ile çıkarken ediyorum. Bir sadece bir çeşit bir hata demektir. Bu sıfır olmayan, bu yüzden bir hata var. Pekâlâ, şimdi buraya yaşıyorum öylesine Benim programda ben dosyayı açtı. Devam edin ve ilan için gidiyorum adresleri olarak adlandırılan bir dizi, ve C bilmem gerekir Önceden dizinin boyutu, değil mi? Ya da ben bu beyan gerekir Bir gösterici, sonra malloc kullanın. Ve sonra her zaman okuduğum dosyasındaki bir satır ile, Ben malloc gerek gidiyorum Daha fazla bellek, malloc daha fazla bellek. O boyun bir ağrı. Ve şükür ki, PHP ve Ruby, ve Python ve JavaScript, onlar senin diziler büyüyecek sizin için otomatik. Artık malloc. Hayır daha fazla bellek yönetimi. Bilgisayar o ilgilenir. Ama fiyat ödemek. Bu biraz daha yavaş. Ve böyle bir program için biz fark etmeyeceğiz. Biz 100 kısa mesaj göndermek için gidiyoruz. Örneğin hissetmek gitmiyor. BT gerçekten sadece başlar seçtiğiniz dil önemli ne zaman veri veya programları , gerçekten, gerçekten oldukça büyük olsun daha çok olacağı gibi Bizim web tabanlı şeylerle. Ama şimdi en sağlam adımlarla ilerlemek edelim. Çıkıyor olsa da bir var C f fonksiyonu CSV olsun denir. Dosya CSV olsun, o alır onun argümanı olarak kolu dosya, ve onun tarafından, daha sonra satır ilerler satır, satırda tarafından, bir satır okumak için. Yani bu sadece bir satır okur dosyadan metin. Ama, bu fonksiyon hakkında güzel ne Sadece bana bir metin satırı el vermez. Bu, bu virgül arar, ve çizgi ayrıştırır. Ve çizgi ayrıştırmak için bölmek demektir Bu bağlamda bazı değerler üzerine o. Diğer bir deyişle, dolar işareti satır olan bir değişkendir Bana indeksler bir demet vereceğim. Bu olacak Benim CSV ilk sütun. Bu ikinci olacak Kolon, bu üçüncü olacak ve bu dördüncü olacak. Hatırlama ve Excel Çünkü değil Biz bunu son kez işbirliği Ben indirirseniz ama personel CSV nokta. Tüh, yeniden adlandırma değil. Personel nokta indirirseniz CSV ve bunu açmayı deneyin, Zaten oh I registered-- ettik son başlatılmasından bu yana Excel güncelleme vermedi. Siz personel nokta olarak göreceksiniz ki CSV, dört sütun var. Yani ben okurken Burada Abby için ilk satır, dolar işareti satır 0, Abby dolar işareti satır bir, Lyons ise dolar işareti sıra iki onun numarası ve sonra onu telefonun taşıyıcı. Yani hepsi bu. Ve bu, güzel çünkü ben Şimdi anlamaya gerek yok Bu virgül hepsi aslında nerede. Yani ben önde gidiyorum ve Bu tanım göz önüne alındığında, bu yapmak, Ben onun adı olduğunu söylemek için gidiyorum Satır aralığındaki sıfır, vaat ettiğiniz gibi. Ve ben grab-- gidiyorum ve Aslında, biliyor musun? Endişelenecek gitmiyorum Adını, bu durumda. Ben daha basit tutmak için gidiyorum. Onun numarası yapacağım Satır desteğinin iki, sanırım. Ve onun taşıyıcısı nerede oldu? Satır üç üzerinden bir. Yani hiçbir şey yeni. Bu bir diziye sadece sıfır endeksleme var. Ve şimdi, aşağıdakileri yapmak için gidiyorum. Taşıyıcı eşitse AT & T- eşittir Ben sadece bir loop-- geçireceğim Ben bir e-posta oluşturmak istiyorum Bu gibi görünüyor adresi. O 617-555-1212 olacak at, bunu ne olduğunu, text.ATT.net, Yapmak istediğim budur. Peki nasıl bunu yapıyorsun? Ben aşağıdaki yapmak için gidiyorum. Onun adresi, onun bir numaralı olacak ve şimdi, beni go ahead ve bu yapalım. Bu bazı funky sözdizimi. Ben yüzde s hile yapabileceğini, ama aslında sadece bunu yapabilirsiniz. Yani bu, bir PHP şey ama Diyelim ki yapıyorum bakalım. Dolar üzerinde adres imzalamak Sol, sadece bir değişken. Bana bir değişken ver. Ben türünü belirtmek zorunda değilsiniz. PHP bunu anlamaya. Sağ tarafta, veri türü ne O her şeyi on sağ taraf? Bir dize benziyor, çift ​​var, çünkü çok sol ve sağ taraftaki tırnak. Şimdi, burada bazı funky yeni bir yazım var. Kaşlı var, ve dolar işareti sayısı. Ama bu sözdizimi nedir tahmin almak Muhtemelen benim için yapmak için PHP söylüyorum? Evet. Sadece orada değerini yerleştirin. Yani hiçbir Yüzde s. Biz baskı f veya s kullanabilirsiniz Baskı f veya bunun gibi bir şey, PHP ve bir sürü göre değil yüksek seviyeli diller, Eğer sen-ebil görmek için gidiyoruz belki işlevsel aynı şeyi yapmak Altı farklı yolları. Ve böylece olmaya başlar tasarım veya stil meselesi. Yani bu sadece bir şifreli görünümlü bir yoldur söyleyerek, bana bir e-posta adresi vermek ancak plug-in sayısı Bu küme parantezi arasında. Ve kaşlı olmaz Nihai adresinde sonuna kadar. Şimdi bazı atlayabiliyorsunuz günlerin hatırına bu çizgiler. Yani bir taşıyıcı eşitse , verHorizon-- hoppala eşittir Bir şey yapmak istiyorum Verizon-- çok benzer, nerede adres alır, alıntı, text.ATT.net de unquote, sayı. Ve sonra ben aynı tür yapabilir taşıyıcıların geri kalanı için bir şey. Ama sadece şimdilik nokta, nokta, nokta yapacağız. Ve şimdi varsayalım Ben itmek, dizi eklemek istiyorum. Ben eklemek istediğiniz Dizi, adresleri denir. Bu adres, bu nasıl bir PHP bir diziye şey eklemek. Sen malloc yapmanız gerekmez. Sen dizi yeniden boyutlandırmak zorunda değilsiniz. Sadece dizi, itme söylüyorlar. Ne dizisi push-- istiyorsun neler Eğer üzerine bir şey itmek istiyor musunuz? Adresleri. Eğer adreslere üzerine itmek istiyor ne? Adresi. Ve aslında, eğer Gerçekten zeki olmak istiyorum, Bazı sözdizimsel şeker Bunun için, tabiri caizse, hangi sadece bunu nasıl gelir güzel yolu, bunu yapmak olacaktır. Bu da büyüyen bir etkiye sahiptir büyüklük biri tarafından adresleri dizisi, ve daha sonra ek lop içine e-posta adresi. Evet. HEDEF KİTLE: [duyulamaz] SPEAKER 1: A yazım hatası Başka oh taşıyıcı eğer--. Bu iyi. Aynı zamanda benim başarısızlık gibi olmaz Bu programın bir parçası uygulamak daha sonra. Ama yakalamak için teşekkür ederiz. Bir daha hata. Teşekkür ederim. Biz bu Vtext.com olmak istiyorum. Evet. Pekala. Peki bu bizi terk ediyor? Biz dosyayı açmak için kod yazdık. Biz yineleme bir döngü var dosyadaki satırların üzerinde. Biz ekler kodu var benim her seferinde bir dizi, bir, doğru bir şekilde biçimlendirilmiş e-posta adresi. Yani gerçekten kalan tüm göndermek için Bu insanların her birine bir e-posta. Yani ileride gittim ve aşağıdaki gibi kendimi hazırlandılar. Ne o-- burada yapmak ve haydi gidiyorum go ahead ve bazı gerçek kod atlamak, hangi bu gibi görünüyor. Yani burada pre-pişmiş olduğunu versiyon daha önce yazdım. Ve ben bitirdim fark Sprint uygulanması. Ben T-Mobile uygulanması tamamladı. Ben Virgin Mobile uygulama tamamladı. Ve ben şimdiden özür dilerim olacaktır. Bir kaç taşıyıcılar var ki Sınıfta bazı öğrenciler var Ben numaralandırma rahatsız etmedi Burada eğer durumda. Yani tüm metinler dışarı gidecek. Ama yapmam gereken başka ne görelim. Ben sadece, dosyayı kapatın gibi s dört set. Ve bu yeni sözdizimi. Ve biz biraz görürsünüz zamanla bu biraz, Özellikle p yedi ve sekiz ayarlayın. Ama bu oluşturmak için sözdizimi yapının özel bir türüdür. Bir kütüphane var dışarı çıkıyor ki bu PHP, PHP denilen mailler geliyor. Hayatta Onun amacı ise programlı e-postalar göndermek. It kod başkası yazdı Bize e-posta göndermek için kolaylaştırır, bu yüzden tutmak zorunda değilsiniz ileri ve geri Gmail'e gidiyor, ve insanların e-posta adresleri yapıştırırken. Burada çizgilerin bir sürü var dürüst, ben sadece tür kopyalanan ve belgelere yapıştırılan. Ve aslında, sen eğer meraklı, tüm sol dokümantasyon URL'lerin kod daha sonra göndeririz söyledi. Ve arasındaki fark Ben yapıyorum şeyler Ben bu kitaplığı söylüyorum edilir Doğru, Gmail'in sunucusunu kullanmak? SMTP biz biz ne zaman kısaca konuştuk basit posta olma konusunda Yale vardı aktarım protokolü. Bu protokol olduğunu e-posta göndermek için kullanılan sunucular, ve bu- Gmail onlardan biri vardır. Bir liman, bu TCP bağlantı noktası numarasıdır. Eğer bu iyi daha önce 587 görmedim. Sadece belgelerine biliyoruz. İşte benim kullanıcı adı var. Ben CF50 bot kullanmak için gidiyorum. Ve bir anda, ben sadece gidiyorum Botun gerçek şifreyi girin. Ve sonra buraya, kalanları dikkat edin. Ben adresten gözlerimi set CS50.net de bot olmak. Ben gönderme pişman olmayacağını düşünüyorum Metin mesajı 800 kişi olduğunu , seni özlüyorum aşk CS50 bot belki diyor bugün gelemedi olanlar için. Ve sonra hat 76, ben ne yapmalıyım? C gibi görünüyor Bu tür So i için 0 eşittir, n equals-- şimdi yeni sayılır. Bu almak istiyorsanız çıkıyor Dizideki şeylerin sayısı, Artık bunu hatırlamak zorunda değilsiniz. Sen sadece bir sorabilirsiniz sayım denir fonksiyon, ve size kaç anlatacağım adresleri bu dizide bulunmaktadır. Ve sonra ben eklemek için gidiyorum e-posta adresi. Ve ben bu biliyorum belgeleri kullanarak. Bir eklenti adresi işlevi var. Ve şimdi orada fark sözdizimi bir parçasıdır. Biz daha önce bu gördüm ruhu C benzer. Sen dolar işareti aklınıza gelebilecek o bir değişken olarak mail. Fakat içinde bir yapı var hangi sadece özelliklerdir, değişkenler eğer sen. Ama çıkıyor PHP, hangi o Bir nesne yönelimli programlama dil, Java gibi APC 'aldı. Dolar işareti posta, isterseniz aşağıdaki amaçlara aynı zamanda, bunun içinde fonksiyonları vardır ya da yöntem. Yani bu demek ki özel PHP mailler kütüphane, ben bunun bir değişken var ise, Ben bir işlevi çağırmak istiyorsanız o Bu kütüphane ile gelir, Günümüz amacıyla, sadece ok gösterimi kullanmak biliyorum. Hiçbir nokta notasyonu var. Bu sadece ok var. Ama bu bir gösterici değil. Bu sadece C'nin sözdizimi ödünç oluyor. Yani diyoruz içinde adresini ekleyin Bu kitaplığın bir nesne veya değişken. Pekala. Bu büyülü hattıdır. Ben bir e-posta göndermek nasıl. Bu açılma eşdeğerdir Gmail, bunu yazarak, ve gönderme isabet. Ama bunun yerine bir göndermek için gidiyor Bu bedenle, bu adrese e-posta, CS50 bot dan. Ve şimdi anahtar hattı. Bu hat 2011 benzeri yokluğunun edildi Bence zaman son denedim. Oradaki çizgi, tabii ki, adresleri temizler. Yani mantıklı, ben ise adres temizlemeyin Her yineleme sonra, ilk e-posta veya kısa mesaj Alice gider, İkinci gider Alice ve Bob, üçüncü Alice ve Bob ve Charlie gider, dolayısıyla çok pahalı bir hata Ben o yıl yaptım. Yani görelim. Herhangi bir sorunuz var mı size tüm metin göndermek önce yüzde 10 olasılık ile mesaj? Sorusu olan? Pekala. En beni burada ve değişim içinde gidelim çalışması gerektiğini ne şifre, büyük olasılıkla Gmail tarafından kara listeye alacak. Yani tüm gidebilir dışarı onlar beri muhtemelen 800 e-posta göndermek bizi sevmiyorum tek seferde döngü için de. Bu değil bu yana özellikle insan davranışı. Ah, ben başka bir şey değiştirmek için gidiyorum. Üstünde yukarı, ben sent-- gidiyorum Öğrenciler CSV dot dosyayı değiştirin. Ve ben bu açmaz, ama bu bir olduğunu değil 100 personel ile özdeş CSV dosyası, ama 800 öğrenci, sadece Harvard'dan, çünkü Yale Bu hafta Ekim girintiye sahiptir. Ve bu bir pislik şey tür gibi görünüyor neden olarak hepsini metne yapmak Onlar tatile sınıfta değiliz. Bu iyi. Sadece Harvard öğrencileri o dosyanın içinde bugün. Ve şimdi geri dönelim Benim Terminal penceresine. Ben biraz gerginim. Tamam şimdi ben gitmek için gidiyorum dizin ve PHP metin nokta PHP. Nasıl cesur bir gönüllü dersiniz? Yani bana bu istemiyorum. Tamam, yukarı gel. Adın ne? MAYA: Maya. KONUŞMACI 1: Maya. Yukarı Maya gel. Pekala. Bu işe yararsa görelim. Ben benim kendi e-posta adresini koymak dosya benim kendi telefon numarasını file--, böylece umarım ben de bir tane alırsınız. Tanıştığımıza memnun oldum. MAYA: Aynı şekilde. KONUŞMACI 1: Yani yapmanız gereken tek şey 800 kısa mesaj göndermek için Enter hit, Ben berbat olmasaydı. Güzel. Istatistiksel bir süre alabilir, Biz bir e-posta almak kadar adresB olan bir metin mesajı Şu anda odaya. En dinlenmeye ve görelim. HEDEF KİTLE: [ıslık] KONUŞMACI 1: Oh, evet. HEDEF KİTLE: yakaladım, evet. KONUŞMACI 1: döngüler için bu mudur Çünkü PHP yavaş değildir. Bu yavaş Gmail çünkü Bizi azaltma ve değil Bize daha fazla göndermek icar Saniyede bir e-posta gibi. Şey var mı? Bu beni de test etmek için zor bir şeydi bu yüzden beni ve benim bir telefon, sadece ev. Bu bot dan umarım mi? Evet? Hayır mı? Evet de. Hayır mı? Bir arkadaşımdan mı? Garip. TAMAM. Olsa çalıştığından eminim. Ah ah. Onlar ah, bir dakika bekleyin black--. Oh, ne var biliyor musun? Bir dakika lütfen. Sadece Maya ve ben, Mia, öyleydi? MAYA: Maya. KONUŞMACI 1: Maya, gidiyoruz Ben burada yanlış yaptığını biliyorum. Ah, bir dakika bekleyin. Ben sadece 100 gönderdi düşünüyorum 555-1212 metin mesajları. Yanında olmak. Ben herhangi bir yıl kazanmak mümkün değil. TAMAM. Maya? Post prodüksiyon olduğunu sabitleyin. Lanet olsun! Adresinden ardından. Tamam, stand by. Özür dilerim. Her yıl acı verici. Tamam, bir dakika. Bu iyi. Ben bunun yerine bu yapacağım. Baskı adresi. Tamam, stand by. Baskı adresleri, dirsek i. Evet, bunu seviyorum. Dolar sign-- Tamam ben olduğum şey anlatacağım Ben bu çalıştırdıktan sonra, bir anda yapıyor. Her yıl. Tamam, işte gidiyoruz. Ben sadece var ve ben istemiyorum herkesin telefon numarasını göstermek için, ama Maya teyit edebilir kafa başını sallayarak, Bu onun Herkesin var görüyor Sınıfta telefon numarası Ben kopyalamak için gidiyorum Gmail adında bir program. Ve Gmail'de ise, ne demek istiyorsun? Seni özledim. Love-- o benden değil. Ben bile henüz göndermek vurmak değil. O yüzden go ahead ve yapalım Bu, ben yakınlaştırmak eğer. TAMAM. Yani şimdi Gmail adında bir program kullanıyorum. Maya ise, istediğiniz Gönder düğmesini tıklatın, Biz ne anlama simüle edilecek Kod yapmalıydım. Şey var mı? [BEEPS] HEDEF KİTLE: Evet. KONUŞMACI 1: Evet? Kurtuluş? HEDEF KİTLE: Evet. KONUŞMACI 1: özledim. Ve ben gerisini göndermek için gidiyorum. Ben düşünmedim çünkü yarısını gönderdi Gmail bu üzerinden gidelim istiyorum. Dolayısıyla, sadece bugün gün hatırlıyorum, Bu sana Gmail'i kullanabilirsiniz öğrendim. O korkunç oldu. Maya için büyük bir alkış. Teşekkür ederim. Yani tamam. ne [BEEPS] Biz, evet, bir kaç bip sesi var mı? Pekala. Şimdi gerçekten 700 almak için gidiyorum geri sınıf arkadaşlarından mutsuz e-postalar. Yani en azından biz göreceğiz Bu değdi eğer. Peki ne yanlış gitti? Gittim anlamaya edeceğiz aslında sonra yanlış, ama ne kadar kolay görünmesini PHP bu yapmak oldu. Yani biz aslında şimdi ne yapabilirim Biz PHP'nin bu anlamlılık vardır. Korkunçtu O Ben--. Pekala. Yani dışarı gitmiş buydu. Bu beni bu sabah test edildi benim telefon, benim telefonun gerçek ekran. Ama şimdi en neden düşünelim biz aslında tanıtan ediyoruz ilk etapta bu şeyler her. Yani amaç değil Bu programlar yazmak o Komut satırında yazılır, değil mi? Yani basit bir yazdı Program merhaba, ben yazdım conditionals yapan küçük bir program, ve benzeri bir okuma hattı ve kullanmıştır. Ve teoride, ben sadece yazdım dışarı gönderdi bir program 800 kısa mesaj vermek ya da 800 alır. Ve bu program tüm oldu Hala komut satırında çalışacak. Ve tabii ki web değil, değil mi? Şimdi hedef kullanmaya başlamak için ne iddia kullanımı daha kolay bir olduğunu dil, bir daha daresay açısından güçlü bir dil özellikler ile onunla birlikte gelen, başlamak için web sayfalarını oluşturur kod yazma. Yani son kez geçen hafta, Biz HTTP ve HTML hakkında konuştuk. Ve HTML hakkında güzel ne Sadece saf metin olmasıdır. Ve metin kesinlikle şey bu yapabilirsiniz kelimenin tam anlamıyla baskı arayarak yazdırmak f fonksiyonu, ya da baskı fonksiyonu. Ve gerçekten de, o PHP budur Şimdi bize yapmasına izin olacak. Yani örnekleri arasında biz Bugünün kaynak kodunda var, kod bazı ek olarak, ben, bir an önce oraya koymak Biz mesela bu gibi programlar var. Froshims veya Birinci Yıl İntramural Spor, aslında İlk Ders dışı bir Ben yıllar önce birlikte dahil oldu. Ve oda arkadaşım ve ben, birlikte kampüsteki diğer bazı çocuklar, froshims programı çalıştırmak için kullanılır. Şimdi benim metin mesajları alıyorum. Şimdi bu yüzden, geri gün, bu nedenle bu 1996 ya da öylesine, bir internet yoktu ancak sürecinden yok oldu froshims hiçbir web sitesi oldu. Ve böylece kaydolmak istedim futbol veya voleybol ya da her neyse, Bu şeyi doldurmak bir parça kağıt denilen, ve Harvard genelinde yürürdüm yard ve bunu slayt ediyorum dava vekili posta yuvasına içine kim Wigglesworth, yurtlar biri oldu. Ve bu kayıtlı were you. Ve o sonra olur Size bir e-posta oluşturmak el kadar benim gibi Sadece, Maya ile burada yaptım ve sonra teyit olacağını having been olarak kayıtlı. Yani bu düşük gibiydi meyve asılı, tabiri caizse. Bu tür o aptal biz bunun için kağıt kullanılarak yapıldı. Ben bize mümkün istedim sadece bir web sitesine gitmek için, veya birinci sınıf bir gitmek var Web sitesi, spor kaydolun ve sadece bu bir sürü otomatikleştirmek İsimlerini ve e-postaları koyarak ve benzeri bir veritabanına. Ve aslında, çok ilk sürümü web sitesi, süper çirkin HTML kullanarak, Böyle bir şey görünüyordu olabilir. O aslında ironik, daha utanç verici bu arka daha arıyor daha sonra. Ama bir programlama dili kullanılır. PHP değil, Perl denilen Değil, bu daha eski bir dildir ama ruhu çok benzer. Ve ben sadece tamamen Kendime öğretti. Ve o, onu anlamaya biraz zaman aldı arkadaşlar bir sürü soru soruyor. Ama fikirleri tam olarak aynı idi. PHP gerçekten dizayn edilmiştir çünkü ne komut satırı şeyler değil Biz sadece, ile oynadı ancak web programlama için. Gerçekten onun özelliği bağlı oluyor Web'de ayarlanır, aşağıdaki gibi. Bu froshims olduğunu. Ve ben istedim Bu formda kaydolun Bu, oldukça çirkin Kesinlikle, ama bana devam edelim ve daha az konforlu öğrenci olmak, ve Matthews için ne spor, Kayıt tıklatın. Ben yapmak mümkün istedikleriniz Bir formdan bilgilerinizi gönderin, değil gibi Google'ın sunucusuna biz tamamen, geçen seferki Onların arka uç kullanarak hile, ben Kendi arka uç kodunu uygulamak istiyor. Hangi yazma PHP anlamına gelir Bir URL adresinde yaşayan kod Bu form verilerini sunulabilir. Ve sonra kod, Bir sunucu üzerinde PHP ile yazılmış, o kullanıcı girişine yanıt verebilir. Özel hayatının adı veya konfor düzeyi gibi, ya sonra yurt ve onunla bir şeyler yapmak. Bu durumda, ben sadece aptalca dışarı basılmış bu oldukça hepsi değil metin olarak. Ama kesinlikle olabilir HTML biliyorsanız eğer, hayal, ve yakında oluşturmak için nasıl bileceksiniz Baskı f ve baskı ile HTML, Benzer fonksiyonları ve kesinlikle can diyor bir güzel web sayfası oluşturmak hey David, artık kayıtlıdır. Sen daha rahatız Matthews öğrenci, değil mi? Sadece% SES bir sürü kullanabilirsiniz, veya kaşlı ve dolar işareti notasyonu ben, bir an önce kullanılan daha kullanıcı dostu metin oluşturmak Bundan daha. Yani bu bir dosya bir göz atalım. Froshim sıfır nokta PHP bu gibi görünüyor. Ben CS50 IDE yeniden zaman, froshim sıfır bu gibi görünüyor. Bu froshim sıfır nokta PHP. Ve bu dosya hakkında ne dikkatinizi çekiyor? HEDEF KİTLE: [duyulamaz] KONUŞMACI 1: Üzgünüm, biraz daha yüksek sesle? HEDEF KİTLE: [duyulamaz] Bu HTML hepsi bu. Ve aslında, çünkü, bir Ne PHP ile ilgili ilginç Sanki dizayn edilmiş olmasıdır daha iyi olmak ya da kötü, içe HTML kodu ile. Ve aslında, bu bile olsa Dosya, sıfır nokta PHP froshim üstünde bir PHP yorumunu vardır Bunun, hepsi sadece HTML var. Ama aksine, ben açarsanız, haydi diyelim ki, sıfır nokta PHP, kayıt hangi Sadece üst kısmında büyük bir yorumu var. Bu da neredeyse tamamen görünür Ne hariç HTML gibi? Çizgi, ne 21 biraz garip görünüyor. Ama PHP moduna giriyorum fark Açık braket soru işareti PHP ile. Sonra bazı şeyler var. Sonra bu çizginin sonunda Neredeyse ben, mark PHP soru. Ve bu içiçe tarafından ne demek olduğunu. HTML yazabilirsiniz sadece Sunucu tükürmek istiyorum. Ama bir şeyler yapmak istiyorsanız sayfasından dinamik partway, gibi ismimi eklemek veya yurt veya konfor seviyesi, Ben bir işlevini kullanabilirsiniz Baskı r gibi, hangi Sadece, yani özyinelemeli yazdırmak Bunu biçimlendirme, bu değişkeni yazdırmak sen nasıl istersen. O gerçekten değil İnsan amaçlar, bu sadece ayıklama veya tanısal amaçlar için kullanılabilir. Böylece ben yaptım nasıl. Bunun yerine iki nokta PHP froshims giderseniz, fark bu formun eylem sıfır nokta PHP kayıtlı değil kıza bir önceki aslında. Ama iki nokta PHP kayıtlı. Yani bu nasıl bir bakalım biraz farklı davranır. Ben sürümü iki giderseniz. Burada, ben David olarak kayıt varsa, daha az rahat, Mathews yurt dışında, kayıt. Yani bu sefer sen, dedi değil, gerçekten kayıtlıdır. Diyelim ki burada ne yaptığını görelim. Ben kayıt iki nokta bakarsanız PHP, bu biraz daha PHP kodu vardır. O da, biraz temiz var Hala bu hat üzerinde biraz uzun sarar. Burada dikkat edin. Benim HTML etiketini yazdırmak, başım etiketi, Benim başlık etiketi, kafa, gövde. Ve sonra diyorum başlar PHP moduna girmek gibi şeyler. Ve bu etiketi böylece, açık dirsek PHP-- soru işareti PHP diyor hey, sunucu, yorumlamak execute-- PHP gibi aşağıdaki şeyler Eğer bitiş etiketi görene kadar. Ve herhangi bilmiyor olsa bile Eğer şimdiye kadar gördüğüm başka PHP, ne tür okuyabilirsiniz oldukça sezgisel. Adı boş, ya da konfor ise Boş ya da yurt boş, ben ne yapacağım? Ben kullanıcıya ne dersiniz? Adını sağlamanız gerekir, rahatlık ve yurt, ve benzeri. Else, sana söylemek kayıtlı, iyi değil gerçekten. Ve ben gerçekten demeyin hiçbir veri tabanı var çünkü. Ben verilerle şey yapmıyorum. Ben sadece çöpe atıyorum gösteri amaçlı. Şimdi ben tür hat 22 üzerinde skimped. Daha fazla sözdizimi var Orada, ama dolar işareti sonrası ilginç tür altını çizmektedir. Ve bu PHP ile ilgili güzel şeydir. PHP, sen ne denir Birkaç süper global değişkenler. Hatta daha çeşit vardır Global değişkenler daha önemli. Ve bunlar, hepsi büyük harfle gibi, PHP ile birlikte gelir. Eğer bir sunucu varsa Yani sahip bir web sunucusu, Apache gibi, yüklü ve dili yüklemek PHP, birdenbire tüm desteği Bu süper kullanmaya başlayabilirsiniz kodunuzu global değişkenler. Ve hakkında güzel ne PHP olduğunu eğer sadece nokta ile biten bir dosya bilgileri PHP, bir web sunucusu üzerine koydu ve sonra ona bir form göndermek Bu eylem etiketi ve bir form etiketi aracılığıyla, bu eylem niteliği form etiketi, PHP ve web Tamamen kapmak nasıl rakamlar Bu anahtar değer çiftleri tüm dışarı soru gibi URL mark q, kediler eşittir o nasıl q kedi ve anlamaya. Bir fotoğraf ya da bir kullanıcı adı gönderirseniz, veya şifre, Facebook sevmeye PHP sizin için anlamaya olacak nerede tüm verileri olduğunu. Ve bu sadece el olacak Eğer bir ilişkisel dizi denilen dolar işareti çizgi sonrası, ya da dolar işareti olsun çizgi, sen bağlı olarak get veya post gönderimleri kullanarak. Ve bu sadece size teslim edecek süper global değişken, Eğer isim almak istiyorsanız, böylece Kullanıcı bu web üzerinden sunulan bu Form, kelimenin tam anlamıyla sadece adını söyleyin Süper küresel değişkeni, alıntı, unquote, isim. Ve alıntı unquote konfor, ve alıntı unquote yurt. Ve biz bunu mümkün gidiyoruz Bu ve çok daha fazlası PHP ile. Bu rağmen ona bir kasırga bakışta, biz çok daha fazla önümüzdeki hafta dalış olacak. Biz bir veritabanı tanıtacağız böylece aslında konum uygulamaya başlayacağım Kendi e-ticaret based-- Sadece bir hafta süre içinde web sitesi gibi. Bu yüzden size bir dahaki sefere görmek ve edeceğiz Eğer metin mesajları var umuyoruz. Hoşçakal. [MÜZİK OYUN] [KAPI AÇMA] HOPARLÖR 2: Hey. KONUŞMACI 3: Ne oldu? HOPARLÖR 2: Ne yapıyorsun? KONUŞMACI 3: Sorun sette çalışmak. HOPARLÖR 2: Güzel. Beş Yüksek. [YÜKSEK BEŞ] Ah, sen burada ne yapıyorsun ne mudur? KONUŞMACI 3: Sadece dışarı asılı. Sadece geri spor salonuna döndüm. Ben yardım edemedim ama biz yüksek fived fark Bu oldukça kaba elleri var. Eğer spor salonuna gitmek mi? HOPARLÖR 2: Hayır Hayır. KONUŞMACI 3: Ahbap, oldukça büyük görünüyor. Herkesin bildiği, çünkü hangisi kötü, 8-top kampüsünde büyük bir adam. Yüksek beş. HOPARLÖR 2: Uh, hayır. Hayır, ben iyi olduğumu düşünüyorum. Ben iyi olduğumu düşünüyorum.