>> DOUG LLOYD: Jadi kami telah melakukan banyak kerja dalam C,
dan C adalah benar-benar sejuk bahasa kerana ia memberi anda
keupayaan untuk menyelam benar-benar peringkat rendah ke dalam program anda.
Kita dapat melakukan perkara-perkara seperti benar-benar minit sebagai memanipulasi
bait individu ingatan.
Ingat bahawa petunjuk yang benar-benar membenarkan kita itu.
>> Tetapi adakah kita sentiasa perlu mempunyai bahawa tahap mewah sebutir detail
dalam program-program kita?
Mungkin tidak, bukan?
Dan jika kita akan mempunyai keseimbangan antara menjadi
dapat berbuat benar-benar, benar-benar perkara minit dan benar-benar, benar-benar
perkara-perkara besar yang kita tidak perlu berfikir kira-kira, kita tidak perlu untuk melaksanakan
idea-idea yang sangat besar jika mereka yang telah dibina dalam untuk kita,
amnya untuk membina besar program atau projek-projek besar,
kita mungkin akan sesat di sebelah kerana telah barangan bahasa yang lebih dibina pada
untuk kita, daripada harus yang barangan peringkat rendah.
Dan di mana PHP benar-benar datang dalam.
>> Kini, salah satu daripada sebab bahawa kita mengajar PHP dalam CS50
adalah bahawa ia banyak diilhamkan oleh C. Dan sebenarnya, pada pendapat saya,
terdapat dua bahasa leluhur yang
yang sangat biasa pada masa kini.
C dan LISP.
Dan mereka bahasa leluhur kerana setiap program moden yang lain
bahasa yang telah dibangunkan sejak itu diilhamkan
oleh satu atau sintaksis yang lain.
PHP adalah sangat serupa sintaksis kepada C, manakala bahasa-bahasa seperti Skim ini,
sebagai contoh, yang anda mungkin pernah mendengar,
yang banyak diilhamkan oleh bahasa dipanggil LISP, iaitu bahasa yang lebih tua.
>> Jadi sebab kita mengajar PHP dalam CS50 adalah bahawa,
dengan mengetahui C sebagai asasnya seperti yang anda lakukan pada masa ini,
mengambil PHP, yang memberikan anda keupayaan untuk melakukan sesuatu tahap yang lebih tinggi
daripada C tidak, tidak bahawa banyak halangan,
kerana anda sudah mempunyai Idea asas sintaks.
C telah wujud selama hampir 45 tahun pada ketika ini.
PHP telah wujud selama kira-kira 20 tahun.
Dan dalam yang 25 tahun di antara, pengaturcara
menentukan bahawa mereka akan lebih agak mempunyai kebolehan tahap yang lebih tinggi,
dan kesilapan dan perjuangan daripada 20 tahun di antara
membawa kepada PHP dan bahasa moden yang lain.
>> PHP ini pilihan yang hebat untuk bahasa untuk perisian
yang allow-- untuk perisian bahawa- di mana anda
perlu melakukan perkara-perkara yang di C sebenarnya rumit.
Jadi, sebagai contoh, bekerja dengan tali dalam C
adalah sangat rumit, kerana seperti yang kita tahu, tali dalam C
benar-benar hanya tatasusunan aksara.
Ia bukan satu terbina dalam jenis data.
Atau mungkin lebih asas, sesuatu yang kita tidak pun buat di dalam C,
bagaimana jika anda perlu lakukan beberapa rangkaian komputer?
Semua betul?
>> C mempunyai keupayaan untuk melakukannya, tetapi ia begitu batin dan begitu sukar untuk benar-benar melakukan.
Bukankah lebih baik jika bahasa mempunyai cara yang terbina dalam mudah
untuk melaksanakan rangkaian?
Dan PHP adalah bahasa yang membuat itu, atau memudahkan itu, agak sedikit lebih.
Seperti yang saya katakan, PHP adalah sangat banyak diilhamkan oleh C. sintaks ini adalah sangat serupa.
Dan oleh itu diharapkan dapat membuat Peralihan dari satu kepada yang lain
sedikit lebih lembut daripada beberapa bahasa lain mungkin.
>> Untuk mula menulis PHP, hanya membuka fail dengan sambungan fail .php.
Secara teknikal ini tidak sebenarnya yang diperlukan,
tetapi jika anda mahu perkara seperti sintaks menonjolkan dalam IDE, jadi jenis yang
nama, atau nama-nama pembolehubah, fungsi, anda tahu, kata kunci bahasa
diketengahkan dalam warna tertentu, biasanya anda
mahu menamakan fail anda dengan sambungan fail tertentu.
Jadi kita telah dinamakan fail kami dengan .php yang lanjutan, tetapi kemudian juga dengan PHP,
semua kod PHP yang kita menulis dalam bahawa fail perlu disertakan dalam PHP ini
pembatas yang kita lihat di sini pada skrin.
Tanda kurung sudut? Php untuk bermula.
Kemudian kita menulis semua PHP kami kod yang kita mahu di antara.
Dan selepas itu?
kurung sudut untuk menutup.
>> Jika kita tidak melakukan ini, maka apa yang akan berlaku?
Ia tidak akan crash.
Ia tidak akan benar-benar merosakkan program kami.
Tetapi ia tidak akan mempunyai yang bermaksud bahawa kita mahu.
Apa yang akan berlaku, benar-benar, bahawa apabila kita mencuba dan menjalankan program ini,
segala-galanya tidak antara mereka pembatas akan dicetak kata demi kata.
Ia tidak akan benar-benar melaksanakan kod,
ia akan hanya mencetak kata demi kata.
>> Sekarang mengapa berlaku?
Jadi C adalah apa yang dikenali sebagai bahasa yang disusun.
Anda mungkin biasa dengan langkah membuat program anda,
menukarkan fail .c dan fail h menjadi laku tunggal dengan membuat,
khususnya menggunakan Dilafaz sebagai pengkompil kami.
PHP, walaupun, tidak mempunyai persamaan ini.
PHP adalah apa yang dipanggil bahasa ditafsirkan.
Dan apa maksudnya?
>> Nah, ini bererti kita tidak perlu menukar kod sumber kami kepada sifar dan satu
terlebih dahulu.
Sebaliknya, ada program, yang juga dikenali sebagai
PHP, yang memahami PHP dan jenis boleh membuat ia dengan cepat.
Bukan itu benar-benar tepat tepat, tetapi ia adalah satu analogi yang cukup baik
apa yang berlaku.
Ia mentafsirkan sifar dan orang-orang yang dengan cepat.
Dan jadi jika ia tidak tahu bagaimana untuk memproses sesuatu,
jika ia tidak tahu bagaimana untuk proses PHP, anda mungkin
mahu meletakkan teks yang di sana, bukan?
>> Anda mungkin mahu meletakkan kod dalam di sana, walaupun ia bukan antara PHP--
yang pembatas PHP.
But-- supaya ia tidak akan untuk memadamnya untuk anda,
ia hanya akan pada dasarnya membuangnya.
Jadi ia akan mencetak ia keluar ke skrin.
>> Ini seolah-olah seperti ia yang tidak baik perkara, tetapi sebenarnya ia
akan menjadi benar-benar perkara yang baik, kerana kita akan
lihat apabila kita bercakap mengenai Pembangunan web PHP,
kerana ia bermakna kita boleh diselang seli PHP dan HTML.
Kita boleh menggunakan mereka bersama-sama untuk membuat laman web yang lebih dinamik.
Tetapi lebih kepada yang dalam video pada PHP pembangunan web.
>> Jadi apa sintaks PHP?
Itulah apa yang video ini adalah semua tentang.
Mari kita bercakap mengenainya.
>> Jadi untuk memulakan, pembolehubah.
PHP pembolehubah wujud.
Terdapat hanya dua besar perbezaan dari C.
Yang pertama adalah bahawa tidak tidak specifier jenis.
Kami tidak perlu mengatakan int, char, float, semua barangan itu.
Kami tidak perlu berbuat demikian lagi.
PHP adalah bahasa moden.
Ia boleh memikirkan apa yang anda cuba untuk melakukan atau membuat terbaik
meneka tentang apa yang anda cuba lakukan.
Jadi, itu cukup baik.
>> Perkara yang lain adalah bahawa semua pembolehubah nama perlu bermula dengan tanda dolar.
Itu hanya sesuatu untuk mendapatkan digunakan untuk.
Ia sedikit pelik, kerana ia begitu bahawa PHP dapat memahami
apa yang berubah-ubah dan apa yang tidak.
Jadi setiap nama pembolehubah bermula dengan tanda dolar.
Jadi, dalam C kita boleh berkata sesuatu seperti ini, int x = 54.
Kami tidak perlu berbuat demikian lagi dalam PHP.
Kami hanya boleh berkata $ x = 54.
Dan kita boleh berkata, sebagai contoh, dalam C, jika kita telah paun-termasuk h CS50
fail header, kita boleh mengatakan rentetan frasa = "Ini adalah CS50."
Kami tidak perlu berbuat demikian dalam PHP, walaupun.
Kami hanya boleh berkata $ frasa = "Ini adalah CS50."
Dan sebenarnya, tali kini terbina dalam jenis data dalam PHP,
atau lebih tepat PHP memahami apa tali adalah.
Ia adalah berasingan daripada array watak-watak seperti ia adalah dalam C.
Semua kegemaran anda kenyataan bersyarat dari C
masih tersedia untuk anda gunakan.
Jadi tidak ada peralihan besar di sana.
Kita boleh iaitu- kita boleh mempunyai jika kenyataan seperti ini.
jika $ y 43, atau $ z = 15.
Jadi, itu agak mudah.
Kita boleh mempunyai jika dan lain.
Kita boleh mempunyai jika dan lain jika.
>> Dan melihat sesuatu cukup baik di sini, dan ini
adalah jenis salah seorang daripada mereka kelebihan PHP berbanding C, notis
apa fungsi kita tidak menggunakan di sini?
Kami menggunakan == untuk membandingkan berubah-ubah, nama $, untuk rentetan.
Kami tidak dapat berbuat demikian dalam C, bukan?
Kami terpaksa menggunakan fungsi yang dipanggil StrComp atau StrEndComp atau mana-mana
sepupu yang berkaitan.
>> Dan sebagainya sudah kita lihat kelebihan ini.
Kami tidak perlu melakukan sesuatu sebagai bodoh atau mungkin unintuitive
sebagai memanggil fungsi yang dipanggil StrComp jika saya hanya mahu menguji
sama ada nilai yang sama dengan rentetan.
Saya hanya boleh menggunakan sama sama, seperti saya boleh berbuat apa-apa.
Jadi ada kelebihan.
>> Kadang-kadang, dengan cara itu, anda mungkin melihat lain jika sebagai satu perkataan, elseif.
Dan tidak apa-apa dalam PHP juga.
Jadi kadang-kadang anda mungkin melihat bahawa.
Ia bukan kesilapan menaip.
PHP sebenarnya memahami elseif.
Saya tidak tahu mengapa mereka memutuskan untuk melaksanakan itu,
tetapi seperti yang kita lihat banyak kali sepanjang video kami setakat ini,
kita pengaturcara senang jika kita boleh melakukan sesuatu dengan cepat,
supaya menghapuskan ruang yang nampaknya satu kelebihan yang besar.
>> Jadi itu jika dan elseif.
Kami juga mempunyai pengendali pertigaan, ingat tanda tanya kolon,
untuk bentuk benar-benar pendek jika lain atau bersyarat bercabang.
Dan nampaknya, dalam hal ini, apa yang kita cuba lakukan di sini
adalah menetapkan pembolehubah $ surat sama ada benar atau palsu,
bergantung kepada sama ada $ var adalah watak abjad.
Jadi ini adalah agak serupa dengan isalpha yang kita sudah biasa dengan dari C.
Ini adalah jenis yang setara dengannya dalam PHP.
Majlis tersebut nampaknya dipanggil ctype_alpha,
tetapi itulah bagaimana kita melakukannya dalam PHP.
Jadi semua ini akan menjadi yang, jika $ var sepucuk surat, surat $ benar.
Jika $ var tidak surat, $ surat adalah palsu.
>> Kami juga mempunyai kenyataan suis masih.
Kita masih ingat orang-orang dari C juga.
Di bahagian paling sana, itu cara kita menjalankan sesuatu seperti mendapatkan int atau mendapatkan tali.
Jadi PHP mempunyai yang dibina.
Kita tidak memerlukan perpustakaan CS50 lagi.
Kami hanya boleh menggunakan fungsi readline itu.
Apa yang akan anda lakukan adalah cetak daripada mesej, "negeri Anda,
sila, "dan kemudian berkelip segera menunggu pengguna untuk input
beberapa maklumat.
Sekarang perhatikan apa lagi boleh kita lakukan dengan suis.
Jika anda telah menggunakan sebelum ini, mana yang diketahui suis yang
adalah terhad cukup banyak kepada integer dan watak-watak, tetapi kini kita boleh menggunakan tali.
Dan sebenarnya, penyata suis dalam PHP adalah agak sedikit lebih fleksibel
daripada sepupu dari C.
Gelung.
Sama seperti conditional, semua kegemaran lama anda masih ada.
Kami mempunyai manakala gelung yang mengira dari 1 hingga 100 dalam kes ini.
Kami lakukan semasa gelung yang mengira dari 1 hingga 100,
dan kita perlu untuk gelung yang mengira dari 1 hingga 100.
Jadi tidak lonjakan besar di sana.
Sintaks ini agak banyak perkara yang sama,
kecuali sekarang kita menggunakan dolar tanda berubah-ubah dan bukannya
mengisytiharkan pembolehubah integer atau sesuatu seperti itu bagi kaunter-kaunter kami.
>> Berikut adalah di mana perkara mendapatkan banyak lebih baik daripada C, walaupun.
Tatasusunan.
Jadi ingat ketika kami berada bercakap tentang C, untuk
untuk kami berkembang dan mengecut set maklumat,
kami perlu menyusun lalai idea ini daripada senarai berpaut,
kerana tatasusunan C telah ditetapkan dalam saiz.
Kami tidak dapat mengecilkannya.
Kami tidak dapat berkembang mereka.
Kami terpaksa mengagihkan semula memori dan melakukan segala kegilaan ini
atau menggunakan senarai berkaitan, yang mengambil cukup ruang sedikit lebih.
Tetapi dalam PHP, tatasusunan adalah tidak tetap dalam saiz lagi.
Mereka boleh membesar dan mereka boleh mengecut.
Jadi sekali lagi, ini 20 tahun yang wujud antara keluaran pertama C
dan yang pertama melepaskan PHP, kami mengambil keputusan itu, anda tahu,
ia akan menjadi benar-benar hebat jika kita boleh melakukan ini.
Dan supaya kami melaksanakan ini.
>> Jadi tatasusunan PHP tidak tetap dalam saiz, dan kerana PHP tidak benar-benar
mempunyai programmer hadapan menghadap tanggapan jenis,
kita boleh mencampurkan jenis data dalam tatasusunan kita juga.
Oleh itu, kita tidak perlu menggunakan semua integer atau semua pusat terapung,
kita boleh mempunyai campuran semua jenis yang berbeza dalam pelbagai tunggal.
Mengisytiharkan array adalah agak mudah.
Ia sama seperti apa-apa ubah lain.
$ nums = array (1, 2, 3, 4), array yang fungsi
yang dibina ke dalam PHP yang akan mewujudkan pelbagai untuk anda.
Ini mewujudkan pelbagai empat nilai, nombor dalam kes ini, yang dipanggil $ nums.
Dan ada lebih daripada satu cara untuk melakukannya.
Dan kita akan melihat ini banyak dalam PHP.
PHP telah dibangunkan oleh yang berbeza orang dan tumbuh dan berkembang dan tumbuh.
Ada biasanya tidak hanya dua atau tiga cara untuk melakukan sesuatu dalam PHP,
ada biasanya seperti 10 atau 20.
Berikut adalah hanya satu lagi biasa cara untuk mengisytiharkan array.
$ nums = kurungan 1, 2, 3, 4 persegi.
Jadi ini adalah jenis yang sama dengan sudut C br-- notasi kerinting, bukan. $ -
atau ia akan menjadi nums int persegi kurungan sama kerinting 1, 2, 3, 4.
Dalam PHP ia $ nums = persegi kurungan 1, 2, 3, 4.
Tetapi kedua-dua contoh di sini memberikan saya pelbagai empat dalam kes ini integer.
>> Bagaimana jika saya mahu jelujur sesuatu pada masa ini?
Well, saya hanya boleh berkata $ nums 4, yang sekali lagi, kami masih mengira dari 0 di sini
dalam PHP, akan menjadi yang kelima elemen array.
Saya hanya boleh mengatakan bahawa.
Saya tidak akan menderita seg yang kesalahan, kerana pelbagai saya hanya
akan berkembang untuk menampung itu.
Itu cukup bagus, bukan?
Dan sebenarnya, saya tidak perlu menentukan di mana saya mahu untuk meletakkan ia.
Saya hanya boleh mengatakan ini dan hanya jelujur betul ke akhirnya,
atau saya boleh walaupun hanya mengatakan $ nums 20 atau 1,000.
Ia tidak benar-benar perkara itu.
Ia masih hanya akan jelujur betul ke akhirnya.
>> Jadi saya boleh berkembang, dan as-- kami tidak akan menutupinya di sini,
tetapi saya boleh menyambat atau jalur unsur-unsur daripada array juga,
dan lokasi akan mengecut untuk menampung bahawa ruang kini tiada atau kosong.
Ada satu lagi cara untuk jelujur sesuatu ke pelbagai,
yang merupakan fungsi yang dipanggil array_push.
Jadi sekali lagi, hanya idea ini menjadi dapat melakukan perkara-perkara pelbagai cara.
Oleh itu, kita telah lihat tiga cara yang berbeza sekarang untuk jelujur elemen lain ke array.
Jadi ini menambah unsur lain hingga akhir array $ nums.
Dan kita boleh mencampur jenis data kami.
Jadi saya boleh mempunyai pelbagai tidak 1, 2, 3, 4, tetapi 1, benar, 3, 4,
mana benar adalah Boolean, dan kemudian jika saya ingin jelujur pada unsur lain
kepada pelbagai itu, mungkin tali, rentetan "lima," Saya boleh melakukannya.
Dan kini pelbagai saya akan 1, benar, 3, 4, lima.
Lima perkataan, bukan integer 5.
Jadi banyak fleksibiliti sana.
>> Fleksibiliti mendapat lebih baik, walaupun,
kerana PHP mempunyai sokongan untuk sesuatu dipanggil pelbagai bersekutu.
Dan kita semacam samar-samar bercakap tatasusunan tentang bersekutu dalam C
dalam konteks jadual hash, kerana apa array bersekutu adalah benar-benar semua
tentang membuat kunci pemetaan pasangan nilai.
Dan dalam kes ini, jika keys-- kita sudah biasa dengan pameran dari C,
kunci adalah nombor indeks.
0, 1, 2, 3.
Dan nilai-nilai adalah apa yang kita mendapati bahawa array 0, array 1, array 2, dan sebagainya.
Jadi kunci adalah indeks, dan nilai-nilai yang
apa yang ada di lokasi itu pelbagai, ditentukan oleh indeks itu.
>> Tetapi dalam PHP, kita tidak perlu melakukan ini tanggapan array 0, array 1, array 2
lagi.
Kami kini boleh menggunakan kata-kata sebenar untuk memetakan kunci kepada nilai-nilai.
Oleh itu, saya boleh mengatakan sesuatu seperti ini.
Saya boleh mencipta array menggunakan sintaks kurungan persegi seperti berikut.
$ pizza = kurungan persegi "keju" dan kemudian
seperti ini dua anak panah notasi, 8.99, "pepperoni," arrow 10.99-- 9.99,
dan sebagainya.
Dan jadi apa yang berlaku di sini?
Apa yang saya benar-benar melakukannya?
Saya mewujudkan utama pemetaan pasangan nilai.
Jadi, daripada berkata, sebagai contoh, pizza 0, keping 1, pizza 2,
Sekarang saya boleh mengatakan pizza keju, pizza peperoni,
dan merujuk kepada nilai-nilai berkaitan dengan mereka.
>> Jadi di sini adalah kunci kami dalam warna hijau.
Keju, peperoni, sayur-sayuran, ayam kerbau.
Berikut adalah anak panah yang membuat kekunci ini pemetaan pasangan nilai.
Dan maka di sini adalah nilai-nilai di lokasi itu pelbagai.
Oleh itu, ia seperti mengatakan pelbagai 0 sama dengan 8.99.
Yang penting ialah 0.
Nilai adalah 8.99.
Sekarang saya boleh mengatakan keju pelbagai, atau dalam hal ini kes pizza keju, keju adalah kunci,
dan apa yang saya dapati di keju pizza adalah 8.99.
Itulah nilai yang saya temui di sana.
>> Jadi saya boleh mengatakan perkara yang suka. $ pizza keju = 7.99.
Katakanlah saya mempunyai jualan.
Saya hendak dis-- Saya mahu gugurkan harga pizza keju.
Atau saya boleh menggunakan sayur-sayuran pizza sebagai sebahagian daripada syarat,
atau saya boleh menambah elemen baru kepada saya pelbagai, sama seperti yang saya boleh lakukan sebelum ini.
Saya boleh menambah elemen baru ini pelbagai bersekutu dengan kunci "bacon"
dan nilai 13.49.
>> Tetapi ini jenis memperkenalkan masalah, jika anda berfikir tentang hal itu untuk kali kedua.
Bagaimana kita akan melelar melalui pelbagai ini?
Betul?
Dalam C, kita hanya akan mempunyai untuk gelung, biasanya, yang
akan berjalan dari 0 kepada saiz array tolak 1.
Array mempunyai n unsur-unsur dalam pada itu, indeks sah 0 n tolak 1.
Oleh itu, kita boleh menggunakan untuk gelung untuk langkah melalui setiap elemen tunggal.
>> Tetapi itu tidak benar-benar kes itu lagi, bukan?
Sekarang di mana kita mempunyai pasangan nilai utama pemetaan di mana kunci adalah kata-kata,
bagaimana kita melelar atas semua perkataan?
Well, nasib baik, PHP mempunyai cara untuk berurusan dengan ini juga,
dan dengan itu kita akan melompat ke belakang untuk gelung untuk kali kedua
untuk memperkenalkan sejenis keempat gelung yang wujud dalam PHP dipanggil gelung foreach.
Dan apa gelung foreach dilakukan adalah ia pada dasarnya idea yang sama.
Anda boleh menggunakannya untuk apa-apa jenis tatasusunan.
Tetapi ia adalah pada dasarnya idea sama untuk gelung,
kecuali daripada menggunakan nombor indeks, anda hanya
mempunyai sintaks ini pelik di mana anda memanggil setiap elemen tunggal
nama bagi maksud gelung ini.
>> Jadi dalam kes ini, foreach ($ lokasi sebagai $ utama).
Pada asasnya, kerana itu nota komen, bahagian dalam yang gelung foreach,
ia akan pergi ke setiap satu unsur $ array, yang biasanya
akan menjadi pelbagai bersekutu, tetapi benar-benar boleh menjadi apa-apa jenis array
yang anda mahu dalam PHP.
Dan setiap kali bahawa dalam untuk gelung anda mungkin
berkata $ lokasi kurungan persegi $ i, anda hanya boleh mengatakan $ utama.
Supaya $ utama menjadi alias untuk setiap indeks bersekutu pelbagai PHP anda,
dan supaya anda boleh menggunakannya seperti itu.
>> Jadi, sebagai contoh, kami telah kini mendapat pelbagai pizza kami.
Saya telah jenis terletak ia ke penjuru terdapat
supaya kita boleh menggunakannya untuk melakukan contoh cepat.
Jika saya katakan foreach ($ pizza sebagai $ pizza), baik, apa yang berlaku?
Well, saya akan melelar melalui setiap unsur tunggal pada array $ pizza,
dan dengan berbuat demikian, saya akan memanggil setiap elemen, apabila saya di dalam
badan itu untuk gelung, $ pizza.
>> Jadi itulah semacam berdiri dalam, ingat, bahawa $ pizza
adalah berdiri dalam kerana mengatakan $ pizza kurungan persegi $ i
jika kita menggunakan untuk gelung, di mana kita boleh pergi dari $ i = 0 hingga, dalam kes ini,
$ i = 3.
Jika kita tidak mempunyai pasangan nilai utama di sini, ini akan menjadi unsur 0, 1, 2, 3,
dan kami akan menggunakan untuk gelung pergi $ pizza 0, $ pizza 1, $ pizza 2,
$ pizza 3.
Jadi sekarang hanya $ pizza menggantikan untuk bahawa kunci individu.
>> Jadi apa yang ini akan mencetak?
Saya mencetak $ pizza.
Apa yang saya akan mencari at-- jika saya mencetak $ pizza, $ i?
Betul?
Jika saya akan mencetak unsur-i pizza,
apa yang saya akan mencetak?
Saya akan mencetak nilai-nilai di lokasi itu, bukan?
Seperti jika kita telah melakukan ini dalam konteks C,
kita tidak biasanya menggunakan iterator kami berubah-ubah, int i = 0, i adalah kurang daripada 3,
i ++, untuk mencetak 0, 1, 2, 3.
Kami mencetak pelbagai 0, pelbagai 1, array 2, array 3.
Dan jadi apa ini mencetak keluar ialah ini.
Ia adalah senarai harga.
8.99, 9.99, 10.99, 11.99.
>> Sekarang nota yang cepat di sini.
A gelung foreach tidak semestinya mencetak perkara dalam perintah.
Ia tidak dijamin.
Ia biasanya tidak.
Ia biasanya berdasarkan kepada susunan dalam unsur-unsur ditambah kepada pelbagai,
jadi hanya menanggung bahawa dalam fikiran.
Ia mungkin tidak teratur.
Tetapi gelung foreach akan melelar di setiap elemen tunggal
array yang berkenaan.
Dalam kes ini, sekali lagi, lokasi iaitu $ pizza.
>> Saya boleh menukar sintaks, walaupun, jika Saya mahu kedua-dua utama dan nilai.
Daripada mengatakan $ pizza sebagai $ pizza, saya boleh katakan ini.
Dan jika anda melihat apa yang saya telah diserlahkan dengan warna hijau di sini,
ia kelihatan seperti kunci pemetaan pasangan nilai.
Dan jadi jika atasmu, walaupun anda tidak sepenuhnya pasti apa yang ia akan lakukan,
anda mungkin boleh meneka yang $ topping akan
menjadi kunci dalam kes ini dan $ harga akan menjadi nilai.
Jadi, saya menggantikan kini setiap elemen sebanyak $ pizza sebagai pasangan nilai utama,
dan sekarang saya boleh merujuk kepada kunci dan nilai, yang mungkin sangat berguna,
sebagai contoh, seperti berikut.
>> "A keseluruhan" - ini adalah banyak percetakan berlaku sini-- "keseluruhan A"
topping "pizza kos $" harga, dan kemudian Saya mencetak tempoh dan garis sendeng terbalik n.
Oleh sebab itu, notis lagi saya mempunyai akses kepada kunci, $ topping, dan nilai, $ harga.
Jadi, anda boleh meneka apa ini akan mencetak?
Ada banyak kenyataan cetak, tetapi terdapat hanya satu garis sendeng terbalik n,
jadi ia akan mencetak sesuatu pada yang entire-- pada baris kod.
>> Jika saya boleh merujuk kepada kunci dan nilai, maka sekarang,
bukan hanya dapat untuk mencetak harga,
Saya boleh mencetak sesuatu seperti ini.
"A pizza keju keseluruhan kos $ 8,99."
Dan sekarang saya menggunakan semua keys-- yang keju, peperoni, sayur-sayuran,
kerbau chicken-- dan nilai-nilai.
8.99, 9.99, 10.99, 11.99 Jadi itu hanya cara yang berbeza
untuk melakukan gelung foreach bahawa bukan hanya memberi anda akses kepada nilai-nilai,
ia hanya memberikan atasmu, ia memberi anda akses kepada kunci dan nilai.
>> Jadi mencetak maklumat.
Saya sudah melakukannya beberapa cara yang berbeza, anda mungkin akan melihat.
Dua fungsi kami telah terutamanya dilihat adalah cetak dan gema.
Dan untuk cukup banyak tujuan dan tujuan, mereka betul-betul sama.
They're-- ada yang sangat halus Perbezaan itu bukan walaupun bernilai
masuk ke dalam, tetapi pada dasarnya di mana-mana anda boleh menggunakan cetak anda mungkin boleh menggunakan
echo juga.
>> Dan itu bukan hanya dua.
PHP mempunyai banyak berbeza cara-cara untuk mencetak perkara keluar,
dan ia juga mempunyai cara-cara untuk mengintegrasikan pembolehubah ke tengah-tengah tali.
Jadi ingat dari C, adakah anda ingat apa fungsi
kita boleh menggunakan untuk menggantikan pembolehubah ke dalam perkara yang kita mahu untuk mencetak?
Anda mungkin menggunakan ini berfungsi dengan agak banyak.
printf, bukan?
Jadi ini adalah apa yang kita ada sebelum ini di dalam daripada konteks gelung foreach kami.
Kami mempunyai lima mencetak penyata yang berasingan,
kerana itu adalah satu-satunya Cara yang saya benar-benar tahu pada masa itu
bagaimana untuk mencetak mesej.
Saya tidak tahu bagaimana untuk mengintegrasikan $ berubah topping ke dalam kod PHP saya.
Nah, jika saya hanya mengambil meneka liar, printf, ia sebenarnya akan bekerja.
printf adalah fungsi yang boleh saya gunakan dalam PHP, hanya suka saya boleh menggunakannya dalam C.
>> Dan supaya sesuatu seperti ini, printf, sekali lagi, kita sudah biasa dengan itu.
% S pertama digantikan dengan nilai $ topping.
% S kedua digantikan dengan nilai $ harga.
Dan jadi saya interpellating, yang hanya cara yang mewah
untuk mengatakan saya melekat yang pembolehubah ke lokasi itu.
Jadi, saya memasang $ topping mana % s merah dan $ harga di mana% biru s
adalah, dan kemudian saya akan mendapat mesej, "A pizza keju keseluruhan kos $ 8,99."
>> Bukan satu-satunya cara saya boleh melakukannya, walaupun.
Mungkin saya mahu menggunakan kaedah ini.
Ini sebenarnya apa yang paling biasa dipanggil interpelasi berubah-ubah.
Saya boleh menggunakan gema.
Saya boleh menggunakan cetak juga, seperti yang kita akan lihat.
Tetapi apa yang berlaku di sini?
>> Pertama sekali, saya perlu melarikan diri tanda dolar.
Kerana ingat, apabila kita sebenarnya mencetak harga bagi pizza,
Saya sebenarnya pemformatan mereka sebagai angka kewangan dengan tanda dolar.
Tetapi kita menggunakan tanda-tanda dolar juga untuk mewakili nama-nama pembolehubah dalam PHP,
dan khususnya apabila saya menggunakan kaedah ini kerinting
pendakap berubah-ubah kaedah interpelasi, saya perlu
untuk melarikan diri tanda dolar saya supaya ia tidak rasa saya bercakap tentang pembolehubah.
Ia akan benar-benar, literal mencetak tanda dolar.
>> Jadi semacam analogize kepada apa yang anda lihat di hujung sana.
Ia tidak benar-benar cetak garis sendeng terbalik n, bukan?
Ia mencetak watak talian baru.
Ini is-- ia tidak akan cetak tanda dolar garis sendeng terbalik,
ia akan mencetak hanya watak tanda dolar.
Idea yang sama.
Melarikan diri urutan, apa perkara-perkara ini dipanggil.
>> Tetapi notis bahawa saya tidak melakukan apa-apa jenis penggantian% s,
Saya hanya benar-benar memasang dalam pembolehubah ini.
Dan sebagainya dalam this-- apa yang akan berlaku di sini adalah bahawa nilai $ topping-- lagi,
hanya menjaga dengan apa yang kita telah bercakap tentang keju sehingga far-- akan mendapat
dipasang di sana.
Dan $ harga akan menjadi apa sahaja nilai adalah di pizza, tanda kurung siku, keju,
iaitu 8.99.
Dan hal ini juga akan mencetak "A pizza keju keseluruhan kos $ 8,99."
Dan seperti yang saya katakan, saya boleh menggunakan mencetak di sini dan bukannya gema,
dan fungsi yang menjadi cukup banyak sama.
Ia akan mencetak perkara yang sama.
>> Ada satu lagi cara untuk melakukannya, dan ini adalah satu lagi kelebihan
PHP bekerja dengan tali.
Kita boleh melakukan rentetan dinamika.
Kita boleh melakukan ini dalam C, juga, menggunakan fungsi yang dipanggil strcat,
tetapi sekali lagi, kita terpaksa memanggil fungsi yang berasingan.
Ia adalah keadaan kucar-kacir ini keseluruhan yang perlu dilakukan.
Kami terpaksa paun-termasuk string.h.
Ia adalah pengeluaran, bukan?
Tetapi sekarang saya hanya boleh menggunakan operator dot ini untuk merangkaikan tali bersama-sama.
>> Jadi, saya concatenating "A keseluruhan" dan maka apa sahaja nilai $ topping adalah,
dan kemudian yang lain tali, "kos pizza $"
dan kemudian concatenating apa sahaja nilai $ harga adalah,
dan kemudian pada akhir sangat Saya tacking pada tempoh backslash n.
Dan hal ini akan juga mencetak "A keseluruhan" - sekali lagi,
jika kita berbicara mengenai golongan yang pertama unsur yang pizza array--
"A pizza keju keseluruhan kos $ 8,99."
Tempoh, garis sendeng terbalik n, sekali lagi, dengan yang $ topping dan $ harga menggantikannya
untuk apa yang kita telah dinyatakan dalam foreach kami gelung sebagai kunci pemetaan pasangan nilai.
>> PHP boleh mengendalikan fungsi.
Fungsi adalah sejenis penting kepada C, seperti yang kita lihat.
Seperti pembolehubah, kita tidak perlu menentukan jenis pulangan fungsi,
kerana ia tidak benar-benar perkara.
Dan kita tidak menentukan jenis data apa-apa parameter,
kerana mereka tidak benar-benar perkara, seperti yang kita lihat dalam PHP.
Setiap fungsi diperkenalkan dengan kata kunci fungsi.
Itulah bagaimana kita menunjukkan kepada PHP yang apa yang kita sebut sebagai fungsi.
>> Dan kita tidak perlu menangani utama pada semua,
kerana pentafsir, PHP jurubahasa, kerja-kerja dari atas ke bawah,
tanpa mengira.
Jika difikirkannya anda boleh membuat panggilan fungsi, ia akan mempunyai
pergi mencari panggilan fungsi, walaupun ia datang kemudian.
Tetapi ia akan membaca dari atas ke bahagian bawah, jadi kita tidak perlu untuk menentukan,
di sini di mana anda bermula.
Anda bermula di baris 1 anda PHP dan bekerja turun dari sana.
>> Jadi di sini adalah bagaimana kita akan mewujudkan fungsi yang dipanggil hard_square.
Ia nampaknya mengambil masa satu parameter, yang saya memanggil $ x.
Fungsi ini adalah rumit hanya untuk menggambarkan pelbagai perkara.
Kita masih mempunyai nilai-nilai balasan.
Saya menggunakan untuk gelung di sini.
Tetapi ia pada dasarnya hanya, apa ini berjumlah hanya $ x kali $ x.
Apa yang saya lakukan adalah sebenarnya hanya menambah x ke 0 x kali atau $ x kepada sifar $ x masa.
Tetapi ia berkesan betul-betul sama dengan mendarabkan $ x kali $ x.
Saya masih boleh kembali nilai, dalam ini $ keputusan kes,
dan saya telah membuat fungsi dalam PHP.
>> Berikut adalah bagaimana anda boleh menggunakannya dalam konteks.
Jadi mungkin saya di dalam beberapa fail PHP.
Perhatikan biru sana yang Saya telah menggunakan pembatas PHP saya,
kurung sudut tanda tanya php.
Di antara mereka adalah semua PHP yang saya mahu menulis.
Jadi saya nampaknya akan get-- Saya akan segera pengguna
untuk memberikan saya nombor, kedai yang berubah-ubah, simpan dalam pembolehubah $ x,
apa sahaja yang mereka memberikan saya.
Kemudian saya akan echo hard_square daripada nilai itu,
dan nampaknya akan untuk jelujur pada baris baru
juga, dan kemudian di kemudian hari saya akan menentukan fungsi hard_square supaya
bahawa apabila saya membuat panggilan untuk hard_square,
ia tahu apa yang saya bercakap tentang.
>> Sekarang, saya juga boleh melakukannya sesuatu seperti ini.
Ini adalah sedikit berbeza.
Ia hampir betul-betul sama seperti apa yang kita lihat sebelum ini,
kecuali daripada berkata hanya $ x ada sebagai parameter untuk hard_square,
Saya katakan $ x = 10.
Jadi ini adalah satu contoh program pertahanan,
menjaga program anda terhadap pengguna yang berniat jahat.
>> Ini adalah salah satu cara untuk melakukan beberapa kesilapan memeriksa bahawa kita tidak benar-benar
mempunyai sebagai pilihan dalam C. Kita tidak boleh menentukan nilai lalai sesuatu.
Kami sentiasa mempunyai untuk memeriksa sama ada, sebagai contoh,
jika kita membuat panggilan kepada GetString, ia adalah paling betul jika selepas kita
diperiksa itu, kami diperiksa sama ada rentetan
untuk setiap pengguna yang telah menjadikan kita tidak sama dengan nol,
kerana kita tidak mahu memulakan bekerja dengan rentetan null.
>> Di sini, ini adalah cara yang untuk mengawal daripada itu.
Jika pengguna tidak memberikan kita sesuatu entah bagaimana, apa yang kita akan lakukan?
Nah, kita hanya akan mengatakan apa sahaja mereka tidak memberikan kepada kami,
kami hanya akan pasangkan 10 sebaliknya.
Oleh itu, jika mereka tidak memberi kita nilai, hanya menggunakan 10 secara lalai. Dan sebagainya di sini,
melihat bahawa saya membuat yang menyeru kepada hard_square,
tetapi tidak ada yang cepat kepada pengguna, kan?
Saya hanya membuat panggilan kosong.
>> Tetapi fungsi saya hard_square menjangkakan parameter.
Apakah ini akan mencetak?
Ia akan mencetak 100, bukan?
Kerana pengguna tidak memberi saya apa-apa.
Dan jadi saya hanya akan menganggap yang 10-- 10 adalah nilai lalai.
Dan hal ini akan mencetak daripada 100 pada baris sendiri.
>> PHP fail tidak perlu hanya satu fail.
Anda boleh menggabungkan beberapa fail bersama-sama, sama seperti yang anda boleh dalam C. Cara yang
kami melakukannya dalam C adalah biasanya untuk melakukan #include untuk mendapatkan fail header ditarik dalam.
Kami tidak berbuat demikian dalam PHP.
Kami melakukan sesuatu yang dinamakan require_once.
Dan kemudian ada keseluruhan ini perkara, apa yang __dir__ ini?
Itu hanya yang istimewa berubah-ubah, atau berterusan khas,
benar-benar, yang menentukan apa yang direktori semasa anda.
Dan supaya ia akan kelihatan di dalam direktori semasa anda
untuk fail yang dipanggil cs50.php dalam contoh ini di sini,
dan ia akan melekat fail yang di bahagian atas program PHP anda,
dengan anggapan bahawa anda meletakkan memerlukan sekali line di bahagian atas fail PHP anda.
>> Jadi PHP digunakan terutamanya, tetapi tidak secara eksklusif digunakan,
sebagai bahasa untuk pengaturcaraan berasaskan web.
Itu benar-benar bagaimana ia telah menjadi.
Tetapi ia adalah satu penuh bahasa, seperti yang kita lihat.
Kami telah melihat cukup banyak semua perkara bahawa ia boleh melakukan yang serupa dengan C,
dan ia boleh melakukan palang pintu lebih banyak daripada itu.
>> Tetapi kerana ia adalah bahasa penuh dan kami boleh lakukan arahan pengaturcaraan talian di dalamnya.
Kita boleh menjalankan program baris arahan.
Apa yang diperlukan untuk menjalankan perintah program garis yang ditulis dalam PHP
adalah bahawa anda mempunyai jurubahasa PHP.
Jadi ia semacam seakan-akan mempunyai pengkompil pada sistem anda
jika anda mahu untuk menyusun kod C anda untuk menjadikan ia ke dalam fail boleh laku.
Anda perlu mempunyai jurubahasa PHP yang wujud pada sistem anda
supaya anda boleh mentafsir PHP fail.
>> Andaian anda, dan biasanya jurubahasa ini dipanggil PHP,
dan ia biasanya digabungkan dengan kebanyakan muat turun atau pemasangan PHP
bahawa anda boleh mendapatkan talian, dan sudah tentu nama jurubahasa PHP
kita ada dalam CS50, IDE.
Apa yang anda lakukan adalah jenis fail php.
Dan apa program anda akan lakukan ialah ia
akan berjalan melalui jurubahasa, ia
akan mengabaikan segala-galanya yang tidak di antara soalan mark--
atau, kurung sudut tanda tanya php, yang pembatas PHP, dan mencetak,
dan ia akan mentafsir dan melaksanakan Kod di dalam pembatas PHP anda.
>> Jadi mari kita pop ke CS50 IDE dan mempunyai lihat pada beberapa PHP fail,
berjalan beberapa PHP fail, dalam arahan antara muka baris IDE CS50.
Jadi di sini kita berada dalam CS50 IDE, dan saya telah mengambil peluang
membuka fail yang dipanggil hello1.php.
Dan nampaknya, atas kandungan fail tersebut hanya sebagai pembatas PHP sana,
dan di antara, echo ("hello, dunia").
Ini adalah program PHP agak mudah.
Saya hanya akan tatal ke bawah ke tetingkap terminal saya di sini,
dan saya akan menaip php hello1.php, tekan enter.
Hai dunia.
Itu mungkin apa yang kita menjangkakan ia lakukan, bukan?
>> Marilah kita pergi dan mengambil melihat satu lagi di program.
hello2.php.
Cukup banyak perkara yang sama, tidak banyak berlaku di sini.
Kali ini, walaupun, saya akan meminta pengguna untuk memberi saya nama-nama mereka.
Saya menggunakan fungsi readline lagi.
$ name = readline.
Itulah segera itu, "Siapa namamu?"
>> Rupa-rupanya saya percetakan pada baris sendiri.
Dan seterusnya, sebagaimana baris bawah yang akan menjadi prompt
di mana pengguna boleh memasukkan nama mereka.
Dan kemudian saya menggunakan sedikit interpelasi berubah-ubah di sini pada baris 3
untuk mencetak "Hello" dan apa sahaja jenis pengguna.
Jadi ini adalah seakan-akan berkata, Hello, koma,% s jika kita menggunakan printf dalam C.
>> Jadi mari kita pergi dan mentafsir program ini.
Jadi sekali lagi, saya akan tatal ke bawah ke tetingkap terminal saya.
php hello2.php.
Siapa namamu?
Doug.
Hello, Doug.
Saya juga mempunyai satu lagi fail dipanggil hello3.php.
Saya akan membersihkan saya skrin dengan kawalan L,
dan saya akan melaksanakan itu.
Siapa namamu?
Doug.
Hello, Doug.
Jadi tingkah laku adalah sama dengan hello2.php, tetapi mengapa ia hello3.php?
>> Nah, di sini adalah perbezaan.
Dalam kes ini, notis yang pada baris 1 di sini,
Saya mempunyai sesuatu itu bukan di antara pembatas PHP.
Saya hanya mencetak out-- atau saya hanya ditaip, "Siapa namamu?"
Apabila jurubahasa PHP melihat ini, ia tidak mempunyai idea bagaimana untuk mentafsirkan ia sebagai PHP,
dan sebagainya dan bukannya gagal, ia hanya akan meludah keluar.
>> Jadi notis pada baris 3 kini, panggilan saya untuk readline, tidak ada yang cepat lagi.
Saya hanya benar-benar akan supaya- apabila jurubahasa PHP melihat ini,
ia akan mencetak "Siapa namamu?"
Kemudian ia melihat, oh, OK, here's-- segala-galanya akan menjadi
ditafsirkan sebagai PHP, jadi itulah sebabnya ia berfungsi.
Saya tidak perlu semestinya meminta supaya- pengguna bahagian dalam readline,
Saya hanya boleh mempunyai ia di luar daripada pembatas PHP
dan membolehkan jurubahasa hanya mencetak bagi saya.
>> Jadi, anda tidak benar-benar hanya mempunyai untuk mempunyai satu set pembatas PHP
dalam program anda.
Anda sebenarnya boleh mempunyai beberapa daripada mereka, membuka dan menutup mereka seperti yang diperlukan.
Jadi mari kita lihat di beberapa program
dalam CS50 IDE mana kita menggambarkan idea ini mempunyai
beberapa set dihalang PHP.
>> OK, jadi saya membuka fail di sini dipanggil add1.php.
Dan perhatikan apa yang berlaku di sini.
Sama seperti sebelum ini, saya mempunyai tunggal PHP set pembatas.
Saya akan mencetak mesej, "Sila berikan saya nombor."
Kemudian saya akan membaca garis dan menyimpannya dalam $ num1 berubah-ubah.
Kemudian saya akan mencetak lagi.
Berikan saya beberapa kedua.
Baca garis dari pengguna, kedai apa sahaja yang mereka ditaip dalam $ num2.
Menambah mereka bersama-sama dan menyimpan yang menyebabkan pembolehubah yang dipanggil $ Kesimpulannya,
dan kemudian mencetak, "The jumlah kedua-dua nombor
adalah, "dan kemudian menginterpelasi terdapat $ jumlah wang yang berubah-ubah.
Jadi mari kita hanya menjalankan ini melalui jurubahasa
mengesahkan bahawa ini adalah apa yang kita harapkan.
php add1.php.
Sila berikan saya nombor, 3.
Sila berikan saya beberapa kedua, 4.
Jumlah bagi kedua-dua nombor adalah 7.
Itulah 3 tambah 4.
OKAY?
Jadi tiada apa yang terlalu mewah di sana.
>> Dan sekarang mari kita membuka add2.php.
Di sini, saya telah mendapat beberapa PHP set dihalang sana, bukan?
Laluan 1, 3-- laluan 1 dan 3 tidak mempunyai pembatas PHP.
Oleh itu, apabila jurubahasa melihat mereka, ia hanya
akan meludah tepat apa yang saya telah ditaip di sana.
Supaya di mana saya melakukan semua menyebabkan saya.
Pada baris 2 dan 4, kita lihat yang $ biasa? jenis php daripada pembatas,
supaya kedua-dua garisan akan melaksanakan seperti PHP.
Dan kemudian pada baris 5, saya mempunyai ini perkara pelik di sini, bukan?
Ini tanda kurung sudut tanda soal tanda sama.
Saya juga akan zum masuk yang lebih jauh.
Anda boleh melihat ini adalah apa yang saya bercakap tentang di sana, $ ini? =.
>> Ia ternyata bahawa itu begitu umum bahawa alasan bahawa kita membuka satu set PHP
pembatas adalah untuk mencetak nilai.
Dan itu semua kita akan lakukan.
Tetapi ada juga trengkas untuk itu.
$? = Adalah PHP trengkas kerana mengatakan sesuatu seperti $? php echo jumlah wang yang
daripada num1 num2 dan.
Jadi ini adalah hanya satu lagi trengkas untuk itu.
>> Jadi, jika saya menjalankan program ini, php add2.php.
Saya akan zum ke bawah sedikit.
Sila berikan saya nombor, 4.
Sila berikan saya beberapa kedua.
Dan kerana saya tidak benar-benar mengambil berat tentang jenis data dalam PHP, saya boleh mengatakan 4.8.
Jumlah bagi kedua-dua nombor adalah 8.8.
Fungsi yang berkelakuan cukup banyak betul-betul sama seperti yang kita jangkakan,
juga.
Dan saya mempunyai satu lagi dibuka di sini dipanggil dice.php.
Cuba ini lagi.
Saya mempunyai satu lagi di sini dipanggil dice1.php, yang juga, lihat,
mempunyai bahawa soalan kurung sudut menandakan notasi tanda sama di sana,
tetapi notis bahawa dalam kes ini saya memanggil rand majlis itu, yang seperti yang anda
jangkakan menjana nombor rawak.
"Anda dilancarkan," dan ia akan mengira beberapa nombor rawak, mod 6 +
1.
Supaya akan memberikan saya nombor dalam lingkungan 1-6.
>> Ingatlah bahawa mod 6 akan memberi saya nombor dalam julat 0 hingga 5,
tetapi jika saya simulasi gulung dadu, yang adalah apa yang saya lakukan di sini,
Saya tidak mahu dadu ini untuk pergi dari 0 5, saya mahu dadu yang pergi 1-6.
Dan jadi ini adalah satu cara untuk mendapatkan saya dalam julat 1 hingga 6.
Saya lakukan ini dua kali.
Jadi nampaknya Saya sedang bergolek dua dadu dalam program ini.
>> Jadi saya akan mengosongkan skrin saya, dan saya akan melakukan php dice1.php.
Anda dilancarkan 4 dan 2.
Dan jika saya menjalankan program ini sekali lagi, anda dilancarkan 5 dan 5.
Jadi setiap kali saya menjalankan program ini, Saya mendapat nombor yang berlainan,
kerana setiap kali saya lakukan jadi, ia bermula lebih.
Ia akan menjana baru set nombor rawak untuk saya.
>> Jadi, jika kita digunakan untuk menjalankan program-program dari C,
kita digunakan untuk menaip ./ yang menamakan program, bukan?
Itulah bagaimana kita telah melakukan semua program kami di C setakat ini.
Kita boleh melakukan ini dalam PHP dan juga dengan menambah sesuatu yang dinamakan
yang shebang ke atas fail PHP kami.
Saya tahu ia adalah jenis perkataan bodoh.
Ia pendek untuk hash bang.
Itulah dua watak pertama di sana.
Ingat kita panggil tanda seru kerap bang dalam sains komputer.
Ia juga mungkin untuk bang tajam.
Ada beberapa cara untuk menafsirkannya.
Tetapi ia adalah pada dasarnya satu bentuk khas daripada suruhlah jurubahasa PHP
memahami kerana, oh, saya mahu anda untuk melaksanakan program ini,
yang nampaknya / user / bin / php, yang sebenarnya di mana jurubahasa PHP
khusus tinggal pada sistem kami.
Jadi it's-- apa yang berlaku di sini adalah pentafsir memahami, oh,
Saya nampaknya sepatutnya menggunakan dalam program ini untuk menjalankan fail ini.
Dan oleh itu membolehkan anda melangkau lebih langkah
mempunyai untuk mengatakan php something.php.
Ada satu tangkapan lain di sini, yang adalah bahawa jika kita
mahu program kami untuk bekerja seperti yang diharapkan, kita
perlu melakukan sesuatu yang dinamakan perubahan kebenaran fail.
Dan kita akan go-- dan kita bercakap sedikit sedikit lebih banyak perubahan kebenaran mengenai fail
dalam video kami di MVC, tetapi memadai untuk mengatakan bahawa ini adalah apa yang anda perlu lakukan
untuk membuat anda fail .php laku.
Jadi mari kita lihat ini sebagai contoh terakhir kami ke atas dalam CS50 IDE.
>> Jadi di sini dalam IDE Saya mempunyai dua fail di dalam ini PHP direktori yang tidak kelihatan
dipanggil .php.
Saya mempunyai fungsi yang dipanggil add-- Saya mempunyai fail dipanggil add3
dan fail yang dipanggil dice2.
Jadi mari kita cepat melihat dan membuka add3.
Dan seperti yang anda boleh lihat, pada permulaan fail saya, saya mempunyai shebang ini, bukan?
Ini titik hash tanda seru.
Kini, anda juga akan mungkin melihat bahawa atas sebab tertentu,
Saya tidak mempunyai apa-apa sintaks menonjolkan lagi,
dan ini adalah apa yang saya katakan sebelum ini, yang adalah bahawa jika saya tidak menamakan fail saya
.php, saya tidak mempunyai manfaat sintaksis menonjolkan lagi.
Fail ini hanya dipanggil add3.
Supaya saya boleh berjalan di kemudian hari dengan ./ add3 dan tidak ./ add3.php.
>> Jadi reason-- ia masih halus, ia masih sah PHP,
tetapi ia tidak sintaks diserlahkan, kerana fail ini tidak dipanggil something.php.
Itulah satu-satunya perbezaan sebenar di sini, ditambah shebang itu.
Jadi mari kita lihat apa yang berlaku apabila Saya cuba dan menjalankan program ini.
./ Add3, sama seperti saya lakukan dengan C. Bash.
./ Kebenaran add3 dinafikan.
Ini adalah apa yang anda akan untuk melihat jika anda lupa
untuk menggunakan arahan chmod untuk mengubah keizinan untuk fail.
>> Ternyata, PHP biasa fail tidak boleh hanya dilaksanakan.
Mereka boleh ditafsirkan, tetapi kami melakukan sesuatu yang berbeza di sini.
Kami yang menyempurnakannya.
Oleh itu, saya perlu menambah kebenaran pelaksanaan, chmod a + x untuk add3.
Kemudian saya katakan add3 ./.
Sila berikan saya nombor.
5, 6.
Jumlah bagi kedua-dua nombor adalah 11.
>> Begitu juga, saya telah chmoded dice2, jadi saya hanya boleh menaip ./ dice2,
anda melancarkan 1 dan 1, anda dilancarkan 5 dan 4, dan sebagainya.
>> Jadi itulah lebih kurang idea sintaks PHP, bukan?
Terdapat banyak untuk mendapatkan melalui, saya tahu.
Tetapi mudah-mudahan anda telah lihat sekarang bahawa PHP tidak benar-benar berbeza daripada C
dan benar-benar memberikan kita keupayaan mengambil perkara-perkara sehingga takuk atau dua.
Kita tidak perlu bimbang terlalu banyak about-- kita tidak benar-benar
perlu bimbang terlalu banyak tentang butiran peringkat rendah kita
terpaksa bimbang dengan C, bukan?
Kami boleh memberi tumpuan kepada yang lebih tinggi barangan tahap itu PHP
membolehkan kita untuk melakukan dan mengambil untuk diberikan bahawa ia akan bekerja untuk kita.
Jadi ia memberikan kita keupayaan sekarang, beralih dari C ke PHP,
untuk membuat program-program yang lebih banyak kompleks dan mungkin banyak yang lebih mantap.
>> Oleh itu, saya berharap anda mempunyai kerja yang menyeronokkan dengan PHP, dan saya Doug Lloyd.
Ini adalah CS50.