>> [MUSIK BERMAIN]
>> DAVID J. MALAN: Baiklah.
Ini adalah CS50.
Ini adalah awal minggu lapan.
Dan anda masih ingat bahawa kita berhenti Kali terakhir melihat bahasa baru
sama sekali.
Bahkan, salah satu yang cukup ringan dan ia tidak bahkan
bahasa pengaturcaraan.
Ini adalah bahasa markup yang memungkinkan kita sebenarnya struktur dan membuat laman web.
Dan apabila sesuatu yang lain anda sempena this--
atau anda tidak lama lagi akan, jika Anda tidak sudah.
Kami akan menggunakan Cascading Style Sheets, atau CSS, yang
adalah satu lagi jenis bahasa dengan ciri-ciri dan nilai-nilai
yang akan membiarkan kita berbuat hal-hal seperti menukar warna
dan mengubah kedudukan dan jenis-jenis tweak.
Tetapi hari ini dan seterusnya, kita mula fokus pada bahasa yang lebih kuat,
bahasa pengaturcaraan yang sebenarnya seperti PHP.
>> Jadi PHP telah wujud untuk beberapa waktu.
Dan seperti yang anda akan lihat, dirancang terutama
awal untuk sebenar digunakan dalam pembangunan web
dan benar-benar menghasilkan laman web.
Jadi apa jenis ciri tidak bahasa
perlukan untuk membuat web halaman dinamik dengan itu?
>> Dalam erti kata lain, jika anda mahu untuk menghasilkan dynamically-- kandungan seperti Facebook
Newsfeed, yang berubah terus-menerus, atau mesej segera yang muncul dari semasa
untuk time-- seperti apa sekeping utama fungsi
Anda perlukan dalam bahasa pengaturcaraan yang akan membiarkan anda secara dinamik
mencetak maklumat baru ke skrin?
>> PELAJAR: Kod.
DAVID J. MALAN: Kod.
OK.
Kami akan mengambil.
Sedikit lebih tepat.
Maksud saya, kita boleh melakukannya ini dengan C, terus terang.
Ia akan menjadi sakit di leher.
Tapi-- adalah komitmen ini?
>> PELAJAR: Ya.
Pembolehubah, mungkin?
DAVID J. MALAN: Pembolehubah.
OK, pasti.
Pembolehubah pasti boleh membantu kami.
Dan sesuatu yang lebih sederhana.
Kita menggunakannya dalam yang pertama program hari pertama
apabila kita benar-benar mengatakan "hello world."
>> PELAJAR: Cetak.
>> DAVID J. MALAN: Cetak, kan?
Cetak, atau printf dalam dunia C. Jadi selama ini,
kami sudah di kami pelupusan language-- C,
di particular-- dan bahkan Awal dalam hal ini bahawa
dapat menghasilkan rentetan teks.
>> Nah, jika HTML, seperti yang kita lihat minggu lepas, adalah hanya sejumlah besar dari rentetan teks
meskipun dengan kurungan terbuka dan tertutup kurungan dan beberapa jenis sajak
dan alasan di balik itu, dengan baik maka kita dapat benar-benar
mula menjana laman web sama ada secara manual dengan menaip mereka keluar di gedit
atau dalam Microsoft Word, untuk itu masalah-kami hanya memerlukan editor teks.
>> Atau kita boleh menulis kod, untuk cadangan anda
sebelum ini, yang akan membiarkan kita dinamis menghasilkan HTML,
dan itulah yang kita akan untuk mulai melakukan dengan PHP
dan akhirnya walaupun dengan bahasa yang disebut JavaScript,
adalah menggunakan satu bahasa untuk menghasilkan lain.
Dan sesungguhnya, ini adalah apa yang Facebook dan banyak, banyak laman web lain
lakukan untuk benar-benar dinamik memaparkan maklumat baru kepada anda.
>> Jadi mari kita mulai dengan this-- garis samar mencari, tetapi satu
itu sebenarnya cukup kuat.
Setakat ini, kami telah menggunakan C, iaitu bahasa yang disusun.
Dan hanya recap-- cepat yang disusun bahasa mempunyai ciri-ciri apa?
Anda jelas perlu menyusun itu, tetapi apa artinya?
Ya?
>> PELAJAR: Ia perlu dirakit menjadi kod mesin.
>> DAVID J. MALAN: OK.
Ia perlu dipasang kepada kod mesin.
Jadi, anda mengambil kod sumber anda, yang merupakan semacam Inggeris-suka.
Anda menukar bahawa untuk sesuatu tahap yang lebih rendah,
yang akhirnya disebut objek code-- 0 dan 1.
Dan itu mereka 0 dan 1 yang CPU, seperti yang dibuat oleh Intel,
benar-benar mengerti.
>> Sekarang, PHP dan Python dan Ruby dan JavaScript dan tandan lain
bahasa tidak disusun bahasa tetapi ditafsirkan bahasa,
yang bermaksud anda hanya perlu menaip mereka dan kemudian anda tidak mengubahnya menjadi 0 dan 1.
Anda bukan hanya memberi kemudian sebagai input kepada program orang lain,
dipanggil jurubahasa.
Dan orang itu program telah dirancang
untuk memahami apa yang masing-masing dan setiap simbol dalam Python atau PHP
atau Ruby atau apa-apa bilangan bahasa lain bermakna.
>> Dan sehingga semua yang kita perlukan adalah sesuatu seperti ini.
Jadi sebenarnya, saya akan pergi ke perkakas
di sini, hanya apa-apa jendela lama, dan kami
akan pergi ke depan dan terbuka fail yang dipanggil, berkata, khabar.
Sekarang sebelum ini, saya mungkin telah menyelamatkan ini walaupun dengan sambungan fail,
tetapi saya akan melakukan sesuatu yang lebih sederhana di sini.
Saya akan pergi ke depan dan mula fail ini dengan sintaks samar ini.
Jadi "pengguna, bin, plates, alam sekitar, php. "
>> Ini semata-mata satu baris kod yang akan memberitahu sistem operasi saya,
pergi mencari di tempat anda lingkungan apapun itu,
di mana pun PHP is-- interpreter-- yang dan pergi ke depan dan menggunakan jurubahasa yang
untuk mentafsir kod berikut.
Sekarang, ini adalah jenis ciri-ciri jelek dari PHP.
Tetapi dalam bahasa ini, mana-mana kali anda menulis kod PHP,
Anda perlu memiliki salah satu dari ini hodoh Tag PHP-batas permulaan
Anda code-- <? php.
>> Tetapi di bawah sini, saya kini boleh melakukan sesuatu agak mudah, seperti printf hello koma
dunia backslash n dekat kutipan, kurung tutup.
Dan kemudian hanya untuk kebaikan langkah, saya akan
untuk terus maju dan dekat tag php saya di sini
sehingga terlihat semua baik cukup dicetak.
>> Dan sebaik sahaja saya klik Simpan, gedit cukup sebenarnya pintar
untuk melihat bahawa baris pertama dan sedar, oh, anda menulis kod PHP.
Biarkan saya sorot sintaks dengan warna-warna
di sini sehingga berdiri keluar lebih sedikit.
Tapi sekarang aku akan pergi ke tetingkap terminal saya.
Saya akan mengezum masuk.
>> Program ini dipanggil "hello," jadi saya akan melakukan palang dot hello,
tetapi kebenaran ditolak.
Dan Bash.
Kami benar-benar mendengar bahawa Perkara beberapa minggu yang lalu
dalam konteks shellshock, salah seorang daripada mereka bug.
>> Tetapi kebenaran menafikan kita telah melihat sebelumnya, mungkin dalam konteks yang berbeza.
Apakah ada yang masih ingat bagaimana Anda mungkin menetapkan sesuatu
jika kebenaran ditolak seperti ini?
Apa perintah, sekurang-kurangnya?
>> PELAJAR: chmod.
DAVID J. MALAN: Ya, chmod, untuk menukar mod fail.
Dan anda akan mendapat semua lebih digunakan untuk ini minggu depan dengan masalah seterusnya
ditetapkan.
Tetapi buat masa ini, saya akan mengubah mod tidak boleh dibaca,
tetapi untuk memberikan setiap orang executeability keistimewaan, kemampuan
untuk menjalankan fail ini.
Dan saya akan menetapkan yang ke fail khabar.
>> Jika saya kini melakukan slash dot hello masuk, anda lihat, sebenarnya, program saya, hello world.
Dan apa langkah yang saya lakukan jelas melangkau sama sekali?
Kompilasi.
Jadi saya hanya menjalankan program ini cukup sederhana.
>> Dan ternyata anda boleh melakukan ini dengan banyak sintaks mengingatkan C.
Biar saya pergi ke kod hari ini, yang saya dimasukkan ke dalam direktori vhost saya
di sini, atas sebab-sebab yang nyata kami akan kembali ke.
Dan saya akan pergi ke dalam, katakanlah, keadaan 1.
>> Dan anda akan lihat di sini, yang pertama dan sekali, sejumlah besar komen.
Tetapi ini adalah benar-benar penciptaan semula dalam PHP
program yang kami lakukan pada minggu satu keadaan yang disebut 1.c
mana maksud yang masa program ini
rupanya untuk meminta pengguna untuk integer
dan kemudian melakukan beberapa kembang analisa ke atasnya di mana
Anda katakan jika itu positif atau negatif atau sama dengan sifar.
Dan saya membawa hal ini hanya kerana, kecuali mungkin satu detail sedikit,
itu tidak dapat dibezakan begitu jauh dari C.
>> Apakah ciri-ciri yang di sini bahawa mungkin melompat keluar
pada anda sebagai berbeza sedikit?
Mungkin dua perkara.
Ya?
>> PELAJAR: Dolar tanda n?
>> DAVID J. MALAN: Ya.
Jadi tanda dolar n hadir.
Dan tanda-tanda dolar, sebagai kita akan melihat, akan
menjadi fix untuk permulaan mana-mana pembolehubah dalam PHP.
Ia adalah kedua-dua yang baik baik dan bad-- di bahawa itu semacam jelas apa yang
yang berubah-ubah, tidak baik dalam bahawa itu namun hal lain untuk menaip.
Dan ada yang lain perkara yang kita tidak mempunyai cukup
lihat, sekurang-kurangnya oleh ejaan ini. yeah?
>> PELAJAR: Readline.
>> DAVID J. MALAN: Readline.
Readline kami tidak melihat, per se, di C, walaupun di sana ada sesuatu yang
sama, tetapi kita telah menggunakan GetString, dan ini adalah rekan.
Jadi jika saya pergi ke ini direktori, yang kebetulan,
yang akan saya jelaskan dalam sedikit di vhost saya direktori dan sumber saya direktori A,
dan saya pergi ke depan dan melakukan slash dot conditions-- whoops-- dot slash
syarat-syarat 1, anda akan melihat, sekali lagi, kebenaran issue-- yang sama dinafikan.
>> Jadi, saya mengezum masuk dan melakukan chmod ditambah x kepada keadaan, keadaan slash titik.
Saya suka integer, sila, 50.
Dan kita boleh memainkan ini permainan sepanjang hari.
Ia akan bertindak dengan tepat seperti yang berlaku pada minggu satu.
>> OK jadi tidak semua yang berbeza, kecuali tidak hanya yang sedikit sedikit sintaks,
tetapi di atas, saya sekali lagi mempunyai garis ini yang
memungkinkan saya untuk membuat sesuatu yang kelihatan seperti program C dipanggil halo,
disebut syarat 1.
Tetapi ia bukan 0 dan orang-orang Saya melaksanakan secara langsung.
Ia bukan menjalankan ini penterjemah yang namanya
kebetulan sama dengan bahasa.
Program ini disebut PHP dan kod saya di bawah garis satu sedang berlalu ke dalamnya.
>> Kita boleh melakukan yang lain agak mudah contoh mengingatkan sesuatu
kita lakukan minggu lalu.
Sekali lagi, ini adalah semacam sebahagian sewenang-wenang kod
yang ternyata tidak apa apabila anda menjalankannya?
Apa yang ini siap dicetak, mungkin?
>> Jadi pada awalnya pada baris 16, itu akan mengatakan x sekarang 2, mungkin.
% D adalah sama dengan $ i untuk printf.
Jadi maka itu cubing, titik, dot, dot, sejajar 17.
Dan kemudian garis 18 muncul untuk memanggil fungsi dadu.
Dan di mana dadu ditakrifkan?
>> Nah, ia kelihatan seperti dalam talian 25, supaya bukan semua yang berbeza.
Saya telah mendapat beberapa komen di atas itu, tetapi bagi sebahagian besar,
ia adalah cukup jelas port atau penukaran
daripada program C untuk versi PHP.
Tetapi kini terdapat beberapa perbezaan yang mungkin perlu melompat keluar.
Apa lagi yang berbeza tentang bagaimana anda mungkin menulis ini program yang sama di C?
>> PELAJAR: [didengar].
>> DAVID J. MALAN: Ada ada prototaip atas.
Jadi PHP-- dan terus terang, banyak Languages-- moden
adalah jauh lebih cerdas dan lebih bermanfaat daripada C penyusun dalam bahawa anda
boleh meletakkan fungsi tersebut di sini, anda boleh meletakkan satu majlis di sini,
dan jurubahasa akan untuk melakukan anda nikmat membaca
keseluruhan fail sebelum memutuskan bahawa beberapa fungsi tidak wujud.
Jadi perbaikan baik tahun kemudian.
Tetapi ada juga sesuatu lain yang berbeza atau tidak ada di sini.
Ya?
>> PELAJAR: [didengar].
DAVID J. MALAN: Kami tidak perlu menyatakan jenis-jenis pembolehubah,
jadi kita akan melihat bahawa tidak lama terdapat pelbagai jenis dalam PHP,
tetapi anda tidak perlu menentukan mereka, yang juga merupakan kedua-dua baik dan buruk.
Dan ada satu hal yang hilang yang lain.
>> PELAJAR: Tidak ada perpustakaan.
>> DAVID J. MALAN: Tidak ada perpustakaan.
OK, jadi itu bagus.
Kami mendapatkan lebih banyak di luar kotak.
Jadi sebenarnya ada banyak lagi perkara daripada yang saya fikir adalah berbeza.
Bagaimana cara di belakang?
Apa itu?
Mengatakan ia sekali lagi?
>> PELAJAR: pointer.
>> DAVID J. MALAN: Tidak ada petunjuk.
OK, sekurang-kurangnya dalam contoh ini, tidak.
Itu wajar.
Jadi tidak ada petunjuk dalam PHP sebenarnya pada umumnya.
Ada sesuatu yang dipanggil rujukan, tetapi kita tidak akan menghabiskan terlalu banyak masa di sana.
Dan apa lagi?
>> PELAJAR: Utama.
DAVID J. MALAN: Main.
Jadi ini adalah masalah besar yang Saya memikirkan bahawa dalam.
Perhatikan tidak ada pintu masuk utama.
Anda hanya perlu mula menulis kod anda.
Dan ini sebenarnya akan menguntungkan
apabila kita beralih sebentar untuk benar-benar menggunakan
ini bahasa yang sama untuk web-based pengaturcaraan, yang kami
tidak mahu mempunyai hanya satu pintu masuk.
Kita mungkin ingin memiliki banyak URL, sekumpulan fail yang berbeza
semua mengambil dalam input pengguna dan menghasilkan output.
>> Tetapi di sini adalah sangat mengecewakan contoh yang saya janjikan masa lalu,
iaitu dalam folder ini di sini, salah ejaan.
Jadi dalam ejaan fail ini, yang kita tidak akan menghabiskan terlalu banyak masa di, ada
dasarnya adalah porting-- P-O-R-T. Ia hanya satu perkataan yang diberi apabila, berkata,
anda menukar dari satu bahasa kepada yang lain secara manual biasanya.
>> Ini adalah port dari PC versi ejaan dari Serangga 5.
Dan saya pada dasarnya cuba untuk menukar baris demi baris sebagai rapat seperti yang saya boleh.
Jadi, jika anda suka jenis benda, ia sebenarnya bernilai pada satu ketika
menarik mereka berdua sebelah sisi dan melihat apa yang yang sama
dan apa yang berbeza.
Tapi mereka cukup darn sama.
Jika anda masih ingat apa yang ejaan bahkan kelihatan seperti,
walaupun anda tidak perlu menukar fail ini,
ia agak sama struktur dengan hanya beberapa
perubahan di sana sini.
>> Jadi, ini adalah hanya untuk mengatakan bahawa ia cukup mudah untuk menukar ejaan
dari C ke PHP.
Tetapi di dalam kamus, ada sesuatu yang lebih menarik.
Biar saya pergi ke hadapan dan membuat fail dictionary.php saya sendiri.
Jadi sedikit berbeza dalam bahawa kita akan menyebutnya .php bukan .c.
Oleh kerana ini adalah file PHP, saya do-- sedikit annoyingly-- mempunyai
untuk memulakan fail dengan tag php seperti itu.
Dan saya akan pergi ke depan dan menetapkan fungsi beberapa.
Fungsi yang disebut cek, yang merupakan akan mengambil dalam kata seperti sebelumnya.
Tetapi ini pendapat yang berbeda akan mempunyai satu dolar
menandatangani karena kita, sekali lagi, dengan menggunakan PHP.
Satu lagi fungsi dari dictionary.c adalah beban
dan ia mengambil masa dalam nama kamus, jadi saya akan mendapatkan bahwa fungsi siap untuk pergi.
>> Satu lagi di dictionary.c adalah apa?
Ukuran adalah salah satu yang paling baik, di kurangnya jika anda menyimpan beberapa pembolehubah sekitar.
sehingga ukuran hanya perlu kembali variabel.
Dan kemudian ada membongkar.
>> Jadi ada empat fungsi dalam masalah set 5
bahawa anda perlu untuk melaksanakan dengan beberapa struktur data atau struktur.
Oleh itu, saya berjanji bahawa dalam PHP, kita boleh menyatakan
jadual hash, misalnya, apa yang lebih mudah.
Malah, jika saya ingin meja goreng, Saya hanya akan pergi seperti yang
dan ada jadual hash saya.
Dan itu nota, mengecilkan hati, yang kita tinggalkan pada masa lalu.
Dan anda tahu apa, jika saya ingin pembolehubah untuk ukuran, baik,
yang satu ini bukan semua yang berbeza daripada C,
tetapi saya akan pergi ke depan dan melakukan itu.
Dan perhatikan tidak ada jenis data.
Dan aku akan kembali nanti dan sebenarnya menambah beberapa komen di sini.
Tetapi bagaimana pula dengan beban?
>> Jika tanda dolar kamus adalah nama fail saya
dan saya benar-benar ingin memuat perkataan ke dalam jadual ini sekarang,
Saya sebenarnya boleh melakukan sesuatu yang cukup mudah.
Satu-- dan ini adalah minorly annoying-- dalam PHP,
Anda harus menentukan di dalam dari suatu fungsi jika anda
ingin mengakses beberapa global variabel yang didefinisikan di luar.
>> Tetapi itu bukan terutama menarik sekarang.
Apa yang lebih menarik ialah ini untuk masing-masing membina yang saya sebutkan dahulu.
Dan ternyata bahawa PHP mempunyai fungsi yang dipanggil fail yang tujuannya dalam kehidupan
adalah untuk membuka fail dan dibaca semua lini ke dalam array
dan diserahkan kembali kepada.
>> Atau dengan kata lain yang boleh saya lakukan kamus sehingga yang kini berkesan apabila saya sebut fail,
ini akan tangan saya kembali pelbagai kata-kata dari fail.
Ia bukan semua yang baik.
Ia masih akan menjadi garis kata-kata, sesuatu yang linear.
Tetapi saya boleh pergi ke depan dan beralih atas setiap kata-kata dengan menggunakan
sintaks yang kita lihat secara ringkas masa lalu.
Dan anda akan melihat ia lebih di Serangga yang akan datang.
>> Tetapi sekarang saya mempunyai iterasi gelung lebih setiap perkataan di dalam kamus.
Dan pada setiap iterasi, ingat saya memanggil perkataan semasa "dengan perkataan."
Dan semua itu akan diambil untuk menaruh perkataan ke dalam kamus
akan menjadi kata tekaan "benar."
Itulah fungsi insert saya.
Itulah fungsi beban saya kamus saya.
Sekarang ini adalah sedikit menipu kerana, Anda tahu apa, sebenarnya ada
garis miring terbalik n di akhir perkataan bahawa saya mungkin harus menyingkirkan,
tetapi itu bukan masalah kerana PHP mempunyai fungsi yang disebut cop yang secara harfiah
daging dari salah satu watak di akhir sangat.
Jadi tidak ada masalah di sana.
Kami telah pergi ke depan dan benar-benar singkat yang adil ini.
Dan sekarang saya mungkin perlu menjejaki saiz, jadi mari kita sekurang-kurangnya melakukan this--
saiz ++.
Boleh saya berbuat demikian seperti sebelumnya.
Dan maka ini mungkin akan bekerja dengan baik, supaya kita kembali benar.
Selesai.
Serangga 5.
>> [Ketawa]
>> DAVID J. MALAN: OK.
Kami akan melakukannya lagi dengan Serangga seterusnya juga.
Jadi bagaimana pula dengan saiz?
Nah, yang ini mudah-mudahan kira-kira seperti yang Anda harapkan masa lalu,
walaupun saya perlu lakukan ini perkara global bodoh.
Ini hanya sebuah artifak dari reka bentuk bahasa itu.
>> Tetapi cek adalah sedikit lebih menarik.
Jadi jika saya lulus dalam dolar menandatangani kata, saya mula-mula
ingin mempunyai akses kepada bahawa jadual pembolehubah global.
Dan jika saya mahu memeriksa apakah perkataan yang ada,
Saya hanya boleh mengatakan jika ia adalah benar bahawa berikut yang ditetapkan dalam jadual,
kemudian pergi ke depan dan pulangan benar; lain, kembali palsu.
Selesai.
Sisi lain Serangga 5.
>> Baiklah, jadi lagi, aku memotong sudut beberapa.
Dalam keadilan, saya harus mungkin menghabiskan beberapa saat
mengenai pelaksanaan ini.
Dan aku mungkin tidak harus tiruan semua jam anda memakai Serangga yang begitu banyak.
Jadi strtolower adalah fungsi.
Sesuatu eksistensialis sama dalam bahasa C, sekurang-kurangnya untuk aksara,
tetapi PHP mendapat versi yang keseluruhannya.
>> Itu akan memaksa semua huruf kecil, yang ada di antara kamu
mungkin telah melakukan canonicalize apa Anda telah meletakkan di dalam kamus anda.
Dan kini anda boleh melakukan ini dalam bahasa C, juga.
Ini tidak ada kaitan dengan PHP.
>> Tapi bila-bila masa anda mempunyai satu keadaan Boolean,
seperti sesuatu di talian 10 ada, yang hanya
akan menilai kepada benar atau palsu, dan anda jika lain jelas
kembali benar atau salah, saya boleh hanya benar-benar membuat lebih seksi ini
dan hanya melakukan sesuatu seperti ini.
Sehingga ada fungsi cek saya.
Benar, jika Boolean mengembalikan benar atau palsu,
mari kita kembalikan langsung.
>> Dan ada beberapa tweak lain Saya boleh membuat di sana sini.
Membongkar Load--, dengan cara itu, itu selesai.
Tiada apa-apa untuk dilakukan di sana.
Karena semua memori yang PHP dan bahasa-bahasa lain
sebenarnya berjaya untuk anda.
Jadi manakala dalam C, Anda telah belajar menyakitkan,
apa sahaja yang anda malloc atau calloc atau realloc, anda perlu membebaskan diri.
Apa sahaja yang anda fopen, anda perlu fclose, supaya sumber pada akhirnya dibebaskan
dan alat-alat seperti Valgrind tidak melihat dan tidak mengeluh,
yang merupakan satu perkara yang baik untuk menjalankan pada mereka.
>> Tapi pasti, harus ada ada beberapa tangkapan, kan?
Jika tidak, kita semacam sia-sia sejumlah besar minggu.
Jadi ada apa-apa sebab mengapa kita semacam mengambil sasaran ini,
tapi ada trade-off.
Benar, ini telah tematik.
>> Jadi apa yang mungkin trade-off di sini bergerak, dari C ke PHP?
Terasa seperti semua menang setakat ini selain daripada sedikit keburukan di sini atau di sana.
Yeah.
Apa itu?
>> PELAJAR: [didengar] memori.
DAVID J. MALAN: cepat.
OK.
Nah, kelajuan saya cukup cepat.
Betul?
Tetapi kelajuan pelaksanaan program ini?
OK, jadi itu adalah titik yang adil.
>> Jadi kerana ia akan berlaku, saya terlebih dahulu cued sehingga kedua-dua penyelesaian cuba saya, yang
Saya telah di papan besar adalah penyelesaian berasaskan-cuba,
dan saya mempunyai bahawa dalam direktori ini di sini.
Jadi saya sebentar lagi, saya boleh pergi ke depan dan menjalankan ini dari King James Bible,
menekan Enter.
Dan ini mudah-mudahan betul pelaksanaan di akhir,
memberi saya masa dalam jumlah dari 0.38 saat untuk yang
satu contoh yang agak sewenang-wenang.
>> Dan jika sekarang saya pergi ke ini tetingkap terminal kedua
di sini di mana saya pertama kali membuka gedit, mari saya masuk ke code-- hari ini yang, sekali lagi,
adalah dalam direktori ini dan di sini- biarlah saya pergi ke hadapan dan menjalankan ejaan.
Jadi, untuk menjadi jelas, ini adalah versi PHP.
Saya hanya menunjukkan bahagian atas di sini.
>> Jadi jika saya lakukan ejaan dari tilde CS50 Serangga 5 teks, King James, masukkan.
Ia masih lebih cepat daripada menulis di C, tetapi jumlah masa yang
adalah, notis, 0.93, sedangkan saya Pelaksanaan berdasarkan C-adalah 0.38.
Jadi ini adalah perbedaan yang tidak remeh.
>> Dan ini hanya pada satu fail.
Jika anda untuk menjalankan dua program berbanding papan besar
dan mempunyai sejumlah besar input diuji, ini pasti akan bertambah.
Dan jika kita mempunyai set data yang lebih besar, ini juga akan menambah sehingga semua lebih.
Jadi ya, membayar harga beberapa kelajuan memang kes itu.
Apa lagi?
Ya?
>> PELAJAR: Jumlah penggunaan RAM.
>> DAVID J. MALAN: Jumlah penggunaan RAM.
Jadi saya tidak memberikan satu saat fikir semasa menulis PHP ini
versi untuk berapa banyak memori saya gunakan.
Aku benar-benar menunda yang ke PHP itu sendiri dan siapa pun yang menulis program itu.
Dan itu mungkin OK, tetapi jika saya benar-benar benar-benar
mengambil berat tentang memerah prestasi sebanyak daripada program saya atau daripada laman web saya
atau daripada apa sahaja alat Aku sedang membangun, mungkin
PHP, memang, bukan bahasa yang betul.
>> Dan sebenarnya, itulah sebabnya, untuk Misalnya, banyak web servers--
program sebenar yang menyampaikan web content--
tidak ditulis dalam PHP atau dengan Python atau Ruby.
Mereka ditulis, seperti Anda sekarang akan melakukan dengan Serangga 6,
di C supaya anda boleh memerah setiap bit prestasi dari itu
dan benar-benar menjalankan kawalan-butiran halus lebih apa yang
terjadi di bawah tudung dan tidak hanya mengambil
untuk diberikan beberapa yang lebih tinggi struktur data peringkat.
>> Perhatikan, selepas semua, sesiapa dalam PHP dilaksanakan
bahawa gagasan hash table-- itu sebenarnya lebih
betul disebut array-- asosiatif apakah ia mempunyai apa-apa idea apa jenis
input anda akan menjadi memasukkan ke dalam struktur?
Jadi jelas tidak, kan?
Ini alat generik dalam toolkit itu
diberikan kepada sesiapa sahaja yang ingin untuk menggunakannya, dan sebagainya pasti ia
tidak dapat dioptimalkan akhirnya untuk apa yang anda mahu lakukan.
>> Jadi masa pembangunan offs-- perdagangan mungkin berbeza, prestasi mungkin berbeza,
kerumitan atau penggunaan memori mungkin berbeza.
Jadi, apa yang anda dapati semakin ialah ada
akan menjadi berbeza alat untuk perdagangan.
Dan sebenarnya bagi kebanyakan super tugas akhir rakyat dalam kelas ini,
percaya atau tidak, C tidak akan untuk menjadi bahasa yang tepat untuk digunakan.
>> Dan sebenarnya, salah satu bawa pulang akhirnya untuk mana-mana golongan seperti ini
adalah untuk mendapatkan anda berfikir tentang, baik, apa yang anda perlu menarik dari
rak yang anda hendak untuk menyelesaikan beberapa masalah.
Dan demi sesungguhnya, kami akan merentasi jambatan ini lebih seperti yang kita lihat lebih banyak bahasa
bahkan di luar hari ini.
>> Jadi mari kita peralihan sekarang untuk mungkin konteks yang lebih akrab
untuk menggunakan bahasa seperti PHP.
Ini agak biasa untuk menggunakan sekurang- baris arahan, menulis skrip
seperti yang saya lakukan, tetapi ia jauh, jauh lebih umum.
Dan ia telah dicadangkan untuk digunakan dalam bentuk fail yang biasanya berakhir
di .php-- tetapi itu tidak prerequisite-- yang
bahawa diri mereka menghasilkan kandungan web.
>> Jadi, saya pergi ke depan dan membuka beberapa contoh saya dipersiapkan sebelumnya.
Dan ini sebenarnya semacam benar cerita dalam bahawa salah satu perkara pertama yang
Pernah saya lakukan sendiri setelah menyelesaikan CS50 dan mungkin, saya fikir,
CS51 tahun yang lalu adalah saya rakan sebilik dan saya telah membantu
untuk menjalankan antara dinding mahasiswa baru program sukan, yang, pada masa itu,
telah mahasiswa baru mendaftar untuk pelbagai sukan dengan mengisi sehelai kertas,
seperti yang disebut, berjalan melintasi halaman untuk Wigglesworth,
dan menjatuhkannya di beberapa penurunan pintu pengawas itu.
Dan kemudian dia akan pergi melalui mereka dan kemudian benar-benar email kami secara manual
yang kami telah didaftarkan untuk beberapa sukan.
>> Jadi jelas, peluang untuk perbaikan.
Hari-hari ini, anda mungkin berubah hanya Borang Google, tetapi kembali pada hari,
kita harus benar-benar mencapai bagi- ini tidak mencapai lebih lama ago--
untuk pengaturcaraan yang bahasa yang tidak PHP.
Pada masa itu, ia adalah sesuatu yang disebut Perl,
yang telah keluar dari mode sejak.
Tetapi idea adalah sama.
>> Dan saya pada dasarnya duduk untuk cuba ke pelabuhan pergi versi Perl untuk PHP,
tetapi dalam penafian penuh, tidak memberikan apa-apa dianggap estetika dulu.
Jadi di sini adalah laman web.
Ini adalah fail.
Jika saya memperbesar, rupanya yang disebut froshim0.php
hanya kerana itu adalah kami pertama Contohnya seperti di dalam siri ini.
Dan perhatikan bahawa ia mempunyai apa yang kelihatan menjadi bentuk HTML yang sangat hodoh,
tetapi bentuk yang menarik kerana ia membolehkan
saya untuk memberikan input pengguna ke browser.
>> Sekarang sebelum ini, jika kita mempunyai bentuk, untuk siapakah yang telah kami sampaikan parameter permintaan kami,
parameter barisan seperti yang disebut?
Jadi untuk Google, bukan?
Kami benar-benar punted pada gagasan melakukan apa-apa dengan input itu.
>> Tetapi hari ini, kita mula menghasilkan output.
Dan tingkah laku yang saya akan melihat di sini pada mulanya sangat sepele.
David, saya akan memanggil satu jantina di sini, berkata Matthews di sini.
Saya tidak akan menjadi kapten.
Saya akan klik Register.
Dan melihat bahawa URL mempunyai berubah untuk mendaftar-0.php,
dan kemudian ada teks jelek ini di sini.
Saya tidak memikirkan untuk format ini.
>> Tetapi apa yang menarik ialah tiga nilai-nilai yang telah diluluskan pada rupanya.
Ini adalah semacam PHP dari setara dengan printf--
kita akan melihat apa yang ia benar-benar dipanggil dalam bit-- yang hanya mencetak
apa yang berlalu ke dalamnya.
Jadi ini menunjukkan bahawa bentuk yang mempunyai sekurang-kurangnya tiga bidang kepadanya,
dan anda melihat saya menaipnya dalam.
Satu adalah nama saya, satu jantina, satu asrama.
Dan kapten bahkan tidak dapat dihantar ke server kerana saya tidak check it.
>> Jadi ini adalah untuk mengatakan nampaknya, apabila anda menyerahkan perkara di web,
bukan sahaja tidak URL kadang-kadang change-- kadang-kadang tidak.
Malah, nama fail berubah, tetapi apa yang tidak ada di URL
bahawa kita melihat masa lalu dengan Google.
Ya?
>> PELAJAR: Tiada rentetan pertanyaan
>> DAVID J. MALAN: Tidak ada rentetan pertanyaan.
Tidak ada tanda tanya sesuatu.
Tidak ada tanda tanya q sama dengan kucing, seperti yang kita lakukan masa lalu.
Dan ada pasti tidak ada nama tanda tanya sama
Daud atau asrama sama Matthews, jadi di mana adalah bahawa semua akan pergi?
>> Baiklah, biar saya kembali ke sini gedit dan membuka yang pertama dari fail-fail
di vhost saya, tuan rumah tempatan, orang ramai direktori di sini dan masuk ke froshim0.
Jadi ternyata bahawa hampir semua halaman ini hanya HTML.
Dan ini mungkin asing bagi anda, tetapi ia tidak lama lagi akan lebih-lebih lagi dengan Serangga 6
dan Serangga Serangga 7 dan 8.
Tapi ini hanya dalam halaman HTML.
>> Dan hal-hal yang menarik seolah-olah di sini.
Tag bentuk tindakan yang atribut mempunyai nilai daftar 0.
Itulah sebabnya apabila saya mengemukakan ini, ia pergi ke fail itu.
Tetapi kaedah adalah posting today-- berbeza.
Jadi ternyata di luar sana yang sekurang-kurangnya dua kaedah di web yang digunakan
untuk menghantar maklumat dari pelayar ke pelayan.
Dapatkan meletakkannya dalam URL.
Post meletakkannya di tempat lain.
Dan kapan dan mengapa anda mungkin benar-benar ingin laman web
menggunakan jawatan ketika itu dan bukannya dari mendapatkan, hanya gerak hati?
Mana-mana laman web.
Jenis data yang harus dilalui hanya dengan kesimpulan sekarang melalui pos yang bertentangan
untuk mendapatkan, jika kita telah melihat dua perbezaan?
PELAJAR: [didengar] aman.
DAVID J. MALAN: Jika anda ingin sesuatu yang selamat.
Jadi, anda menaip kata laluan ke dalam laman web, kad kredit
ke dalam laman web yang akan jenis ini suboptimal
jika browser meletakkan bahawa nilai dalam URL.
Mengapa?
Anda melihatnya, yang tidak seolah-olah menjadi masalah besar,
tetapi kemungkinan besar Anda cukup sering berjalan jauh dari komputer atau menggunakan komputer anda
makmal dan sehingga seseorang lain atau bahkan teman sekamar
dengan mudah dapat berjalan dan melihat bahawa maklumat peribadi.
Apabila anda menghantar e-mel melalui laman web, anda mungkin
tidak mahu itu akhir data di URL juga.
Dan jadi tidak apa-apa sebab mengapa kita mungkin mahu meletakkan di sini.
Bahkan dan kanan photos--, saya tidak boleh agak bayangkan bagaimana anda akan mengambil grafik,
seperti JPEG, dan memasukkannya ke dalam URL.
Anda boleh melakukannya.
Ada cara untuk encoding, tetapi ia tidak mudah seperti itu.
>> Jadi mendaftar 0 sebenarnya sangat underwhelming.
Semua yang dikatakannya benar-benar adalah ini.
Ia akan mencetak dalam beberapa HTML tag berikut.
Saya telah mendapat tag PHP di sini bersarang dalam tag pra.
"Pra" hanya bermaksud teks yang telah diformat, mono-jarak, seperti mesin taip.
>> Printr adalah fungsi rekursif cetak.
Dan kemudian ada ini Perkara yang menarik di sini.
Dan kami akan kembali ke ini kerana ada orang lain,
tetapi tanda dolar garis bawah jawatan tampaknya
pembolehubah dalam PHP di mana apa-apa Anda kirim dari pelayar ke pelayan
akan disimpan untuk anda.
Dan kita akan melihat bagaimana untuk mendapatkan di maklumat yang tidak lama lagi.
>> Tetapi pertama, mari kita kembali kepada contoh yang sedikit berbeza.
Pergi ke register-- atau sebaliknya, froshims1.php,
yang kelihatan sedikit berbeza.
Saya mengambil lebih sedikit usaha dengan format,
walaupun ia masih sangat jelek.
Tetapi saya akan pergi ke depan dan ketik "David" sekarang.
Laki-laki.
Kami akan memeriksa "kapten" kali ini.
Kami akan melakukan yang Matthews.
Dan mendaftar.
>> Dan kali ini ia berkata, hm, tidak juga.
Baiklah, jadi apa yang mendaftar 1?
Biar saya pergi ke terbuka mendaftar 1 hm dan-.
Baiklah, jadi ini adalah menarik, dan ini
adalah batu loncatan ke arah sekarang program yang lebih menarik.
>> Perhatikan bahagian atas fail ini mempunyai PHP tag dan juga beberapa komen.
Dan ini adalah, buat masa ini, gangguan jadi mari kita menyingkirkan mereka komen
sama seperti mereka berada di C. Dan saya menuntut dengan potongan kod ini dengan komen
bahawa kod ini mengesahkan penyerahan.
>> Nah, ternyata bahawa pembolehubah seperti tanda dolar
menggarisbawahi pos disebut GLOBALS super.
Mereka seperti ini pembolehubah global khas
yang hanya omni-kini yang terdapat di dalam program anda.
Dan anda boleh menggunakan notasi braket persegi kepada indeks ke dalam mereka tidak menggunakan nombor
seperti 0, 1, 2, 3, tetapi kata-kata yang sebenarnya.
>> Jadi, anda boleh memikirkan tanda dolar menggarisbawahi jawatan sebagai semacam jadual hash
bahawa anda boleh lulus kunci ke, sebuah pencarian perkataan di-antara tanda kurung siku,
dan ia akan memberikan kembali nilai untuk setiap pengguna yang benar-benar memberikan.
PHP mempunyai fungsi yang disebut kosong yang hanya
mengatakan ya atau tidak, ini pembolehubah kosong atau tidak.
Kami mempunyai kedua-dua bar, yang hanya berarti atau, seperti dalam C.
>> Jadi pada dasarnya, garis 4 sahaja mengatakan jika pengguna tidak memberi nama
atau tidak memberikan jantina atau tidak memberikan asrama, pergi ke depan dan mengarahkan dia
-masing melalui talian ini di sini.
Jadi, ini adalah sedikit samar, tetapi ini hanya bermaksud secara literal
kembali ke lokasi ini, sehingga punts pengguna
kembali ke mana pun dia berasal.
Tetapi itu adalah janggal sedikit iaitu aku boleh dikodkan di dalam program itu.
>> Tetapi bagaimana jika ini jika keadaan tidak menilai kepada benar?
Bagaimana jika pengguna itu memberikan beliau atau nama dan asrama dan jantinanya?
Bahwa jika keadaan tidak akan menilai kepada benar,
jadi saya tidak memukul pintu keluar di baris 7.
Jadi apa yang berlaku?
Dan ini adalah apa yang menarik tentang PHP.
>> Anda boleh jatuh ke dalam dan keluar dari mod PHP, jadi untuk bercakap.
Jika anda ingin beberapa kod untuk melaksanakan, Anda boleh membuka dan menutup tag PHP
dan meletakkan kod di sana seperti yang telah saya lakukan di sini.
Sebaik sahaja anda menutup PHP tag, server
hanya akan dimuntahkan apa sahaja yang anda diletakkan di sana.
Dan sesungguhnya, ini adalah sebahagian daripada reka bentuk asal PHP,
untuk lebih baik untuk lebih buruk, adalah ini percampuran kod dan markup
bahasa.
Dan kita akan melihat bahawa ini sangat cepat anaknya itu adalah turun ke dalam keadaan huru-hara.
Dan dengan itu kita akan melakukan yang lebih baik daripada ini pada akhirnya, tetapi hanya
melihat kemudahan yang saya sebenarnya mampu untuk melaksanakan logik beberapa.
>> Tetapi masih sedikit underwhelming.
Mari kita membuka versi dua daripada Frosh IM, yang
nampaknya tunduk kepada register2.php.
Jadi gambar ini benar-benar akan untuk melihat hampir sama.
Saya akan pergi ke Frosh IM 2.
Tetapi dalam Frosh IM 2, mari kita lihat apa yang berlaku.
>> David, klik butang radio, sebagai ia dipanggil; Matthews, tidak ada kapten.
Mendaftar.
Anda didaftarkan.
Tidak juga.
Oh tunggu, kami hanya melakukan contoh itu, tidak kita?
Baiklah, stand by.
Kami akan melakukan tiga.
Jelas ada sesuatu yang kira-kira berlaku dengan Gmail.
Kami akan ke sana.
>> Jadi Frosh IM 3 kelihatan seperti ini.
Tidak berbeza.
Tetapi apabila saya melakukan Daud, lelaki, Matthews, dan mendaftar, versi ketiga dan terakhir ini
tuntutan, agak mudah, anda berdaftar benar-benar.
Itu semacam tidak penting.
Tetapi saya menuntut dengan ini versi ketiga dan terakhir
Saya kini telah dicipta semula dengan tepat apa yang saya rakan sebilik dan saya dibina untuk IM Frosh
program tahun lalu.
Dan ia adalah mudah.
Tidak ada pangkalan data, tidak Excel spreadsheet.
Tetapi yang lebih penting, tidak ada kertas lebih
kerana apa yang kita lakukan dengan program ini adalah untuk benar-benar email pengawas, yang
sebelum menerima perkara-perkara ini melalui bentuk.
>> Dan ternyata kita telah diprogram ini di apa-apa cara bahawa apabila seseorang mendaftar,
E-mel akaun John Harvard yang proctor-- atau dirinya sendiri dalam hal ini,
John Harvard-- dengan yang berikut text-- "Orang ini hanya berdaftar."
Nama David, kapten kosong; jenis kelamin, laki-laki; dan asrama di Matthews.
>> Jadi apa yang berlaku di sana?
Nah, fail yang dipersoalkan di sini nampaknya register3.php.
Dan jika saya membuka ini, anda akan melihat kedua-dua kuasa kod seperti ini
dan juga, terus-terang, tidak selamat sistem seperti e-mel.
Saya baru sahaja berkesan berpura-pura John Harvard dengan cara yang berikut.
>> Saya mempunyai tag php terbuka di bagian atas, yang hanya mengatakan di sini datang beberapa kod PHP.
Di sini, ternyata ada perpustakaan dalam PHP.
Anda hanya tidak perlu termasuk fail header ganda.
Anda akan mendapat lebih banyak dengan sinki dapur, jadi untuk bercakap.
>> Tetapi kali ini di baris 4, saya mahu ke perpustakaan khusus yang disebut
PHP mailer, yang adalah sesuatu yang anda boleh memasang secara percuma di banyak sistem.
Di bawah sini saya mengesahkan penyerahan yang baru
dengan memeriksa adakah pengguna memberikan saya nama, jenis kelamin, dan asrama.
Dan jika demikian, pergi ke depan dan memberi contoh mailer.
>> Anda boleh menganggap ini sebagai satu baris kod yang hanya memperuntukkan.
Ia seperti malloc, tetapi itu adalah sedikit lebih seksi
dalam bahawa anda tidak menyebutkan hanya malloc dan beberapa jumlah generik.
Kamu katakan memberi saya salah satu dari ini, memberikan saya yang baru ini.
>> Dan jika anda telah diprogramkan ke dalam Java atau C ++ atau bahasa-bahasa lain,
Anda mungkin telah melihat ini.
Tetapi pendek itu, jika asing, baris ini
menempatkan ke mel tanda dolar struct khusus yang disebut
objek yang telah terbina dalam fungsi e-mel.
Dan sebenarnya, melihat dan sintaks yang sama.
>> Ini bukan satu penunjuk, per se.
PHP hanya menggunakan sintaks yang sama.
Baris ini berkata penggunaan SMTP-- Pemindahan Mel Mudah
Protokol, yang hanya Protokol yang digunakan untuk menghantar mel.
Ini menyatakan penggunaan Pelayan SMTP Harvard, yang
adalah suatu tempat di kampus.
>> Ini mengatakan apa TCP pelabuhan nombor untuk bercakap dengan,
dan saya membuat kesimpulan bahawa oleh Googling atau dengan bertanya meja bantuan.
Dan kemudian kerana Harvard menggunakan beberapa sistem keselamatan di server-- mel
sekurang-kurangnya untuk menyulitkan lalu lintas di antara anda dan ia,
walaupun sesiapa sahaja boleh hantar ke itu-- Saya akan menghidupkan protokol TLS yang
untuk menjaga ini selamat.
>> Tetapi ini adalah di mana perkara-perkara mendapatkan sedikit menakutkan.
Saya boleh hanya sewenang-wenangnya mengatakan bahawa saya jharvard,
dan saya hanya boleh sewenang-wenangnya e-mel kepada diri saya di sini.
Dan kemudian saya boleh menentukan tertakluk dengan garis ini di sini.
>> Dan ini hanya kelihatan hodoh, tetapi ia hanya sekumpulan Rangkaian.
Rupa-rupanya, PHP memiliki simbol super berguna, seperti beberapa bahasa, operator titik,
yang hanya benar-benar concatenates tali selepas tali selepas tali,
dan anda tidak perlu malloc atau angka daripada jumlah panjang tali.
Anda hanya melakukannya.
Dan memang, kerana saya concatenating dalam semua perkara-perkara ini dengan titik-titik ini,
itu sebabnya saya e-mel yang dikirim kelihatan seperti yang terjadi.
>> Kemudian akhir sekali di sini, saya menghantar mel.
Jadi jika ini adalah palsu, Aku hanya akan mati,
yang merupakan satu majlis yang hanya cetakan ke skrin beberapa mesej ralat.
Tetapi ia adalah, sebenarnya, memanggil fungsi hantar.
Jika tidak, jika semua ini gagal, ia pengalihan saya kembali ke sini.
>> Dan sepatutnya saya melihat bahawa Saya benar-benar berdaftar?
Well, ia berlaku di sini.
Jadi saya membawa hal ini untuk beberapa sebab.
>> Satu, ini adalah persis bagaimana jika anda membina beberapa laman web untuk projek akhir
atau untuk dunia sebenar, ini adalah bagaimana anda menghantar e-mel peringatan
kepada pelanggan anda atau pelanggan anda.
Ini adalah bagaimana anda menghantar peringatan kata laluan.
Ini adalah bagaimana anda menghantar orang pesan bahawa mereka mempunyai Facebook baru
mesej yang belum selesai atau sesuatu seperti itu.
>> Tetapi ia juga berbicara kepada hakikat bahawa ini boleh
telah sangat baik dari Davin atau orang lain.
Dan saya katakan seperti ini dengan senyuman kerana saya
cukup yakin apa yang berlaku melalui beberapa di fikiran anda pada ketika ini.
Tetapi ini adalah salah satu dari mereka melakukan seperti yang saya berkata, tidak seperti yang saya lakukan jenis perkara,
kerana ia adalah kecil bagi menempa e-mel seperti ini.
Tetapi seperti yang anda mungkin telah melihat atau baca di dalam Crimson,
akhir-akhir ini ia juga cukup remeh bagi orang-orang
untuk mengesan mereka kembali ke asal beberapa.
Dan bertanya kepada saya beberapa waktu, mungkin di CS50 makan tengah hari, bagaimana saya mula-mula
berkenalan rapat hampir ke tahun papan ed banyak
lalu apabila saya dapati bagaimana internet bekerja.
Jadi, dalam apa-apa case-- sedikit selepas papan ed lakukan.
>> Jadi, dalam apa-apa hal, ada sejumlah besar GLOBALS super,
sebagai mereka disebut di sini, satu daripadanya kita Saw jawatan dolar tanda garis bawah.
Ada rakan sejawat yang dipanggil get, yang mana barang-barang dari URL
berakhir akan.
Dan ada sejumlah besar orang lain, sesi too-- dan pelayan dan cookies.
Kami akan kembali ke Cookie suatu masa yang lain,
tetapi sesi jenis dingin kerana hak sekarang-- sampai sekarang--
segala sesuatu yang kita lakukan dengan pelayar web adalah semacam tanpa negara, jadi untuk bercakap.
Saya boleh klik di sekitar, akses fail pada pelayan, sesuatu
berlaku pada skrin, tetapi maka sambungan ditutup.
Internet Explorer atau Icon Firefox berhenti berputar
dan anda hanya melihat apa yang bahawa laman Web tersebut.
>> Jadi HTTP adalah tanpa negara di mana setelah membuat sambungan,
mendapat beberapa data, itu sahaja.
Sambungan tidak lebih, tidak seperti Skype, tidak seperti Facetime, GChat tidak seperti yang
mempertahankan yang tetap sambungan ke pelayan.
Web pada dasarnya terputus, walaupun kami akan
melihat lama bagaimana kita dapat mensimulasikan perkara
seperti chat Facebook dan GChat, yang menjaga illusion--
atau benar-benar melakukan mempertahankan hubungan konstan menggunakan
teknologi yang lebih moden.
>> Tetapi jika aku pergi ke, berkata, counter.php, ini adalah satu lagi contoh yang mudah,
seperti yang akan kita lihat, pada masa ini difikirkan Saya melawat laman web ini masa sifar.
Tetapi jika saya hanya memuatkan semula halaman, entah bagaimana tahu aku ada di sini sebelum ini.
Jika saya menambah nilai lagi, tahu aku ada di sini sebelum ini.
Dan sekali lagi dan lagi dan lagi dan lagi.
>> Jadi ada beberapa plus-plussing berlaku, tetapi notis
perkara yang sedikit berputar pernah jadi secara ringkas di bagian atas dan kemudian terputus,
jadi ia tidak seperti saya mempunyai yang tetap sambungan ke alat saya.
Nah, jika aku masuk ke counter.php, melihat bagaimana mudah ia adalah.
Saya dakwahlah ini khas fungsi yang kita akan tidak lama lagi
mula mengambil untuk diberikan dipanggil sesi permulaan.
Mulai sesi.
>> Dan sesi seterusnya adalah hanya akan menjadi ember, seperti membeli-belah yang
kereta di mana anda boleh meletakkan nilai-nilai dan jenis amanah sebagai seorang programmer
bahawa mereka akan berada di sana apabila pengguna yang datang back-- kedua
kemudian, satu jam kemudian, bahkan setahun kemudian, selagi ia tidak jelas
cookie mereka, seperti yang kita akhirnya akan melihat.
Dan sekarang saya hanya perlu jika keadaan di sini.
Jadi, jika kunci yang berikut, dipanggil counter, yang ditetapkan di dalam
super ini global-- hash ini meja, jika anda will-- dipanggil sesi,
kemudian pergi ke depan dan ambil nilai daripada think session--
ini sebagai membeli-belah yang cart-- dan menyimpannya
dalam variabel sementara dipanggil kaunter.
>> Jika tidak, jika itu kaunter nilai adalah tidak diatur dalam troli membeli-belah yang dipanggil,
hanya memulakan ke 0.
Akhir sekali, di sini, pergi dan dimasukkan kembali ke dalam shopping cart atau sesi
nilai counter +1.
Jadi ternyata bahawa ini sini-bekas khas
yang, sekali lagi, adalah salah satu yang berkaitan array, array yang anda boleh Indeks
dalam kata-kata bukan Numbers tetap ada bahkan setelah pengguna akan hilang.
Sekali lagi, saya akan kembali ke halaman yang sekarang.
Ia adalah satu minit atau lebih.
Tetapi ia mengingat bahwa saya telah di sini 19 kali sebelum ini.
Ini merupakan lawatan ke-20 saya.
>> Dan sebagainya ini akan menjadi kunci kepada melaksanakan apa-apa laman web yang mengingat
bahawa anda log masuk, anda meletakkan sesuatu literal dalam keranjang belanja anda
untuk membeli atau anda mempunyai beberapa Bilangan mesej belum selesai.
Bila-bila masa anda mahu mengingati maklumat,
kita akan melihat bahawa PHP, seperti beberapa bahasa lain,
memberikan kita ilusi ini negara walaupun, kerana anda akan melihat dalam Serangga 6,
sebagai anda membuat permintaan HTTP dari client ke server, itu sahaja.
Setelah anda mendapatkan belakang yang tindak balas, tidak ada yang lebih
kembali dari pelayan secara lalai.
Tetapi kita akan melihat bagaimana untuk bekerja di sekitar itu.
>> Sekarang, mari kita cuba untuk membersihkan ini sedikit.
Kami telah melihat beberapa contoh-contoh yang berbeza di sana.
Oh, dan sebagai samping, untuk mereka yang biasa atau yang tidak dikenali,
alasan bahwa Contoh Frosh IM pergi
dari melihat benar-benar hodoh ke slightly-- baik,
masih ugly-- untuk sedikit kurang hodoh walaupun masih hodoh
kerana jika kita melihat pada kod sumber di sini,
ternyata yang saya ada ini di bahagian paling atas fail.
>> Ternyata bootstrap adalah salah satu daripada banyak perpustakaan boleh diperolehi secara percuma di luar sana
yang tidak ada bagi bahasa pengaturcaraan biasa, tetapi untuk CSS atau JavaScript
atau HTML atau beberapa bahasa.
>> Dan orang-orang ini di sini- asalnya datang daripada
dari Twitter-- hanya perlu sejumlah besar gaya.
Ini adalah fail besar di sini bahawa seseorang menulis,
atau seseorang menulis, dari masa ke masa yang menentukan warna dan format
dan barang kecil supaya saya boleh jenis meminjam sintaks mereka
dan tidak perlu memikirkan cara untuk meletakkan borang saya.
Ini juga minified supaya komputer boleh
memahaminya tetapi tidak semestinya manusia.
Jadi itu hanya mengapa penyesuaian dgn mode ada berubah.
>> Tetapi marilah kita buat yang lebih baik dari segi reka bentuk,
kerana jika kita tetap di bawah jalan ini terlalu lama,
kode kita akan berantakan dan berantakan.
Jadi mari kita fokus pada contoh-contoh di sini.
Yang terakhir untuk hari ini.
>> Jadi di sini adalah super mudah versi 1.0 dari laman web CS50 ini.
Hanya memiliki pautan kepada kuliah dan sukatan pelajaran,
dan ia menggunakan senarai tidak tertib tag-- tag UL yang kita menggunakan masa lalu.
Dan jika sebenarnya, jika saya membuka View Page Source,
Anda akan melihat bahawa ini adalah benar-benar, benar-benar HTML sederhana.
Dan sebenarnya, walaupun ini adalah file PHP di bawah hood,
ia masih hanya meludah keluar hanya HTML untuk saat ini.
>> Jadi jika saya klik pada Kuliah, kita melihat ini terjadi.
Dan jika saya klik pada minggu sifar, kita lihat ini.
Dan jika saya klik pada Rabu, kami melihat ini.
Dan ini nampaknya adalah PDF slaid dari hari itu.
Apa yang saya lakukan adalah pautan dengan tag anchor ke URL ini di sini.
>> Jadi, ini adalah hanya untuk mengatakan ini adalah cukup versi sederhana dari laman web CS50 ini.
Mari kita lihat bagaimana ia dilaksanakan.
Jika saya pergi ke direktori mvc0 itu, kita akan melihat beberapa fail.
Salah satunya adalah README, jadi jika Beberapa daripadanya adalah terlalu cepat,
Anda hanya dapat melihat- lebih santai kemudian.
Dan notis di sini adalah fail index.php.
Ia ternyata bahawa jika anda sendiri, manusia,
tidak menentukan nama akhir URL, pelayan web biasanya
Kesimpulannya di sini, beberapa nama lalai untuk anda.
Sebuah sesuatu indeks dot umumnya lalai.
>> Jadi sebab itulah saat yang lalu apabila saya melawat URL ini di sini,
tiada nama fail, tidak ada file pengembangan, ada masa dalam URL.
Ia hanya tahu entah bagaimana ajaib mencari index.php.
Ia hanya konvensi.
Boleh dipanggil apa-apa.
>> Jadi jika saya sekarang pergi ke index.php, anda akan melihat
itu, mari kita indeed-- menyingkirkan komen
di sini kerana ada benar-benar ada yang menarik untuk itu--
ini hanya sulit kode HTML.
Jadi itulah yang konsisten, walaupun, dengan tuntutan saya
bahawa anda boleh bercampur HTML dan PHP.
Tidak ada yang sebenarnya pengaturcaraan logik di sini.
>> Dan gambar-gambar yang lain cukup banyak hanya tidak menarik.
Ia hanya satu minggu keras berkod di sini untuk minggu satu m dan minggu satu w,
untuk hari Isnin dan Rabu.
Dan kemudian jika saya membuka minggu sifar, notis itu hampir serupa.
>> Dan itulah jenis takeaway kunci.
Perhatikan betapa berlebihan ini.
Fail-fail ini hampir tidak berubah, tetapi saya ditarik salah satu pekerjaan salin / tampal
di mana saya mengambil satu file-- mungkin pada minggu zero-- disalin
ketika minggu satu tiba, dan tweak beberapa nilai-nilai.
Kita mungkin akan dapat untuk berbuat lebih baik daripada ini.
>> Jadi mari kita kembali sehingga MVC dan pergi ke dalam versi satu.
Dan perhatikan saya telah mendapat beberapa fail, kerana apa yang
adalah umum untuk semua file-file hanya masa ago-- jika saya kembali ke versi 0,
mari kita kembali ke dalam indeks, dan hanya postulate--
setelah saya menyingkirkan comments-- yang apa yang sebahagian daripada halaman ini
adalah mungkin dalam setiap satu daripada fail-fail saya?
Sebut saja keluar.
Yang baris digandakan mungkin di semua laman-laman ini?
Ya?
>> PELAJAR: [didengar].
>> DAVID J. MALAN: 1 hingga 9.
Ya, benar-benar.
1 hingga 9, kecuali mungkin 8 berubah sedikit sebab CS50
menjadi kuliah atau minggu sifar atau sesuatu.
Tetapi hampir serupa.
Jadi semua ini adalah hanya jenis disalin dan ditampal.
Dan ada pasangan lain-lain talian saya boleh berfikir
dari yang mungkin ada persamaan semua fail.
>> PELAJAR: 12 dan 13.
DAVID J. MALAN: Ya.
Pasti, 12, 13, dan 14 mungkin, hanya kerana hal-hal yang menarik
yang berlaku pada baris 11 dan 10, maka ia akan kelihatan.
Jadi mari kita lihat versi 1, yang cuba untuk memperbaiki ini.
Dalam versi 1 dari example-- MVC ini kita akan menjelaskan apa cara MVC dalam moment-- yang
jika saya pergi ke dalam indeks, jenis kelihatan sedikit membingungkan sekarang.
Ia bukan semudah seperti sebelumnya.
>> Tetapi apabila anda mula membacanya dengan hati-hati, itu
cukup jelas apa yang dilakukannya.
Rupa-rupanya baris 1 dan baris 8 telah menggantikan
semua barang-barang yang anda hanya identified-- walaupun hanya sebagai tambahan,
Saya meninggalkan ULS sana hanya dalam kes beberapa hari tidak mempunyai senarai perkara.
Dan sebagainya memerlukan adalah jenis seperti pound termasuk di C. Ini salinan dan Pes
kandungan secara berkesan di sini ke dalam fail ini.
>> Jadi dalam header.php, kerana anda mungkin membuat kesimpulan dari namanya,
akan menjadi header halaman.
Ini semacam yatim di sini.
Ia hanya mempunyai bahagian atas untuk itu, tetapi tidak ada kandungan yang lebih bawah.
>> Dan jika saya melihat footer sementara itu, yang fail lain mentioned--
yang satu ini walaupun kurang menarik, tetapi sekali lagi, itu umum untuk segala-galanya.
Jadi, ini adalah footer.
Ini adalah header.
Ini adalah fail itu berubah-ubah, jadi mengapa tidak
cuba untuk faktor luar persamaan secara dengan kedua-dua baris di sini?
>> Tetapi kita dapat membersihkan ini sehingga sedikit lagi.
Saya akan pergi ke depan dan membuka versi dua di mana
kita akan melihat bahawa terdapat fail baru, myspace.png.
Kita akan lihat apa yang ada di dalam seketika.
Mari kita pergi ke indeks, sebagai pintu masuk seperti sebelumnya.
>> Dan kini melihat saya memerlukan myspace.png, bukan header atau footer.
Tetapi pembantu adalah jenis seperti helpers.c dan helpers.h dari Serangga 2
atau Serangga 3 lama dahulu apabila anda benar-benar adakah mencari dan menemukan Serangga untuk itu,
dan anda mempunyai semua kod anda untuk pengisihan dan mencari dalam fail yang berasingan.
Itulah apa yang berlaku di sini.
>> Dan kini baris 3 kelihatan sedikit berbeza.
Dan itu hanya satu baris.
Untuk membuat ini lebih jelas, saya hanya boleh
adakah ini menjadi Gaya konsisten dengan segala sesuatu yang lain yang telah kami lakukan.
Tetapi itu bukan benar-benar mengubah fungsi tersebut.
Ia hanya satu baris kod sebenar.
>> Rupa-rupanya, ada fungsi di suatu tempat yang dipanggil membuat header,
dan ini adalah di mana perkara-perkara mendapatkan cukup kuat.
Perhatikan bahawa dalam tanda kurung nya adalah apa yang bahagian lain dari sintaks?
Ia mungkin agak sukar untuk mengatakan, tetapi melihat there's-- Saya akan meletakkan beberapa putih
ruang.
Ada tanda kurung siku.
>> Dan tanda kurung siku kita lihat sedikit yang lalu dalam konteks array bersekutu,
yang, sekali lagi, seperti jadual hash.
Dan jika anda berfikir sekarang untuk C, urutan hujah ke fungsi
harus selalu sama.
Anda perlu ingat apa yang memerintahkan is-- x, y, z atau z, y, x--
dan anda perlu sentiasa menyediakan mereka dalam perintah yang sama atau melihat mereka
jika anda terlupa.
>> Tetapi ini seolah-olah menjadi cara yang pintar lulus nilai kunci sewenang-wenangnya
pasangan mana tajuk adalah nama yang dari hujah dalam kes ini
dan CS50 adalah nilainya.
Dan fakta yang saya ada ini tanda kurung siku
di sini bermakna bahawa saya boleh juga lulus dalam sesuatu
seperti seminggu adalah 1 atau 0 atau 2 atau 3.
Jadi kami telah parameter fungsi ini dalam apa-apa cara yang
bahwa ia dapat mengambil beberapa input, tetapi buat masa ini ia hanya satu.
>> Jika saya sekarang masuk ke myspace.png, melihat apa yang dilakukannya.
Ini adalah sedikit fungsi baru,
tetapi buat masa ini hanya mengambil pada kepercayaan bahawa ini adalah
sintaks yang anda menetapkan fungsi dalam PHP.
Anda benar-benar mengatakan fungsi.
Anda tidak menentukan pulangan yang menaip, dan itulah yang konsisten
dengan butiran yang berubah-ubah lebih awal di mana anda tidak benar-benar sangat menaip.
>> Ini hanya menentukan bahawa, secara lalai, ini
mengambil asosiatif sebuah array sebagai hujah.
Dan anda tahu apa?
Jika pengguna tidak lulus satu dalam, menganggap nilai default.
>> Ini adalah ciri yang C tidak mempunyai bagi kita, yang baik, kerana sekarang
data, walaupun anda tidak memberikan apa-apa,
akan menjadi satu pelbagai tetapi yang kosong.
Dan sebagai samping, ekstrak hanya melakukan sesuatu yang funky
di mana ia mengambil semua kunci dari ini associative array, semua perkara
anda boleh dimasukkan ke dalam tanda kurung siku, dan mencipta pembolehubah daripada mereka
sehingga kita akhirnya dapat mempunyai akses kepada mereka dalam footet.php dan header.php.
Itu satu abstrak sedikit, jadi biar menunjukkan ini.
>> Dalam index.php, perhatikan bahawa saya lewat di suatu nilai pasangan kunci tajuk
dengan nilai CS50.
Jika saya lihat sekarang myspace.png, melihat bahawa RenderHeader
adalah penggalian bahawa data yang saya lulus dalam, dan kemudian memerlukan header.php.
Apa yang saya lakukan adalah semacam orang miskin perlaksanaan sekarang yang berikut.
>> Jika saya membuka header.php, notis bahawa saya telah tidak lagi keras
berkod CS50 perkataan dalam fail header ini.
Saya telah meletakkan ini diakui atrociously bernama fungsi, HTML aksara khas,
di sana.
Tetapi melihat apa yang saya lakukan.
Saya ada HTML terbuka.
Saya kemudian mempunyai kepala terbuka dan tajuk terbuka.
>> Dan kemudian di dalam tajuk ini terbuka dan tag penutup, saya mempunyai sedikit kod PHP.
Dan ini adalah baik tetapi sintaksis, yang hanya berarti echo keluar.
Secara harfiah berarti this-- echo following-- yang
tetapi ini adalah lebih seksi untuk menulis.
Echo keluar tajuk yang telah diluluskan pada.
>> Tetapi apa yang anda berfikir HTML char khas adalah semua tentang,
terutamanya jika anda mempunyai pengalaman HTML terlebih dahulu?
Apa aksara mungkin berbahaya untuk lulus dalam ke halaman
di mana anda secara dinamik menghasilkan Laman web dengan kod seperti ini?
Biar saya pergi ke fail ini, versi dua, dan melihat apakah saya tidak boleh menyebabkan ini.
>> Versi kedua adalah ini.
Dan memperhatikan segala sesuatu adalah baik, bekerja dengan baik.
Namun bolehkah saya masuk ke index.php dan Saya ditentukan bahwa judul halaman saya
bukan CS50.
Ia adalah kurungan terbuka skrip amaran hello world, kutip dekat,
kurung dekat, titik koma, kurungan terbuka, skrip palang.
>> Script, seperti yang akan kita akhirnya lihat, tag
bahawa anda boleh gunakan untuk penggunaan lain bahasa pengaturcaraan yang dikenali sebagai
JavaScript dalam halaman web.
Dan kini melihat logik di sini.
Berikut adalah kunci yang dipanggil tajuk.
Berikut adalah nilai itu lama gila sekarang.
>> Tetapi jika saya pergi ke pembantu page- atau lebih tepatnya, halaman tajuk,
Saya memanggil fungsi ini pada tajuk yang pertama.
Jadi jika saya sekarang muat semula laman ini, saya melihat ini, yang kelihatan tidak masuk akal,
tapi aman.
Ia hanya kelihatan bodoh.
>> Tetapi kira bukan Saya sudah lupa ini.
Dan tandakan kata-kata saya, beberapa bukan sifar Anda akan lupa untuk melakukan ini
dan anda akan mendapat beberapa rajin pelajar atau rakan datang
kepada anda di pameran CS50 atau tanpa nama pada waktu malam mengaduk-aduk di laman web anda
dan pada dasarnya suntikan kod tanpa pengetahuan anda ke laman web anda
entah bagaimana.
>> Kerana jika saya hanya meludah keluar tajuk di sini dan tajuk
besar-- baik, jika tajuk harfiah kelihatan seperti ini dan PHP
sebagai bahasa yang boleh meludah daripada bahasa teks yang lain,
ini benar-benar akan untuk menggantikan tag ini dengan,
sudah tentu, apa yang saya meletakkan di tempat lain.
>> Jadi jika saya sekarang pergi di sini dan kembali selepas kehancuran mekanisme-mekanisme keselamatan,
sekarang saya mempunyai hello dunia di sini.
Sekarang bukan semua yang besar dari berurusan, tetapi anda boleh melakukan sesuatu
sedikit lebih berbahaya di sini, seperti ada
tags-- lain seperti yang kita akan melihat sekali kita berbelanja lebih banyak masa di JavaScript-- seperti lokasi
dot href mendapat, kutipan, tanda kutip, HTTP business.com, tetapi yang bertentangan dengan yang
dari hari yang lain.
Dan kini anda boleh mendorong web halaman untuk benar-benar pergi segera
ke laman web ini di sini.
>> Dan sebenarnya, saya tidak mahu bahkan pergi ke business.com
kerana saya tidak mahu tahu apa itu.
Tetapi ini juga akan mencetuskan kod yang akan disuntik ke dalam halaman ini.
Jadi, ini adalah hanya untuk mengatakan bahawa walaupun kami memperkenalkan super awal pada beberapa
struktur ini lebih kompleks, itu semua bagi suatu tujuan untuk memastikan
bahawa kod anda tidak dieksploitasi.
>> Jadi sekarang versi yang ketiga di sini.
Ini semakin lebih menarik sedikit.
Saya tidak benar-benar like-- bahagian dubur saya
semakin sedikit terganggu oleh Ternyata aku telah fungsi yang dipanggil
RenderHeader dan RenderFooter yang hampir sama.
Jadi ia berlaku kepada saya, mengapa tidak melakukan Saya parameterize fungsi-fungsi ini
menjadi hanya satu yang disebut menyebabkan, telah ia mengambil hujah kedua
seperti nama template, final untuk render-- sama ada header atau footer?
Dan kemudian pilihan, jika saya ingin untuk lulus dalam beberapa pasangan nilai kunci
seperti yang saya lakukan untuk judul untuk header tetapi tidak untuk footer,
Saya boleh melakukan itu.
>> Dan sekarang jika saya masuk ke myspace.png, itu kompleks yang lebih sedikit.
Dan aku akan melambai tangan saya di butiran, tetapi ia hanya satu fungsi.
Jadi itu adalah satu langkah ke arah reka bentuk yang lebih baik.
>> Kita boleh mengambil langkah ini satu lagi.
Jika saya pergi ke keempat saya versi ini, perhatikan sekarang
bahawa aku melakukan sesuatu yang baik bahkan lebih samar.
Dan saya tahu ini adalah banyak untuk menyerap sekaligus,
tetapi kami hanya jenis dari membersihkan keadaan.
Kini saya meletakkan penolong-penolongku file ke dalam folder yang dinamakan
termasuklah- hanya sewenang-wenangnya nama di mana saya ingin menempatkan barang-barang
yang saya mahu dan kemudian termasuk- sisa ini adalah sama.
>> Tetapi jika saya melihat sekarang dalam gedit, notis bahawa saya telah mendapat menghapuskan
semua fail-fail yang lain dan saya sudah menggerakkan mereka, sebagai contoh, ke sini.
Dan kemudian dalam template, Saya mempunyai ini di sini, juga.
Dan jadi ini semua sekarang ke arah langkah yang menggunakan corak reka bentuk yang lebih baik.
Dan kami sangat cepat akan menjauh
daripada fungsi default PHP, yang kita mulai di sini dengan,
di mana anda hanya bercampur PHP, dan HTML, dan CSS anda,
dan anda hanya meludah keluar dan anda pergi tentang cara anda.
Ia tidak akan menjadi sangat dipertahankan.
Sama seperti dalam C, kita mula menggunakan beberapa fail dan beberapa fungsi
dan perkara-perkara pemfaktoran yang keluar.
Kami akan melakukan perkara yang sama di sini.
Dan sebenarnya, dalam kelima dan terakhir versi di sini, saya telah melakukan satu perkara yang lain.
Anda juga boleh menggunakan dot dot, yang, lagi, hanya dalam direktori induk.
Untuk keselamatan yang lebih sedar, kerana jika saya melihat mendengar
di sini untuk kelima dan versi terakhir, notis bahawa saya mempunyai satu direktori di sini disebut
awam, dan kemudian pada tahap yang sama, boleh dikatakan,
Saya ada termasuk dan template dan kemudian fail teks readme.
>> Dan sebab saya telah terstruktur ia suka this-- dan begitu banyak web
tuan rumah, terutama yang $ 5 yang bulan atau orang $ 10 per bulan,
jika anda pernah mempunyai salah satu dari ini services-- apa yang begitu banyak dari mereka
adalah mereka hanya mengharapkan anda untuk membuang semua fail anda ke dalam satu direktori,
seperti yang kami lakukan sudah dengan ini contoh yang pertama.
>> Tetapi sebaik sahaja anda mula membina lebih laman web canggih yang hanya menyimpan
data yang anda mahu ketahui dan fail anda mahu ketahui sebenarnya mengatur hal-hal
benar dan dengan keselamatan yang lebih kesedaran dalam fikiran boleh
kita mula mempertahankan terhadap semua rakan-rakan
bahawa anda mempunyai sama ada di dalam atau di luar dari kelas ini yang,
sebaik sahaja anda mula membuat program sendiri di web,
akan memulakan memetik kepadamu dan kepada mereka.
>> Dan dengan itu kita akan melihat akhirnya pada reka bentuk ini.
Ini hanya gambar yang menggambarkan berikut.
Kami akan meletakkan semua kami pengaturcaraan logik dalam satu atau lebih fail,
dan kita akan hanya mula memanggil orang-orang pengawal.
Ia adalah di mana otak laman web kami adalah benar-benar.
Kemudian kita akan mempunyai pandangan, dan pandangan
adalah seperti mudah kerana hanya terpisah files-- disebut template, sering.
Mereka hanya mempunyai estetika halaman saya,
apa yang saya ingin halaman untuk melihat like-- warna dan susun atur
dan kedudukan semua variabel.
>> Dan kemudian lebih menarik bahawa kita akhirnya akan sampai ke
adalah model, yang akan menjadi hanya perkataan kita menampar pada teknologi lain
yang kita bawa ke dalam gambar, seperti pangkalan data sebenar,
supaya apabila anda mahu untuk menyimpan maklumat,
Anda tidak hanya menghantar e-mel kepada pengawas atau kepada diri sendiri,
Anda benar-benar menyimpan dalam database menggunakan bahasa yang lain yang dikenali sebagai SQL.
Dan dengan itu kita akan meninggalkan di sini hari ini dan memilih dengan ini pada hari Rabu
dan memperkenalkan pangkalan data itu.
>> [MUSIK BERMAIN]