[Powered by Google Translate] [Seksyen 8] [Kurang Selesa] [Nate Hardison] [Universiti Harvard] [Ini adalah CS50.] [CS50.TV] Selamat datang ke kedua untuk seksyen terakhir kami. Pada minggu ini, kita akan bercakap tentang PHP, dan kemudian minggu depan kami akan melakukan kajian sedikit untuk Kuiz 1. Kami akan bermula pada 3 halaman masalah set pek, dan kita akan bekerja melalui seksyen soalan agak cepat. Pada halaman 3, kita mula bercakap tentang perbezaan ini antara C dan PHP dalam erti kata bahawa PHP adalah bahasa dinamik ditaip, manakala C statik ditaip, dan sesiapa yang benar-benar cepat melakukan apa-apa kod dalam sesuatu seperti PHP atau Python atau Ruby sebelum ini, menutup? Yang sama sekali baru? Okay. Semua bahasa ini bahawa saya hanya disebutkan adalah sangat berbeza dari bahasa seperti C dan C + + dan Java dalam erti kata bahawa apabila anda mengisytiharkan pembolehubah anda tidak perlu mengisytiharkan apa jenis pembolehubah ia adalah, jadi dalam C kita telah terjebak perlu untuk sentiasa berkata ini akan menjadi pembolehubah int, atau ini akan menjadi satu pemboleh ubah * char, sedangkan dengan PHP, dengan Python, dengan Ruby, dengan banyak bahasa yang lebih moden ini anda tidak perlu berbuat demikian pada semua. Anda hanya mengisytiharkan pembolehubah anda, dan dalam kes PHP anda mengaku bahawa ia adalah pembolehubah dengan awalan dengan tanda $, dan kemudian jenis pembolehubah adalah ditentukan oleh apa-apa nilai ia memegang, yang adalah jenis sejuk. Untuk bermain-main dengan sedikit ini sedikit, kita mempunyai sampel kod PHP di sini di antara tag permulaan dan akhir. Kami menggunakan jenis ini seperti HTML dalam erti kata bahawa kami telah mendapat kurungan sudut sini untuk membuka dan menutup. Anda akan melihat ini dengan HTML. Anda akan melihat perkara yang sama sintaks dengan XML juga. Ini menunjukkan permulaan blok PHP. Ini php? Adalah khusus untuk PHP. Kami menutup segala-galanya dengan?> Serta. Mari kita membuka fail dalam perkakas kita menggunakan apa sahaja yang anda ingin. Dalam paket ini ia mengatakan untuk memanggil dynamic.php. Sebenarnya, anda boleh memanggil ia apa sahaja yang anda ingin, tetapi nama fail akan tampil dan menjadi penting kemudian, jadi hanya ingat apa sahaja yang anda memanggilnya. Saya akan beralih ke perkakas, dan saya akan membuat sebuah direktori untuk seksyen 9 Saya percaya kita berada di sekarang. Dan kita akan pergi ke seksyen 9, dan saya akan menggunakan gedit. Mari kita lihat, gedit, dan saya akan memanggil dynamic.php lombong. Ledakan. Di Dalam dynamic.php, kerana ini adalah fail PHP dan saya mahu menjalankan ini melalui jurubahasa PHP Saya perlu untuk memulakan segala-galanya bermula dengan orang-orang tags terbuka, jadi saya akan untuk memulakan hak mereka jauh, memberikan saya sedikit ruang di antara tag, dan kemudian titik latihan ini adalah untuk bermain-main dengan fungsi ini dipanggil gettype, jadi gettype, fungsi ini di sini. Perhatikan bahawa ada tidak menekankan atau ruang atau sempang atau apa-apa seperti itu memisahkan 2 perkataan, dapatkan dan taip, hanya satu perkataan sama sekali. Tetapi apa yang ini akan lakukan jika saya lulus dalam pembolehubah untuk gettype, katakan $ var atau $ x, ini akan memberitahu saya jenis dalam format debugging apa nama jenis itu. Kami akan mencuba di sini. Khususnya, jika anda melihat kembali pada spec pset kami telah mendapat beberapa baris yang berbeza kod di sini. Dalam baris pertama kod kita memulakan variabel ini, $ var, menjadi sama ke 7, dan kemudian kita mempunyai ini selaras printf mengatakan hey, var printf adalah kosong. Printf adalah salah satu daripada banyak cara kita boleh mencetak perkara dalam PHP. Selalunya anda akan melihat fungsi echo bukannya printf digunakan, tetapi printf kita semua biasa dengan telah pengekodan dalam C untuk seketika. Apa yang anda sebenarnya boleh lakukan mari kita lihat jika kerja-kerja salinan dan tampal. Saya akan memberikan ini cuba. Kami akan kembali ke perkakas. Okay, dan di sana kita pergi. Dan jarak adalah funky, tetapi di sini kita pergi. Kami telah mendapat kod ini di sini. [Pelajar] Apakah ia gaya yang tidak baik ke tab ia? Maaf? [Pelajar] Adakah ia konvensional ke tab ia? Betul, jadi Sam bertanya jika ia adalah konvensyen ke tab atau tidak. Biasanya ya. Dalam kes ini, saya telah memilih untuk tidak. Secara jujur, anda akan melihat perkara-perkara yang berbeza di kalangan pengaturcara berbeza. PHP biasanya sering digunakan dalam kombinasi dengan HTML dan bahasa-bahasa lain, dan sebagainya kadang-kadang percetakan akan kelihatan funky jika anda inden dalam permulaan PHP dan tag akhir. Ia benar-benar bergantung. Dalam kes ini, copy dan paste tidak tampal tab untuk saya, tetapi ia pasti tidak, seperti yang anda kata, membuat ia jelas. Baiklah, jika anda menyimpan kod ini di dynamic.php maka apa yang anda boleh lakukan ialah datang ke tetingkap terminal anda di mana saya sampai di sini dalam gedit, dan untuk melakukan bersamaan menyusun menggunakan membuat dan kemudian berjalan kod anda dalam C semua yang anda perlu lakukan dengan fail PHP adalah memulakan jurubahasa PHP, yang merupakan satu program kecil yang dipanggil PHP, dan hujah yang anda berikan kepada jurubahasa adalah fail yang anda mahu untuk mentafsir. Dalam kes ini, dynamic.php. Oop, di mana saya meletakkan ia? Oh, saya meletakkan ia dalam seksyen 9, dan di sini saya. Itulah sebabnya. Sekarang, jika saya berjalan itu lagi kita lihat bahawa dalam gettype fungsi panggilan pertama saya var adalah integer. Dalam var datang adalah rentetan, dan kemudian dalam var satu pertiga adalah boolean. Apa yang menarik tentang perkara ini ialah jika kita tatal kembali kita lihat bahawa ini adalah jenis yang sama dengan orang-orang yang kita telah dalam C. Kami mempunyai ints dalam C. Kami jenis mempunyai rentetan dalam C, jadi rentetan tidak adalah jenis yang benar-benar legit dalam erti kata bahawa rentetan CS50 kami adalah benar-benar apa? Maaf? Missy? [Missy] Char *. Ya, ia adalah ini * char kita digunakan. Pada awal-awal semester kita telah menggunakan jenis tali, tetapi ia adalah benar-benar * char bawah hood. Kita hanya jenis yang ditakrifkan, sedangkan dalam PHP rentetan ini adalah satu jenis sebenar. Terdapat tidak lebih daripada ini * char jenis barangan. Anda akan melihat bahawa kita boleh melakukan banyak perkara lagi dengan rentetan lebih mudah dalam PHP daripada kita boleh dalam C, dan akhirnya, kita mempunyai jenis ini boolean, dan perbezaan yang besar di sini adalah bahawa jika kita tatal kembali ke bawah kita lihat bahawa nama jenis ini kini integer, tali, dan boolean bukannya int dan bool, dan sebagai anda memilih bahasa pengaturcaraan yang berbeza, menganggap bahawa pada satu ketika dalam hidup anda, anda akan bersentuhan dengan yang berbeza, anda akan notis sedikit sifat-sifat seperti ini di mana C panggilan integer ints. Sesetengah memanggilnya integer. Terdapat istilah lain yang anda akan menghadapi. Int Besar yang kita lihat hari ini dalam SQL. Terdapat juga nombor dan kemudian bool, boolean, segala macam perbezaan di sana. Ini tidak terlalu menarik tetapi sekarang saya akan memberikan anda sedikit masa- jika kita zum keluar untuk bekerja melalui senaman ini di bahagian bawah halaman 3 di mana ia meminta apa jenis sesuai dengan nilai-nilai ini di sini di bawah. Kami mempunyai 3.50. Kami mempunyai perkara ini di sini, yang menarik. Kami tidak pernah melihat bahawa sebelum ini, walaupun begitu, jika anda telah mengikuti bersama-sama dalam kuliah anda mungkin sudah tahu apa yang. Kemudian kita mempunyai ini, yang ini adalah jenis funky. Kamu kenal siapa ini. Apakah ini dalam C? Sam? Apakah ini akan memberikan anda di C? Ia akan membuka fail yang dipanggil dynamic.php dan membuat ia boleh dibaca. Ya, dan apa yang akan menjadi jenis pembolehubah yang kita akan menetapkan ini? >> File bintang. Tepat sekali, kita akan memberikan ini kepada bintang fail. Ini adalah PHP sah juga. Main. Lihat apa yang berlaku apabila anda lulus yang menjadi gettype. Dan kemudian juga menyemak apa nol ialah, apa yang mungkin dalam PHP. Saya akan memberikan anda beberapa minit. Anda benar-benar boleh menyalin dan tampal nilai-nilai, dan kemudian kita akan melakukan panggilan rawak sedikit kepada anda dan lihat apa yang anda mendapat. [Pelajar] Saya mempunyai satu soalan. << Yeah. Dalam salah satu kuliah Daud berkata ada sesuatu yang anda boleh meletakkan di atas fail anda supaya anda tidak perlu menaip dalam PHP setiap masa. Apa itu? Beliau mungkin bercakap tentang paun bang, bang hash. Ia adalah arahan bahawa jika anda menandakan fail anda sebagai laku maka apa yang ia adalah apabila anda melaksanakan fail ia akan memberitahu program shell untuk menggunakan jurubahasa PHP untuk mentafsir kandungan fail. Soalan apakah ini selaras khas bahawa kita boleh termasuk di bahagian atas fail PHP kita untuk tidak perlu termasuk ini selaras PHP atau perintah ini PHP apabila kita mahu untuk melaksanakan fail? Dan anda sebenarnya boleh melakukan ini dengan sekumpulan fail yang berbeza. Saya percaya ia bergantung di mana perduaan PHP disimpan, tetapi sering usr / bin / php adalah tempat yang baik untuk memulakan. Anda boleh memahami ini keluar tepat dengan akan kembali ke perkakas anda dan menaip yang php. Arahan yang angka keluar apabila anda melaksanakan binari atau perintah mana fail yang sepadan. Ini memberitahu saya bahawa PHP adalah benar-benar aliasing fail ini binari yang disimpan dalam usr / bin, yang mana banyak daripada binari sistem dipasang. Sebagai contoh, jika saya menatal sehingga ke atas, sekarang bahawa saya telah meletakkan ini #! selaras di sini Saya boleh tatal ke bawah, dan saya boleh cuba untuk menjalankan dynamic.php, tetapi saya mendapat kesilapan ini tentang kebenaran dinafikan, dan apa yang bermakna adalah bahawa fail ini kini tidak memberi keizinan laku. Ia tidak ditandakan sebagai fail bahawa seseorang boleh menjalankan. Apabila anda berlari Buat atau dilafaz dan anda mendapat laksana dari ia pengkompil adalah bijak untuk mengetahui bahawa hey, saya membina laksana. Anda mungkin mahu untuk melaksanakan, jadi ia secara automatik akan mengkonfigurasi kebenaran untuk anda. Ini tidak berlaku, walaupun, apabila anda mencipta fail biasa dari awal, sebab yang biasanya anda tidak mahu mempunyai apa-apa fail pada sistem anda menjadi laku, jadi anda sebenarnya perlu pergi dalam dan manual melakukannya. Cara yang paling mudah untuk melakukannya adalah dengan arahan chmod, dan chmod + x mengatakan menambah bit executable kerana ada sedikit baca, sedikit menulis dan bit executable, r, w dan x, dan mengatakan chmod + x akan bertukar pada bit executable maka fail yang kita tentukan, yang dalam kes ini akan dynamic.php. [Pelajar] Adakah yang dihidupkan untuk semua orang? Mari kita lihat ini, jadi bagaimana saya akan memeriksa untuk melihat kebenaran? Adakah anda tahu bagaimana saya hendak memeriksa untuk melihat kebenaran fail? [Sambutan pelajar didengar] Maaf? >> [Pelajar] XSD. XSD memberikan kita fail dalam hacks. Menyenaraikan semua fail,-l, akan menunjukkan saya semua fail dalam direktori saya jenis panjang mereka, lantung penyenaraian, dan sebagainya di sini kita lihat bahawa fail ini dynamic.php diubah buat kali terakhir 5 Nov di 04:21 PM. Pemilik fail ini jharvard. Itulah pengguna yang log masuk Itulah pengguna Saya bekerja sebagai, dan jika anda juga di dalam perkakas anda juga bekerja sebagai jharvard pengguna. Anda berada dalam kumpulan pelajar, dan ini adalah perkara-perkara yang anda akan lihat sering cukup. Kita boleh pergi ke banyak terperinci di sini, tetapi bagi sebahagian besar apa yang anda mahu melihat apabila anda sedang mencari untuk melihat sama ada atau tidak fail boleh laksana terutamanya pengguna yang memiliki fail, pemilik, jadi ini jharvard, dan kemudian kita mempunyai bit kebenaran di sini di sebelah kiri, dan cara untuk membaca ini adalah bahawa bit terakhir biasanya digunakan untuk menandakan sama ada atau tidak sekurang-kurangnya dalam kes ini ini sedikit terakhir selalunya akan bersedia untuk iklan untuk menunjukkan bahawa fail adalah direktori dan tidak hanya fail biasa. Kemudian berikut 3 bit di sini menentukan kebenaran bahawa pemilik fail telah, demikian dalam jharvard kes ini, sebagai pemilik fail, boleh membaca dan menulis fail ini, tetapi ada melontarkan mengatakan bahawa jharvard tidak boleh melaksanakan fail ini. Seterusnya 3 bit adalah bagi kumpulan itu, jadi ini adalah kumpulan pelajar, jadi jika terdapat pengguna berganda pada perkakas saya, dan kami mempunyai beberapa pengguna sebagai sebahagian daripada kumpulan pelajar, maka mereka semua boleh membaca fail ini, tetapi mereka tidak boleh menulis, dan begitu juga orang lain, dunia hanya dapat membaca fail ini juga. Ada yang baik, writeup panjang tentang perkara ini, jadi anda boleh membaca dalam talian. Dalam set spec masalah kita pergi ke ini dengan lebih terperinci. [Pelajar] Apakah 218 merujuk kepada dunia? 218-off atas kepala saya saya lupa, tetapi tidak. Mari kita lihat. Saya blanking bahawa sekarang. Kembali ke apa yang kita kira-kira untuk melakukan dengan ini chmod + x di mana kita mahu untuk memberi kebenaran laku dynamic.php, dan soalan adalah sama ada atau tidak ini akan memberikan kebenaran laku kepada semua orang atau hanya jharvard, dan kita boleh melihat perkara ini dengan menjalankan arahan dan menaip ls-l, dan sekarang kita lihat bahawa ia ditandakan sebagai laku. Anda lihat bahawa terdapat perubahan warna. Sekarang dynamic.php disenaraikan dalam warna hijau, dan ia kelihatan seperti jawapan kepada soalan apa, Charlotte? [Charlotte] Hanya jharvard. >> Hanya jharvard, yeah. Jika kita mahu menghidupkan sedikit laksana untuk semua orang bagaimana kita boleh berbuat demikian? Mana-mana pemikiran? >> A + x? Ya, sebenarnya. Charlotte berkata kita boleh lakukan chmod x + dynamic.php, dan kini jika kita menjalankan ls-l kita lihat bahawa bit laku sememangnya dihidupkan untuk semua orang. Dan anda sebenarnya boleh melakukan perkara yang terbalik ini, jadi anda boleh menghidupkan ia dimatikan untuk semua orang menggunakan tolak. Kini ia dimatikan, dan kini kita boleh menghidupkan kembali untuk jharvard supaya kita sebenarnya boleh menjalankan ia kini, dan sekarang anda lihat apabila kita menjalankan kod khas ini #! baris di bahagian atas, #! talian, memberitahu shell, memberitahu terminal kami hey, apabila fail ini dijalankan, menggunakan / usr / bin / php untuk mentafsir fail ini dan kemudian mencetak output. [Soalan pelajar didengar] Pasti, izinkan saya skrol kembali. Sama seperti ini. Anda akan melihat semua ini arahan bermula dengan pound ini dan kemudian tanda seru, kadang-kadang dipanggil shebang, bang hash. [Pelajar] Bagaimana kita boleh berjalan dengan php dynamic.php sebelum kita membuat ia laksana? Persoalannya ialah bagaimana kita boleh menjalankan ini menggunakan binari PHP manakala dynamic.php tidak boleh laksana? Ini adalah sangat penting kerana ini adalah bagaimana ia akan berfungsi apabila anda menulis set masalah 7. Kebanyakan masa PHP fail tidak langsung laku. Cara yang bekerja adalah kerana ia adalah binari PHP itulah laku. Jurubahasa adalah perkara yang sedang dilaksanakan, dan sebagainya apa yang ia melakukan secara literal slurping dalam keseluruhan kandungan fail dynamic.php kami dan barisan akan demi baris dan melaksanakan arahan mereka, jadi ia menggunakan fail PHP kita sebagai satu senarai arahan. Ia tidak langsung menyempurnakannya. Itulah di mana kita mengatakan bahawa fail-fail ini ditafsirkan pada masa jangka. Ia adalah bahasa masa tayangan bukan sesuatu yang ditentukan pada masa kompil, bukan bahasa yang disusun seperti C. Adakah terdapat cara untuk mendapatkan bahasa jangka masa untuk bertindak seolah-olah ia adalah bahasa menyusun masa, seperti jika anda mempunyai semua berjalan yang dilakukan pada pelayan bukannya anda tahu apa yang saya maksudkan? Ya, jadi persoalannya ialah ada satu cara untuk mendapatkan bahasa masa yang dijalankan untuk bertindak lebih seperti masa kompil jenis bahasa? Dan ada, maksud saya, yang merupakan kawasan aktif penyelidikan bagi banyak syarikat-syarikat ini. Saya percaya Facebook telah dilakukan banyak kerja dengan PHP dan menyusun ke bawah, menjadikan ia lebih cepat, mengoptimumkan sejak laman mereka dibina pada PHP. Jika anda telah mengikuti node.js pada semua, yang adalah jenis jurubahasa JavaScript menjadi mampu untuk menjalankan JavaScript luar pelayar, di luar pelayar web anda, kerana tradisinya JavaScript hanya akan berjalan di dalam Firefox atau Chrome, dan ia akan digunakan untuk membuat animasi sejuk berlaku pada laman web dan membuat laman web anda dinamik. Itu telah dibina di atas banyak kerja bahawa Google telah dilakukan untuk membuat JavaScript dan C + + mengikat bersama-sama, jadi terdapat banyak penyelidikan aktif untuk mendapatkan bahasa ini untuk berinteraksi dan mengoptimumkan mereka, terutamanya kerana begitu ramai orang boleh kod dalam PHP dan JavaScript kerana ia adalah lebih mudah. Ia banyak lebih bagus. Anda tidak mempunyai petunjuk. Anda tidak mempunyai jenis yang terapung di sekeliling. Mereka mahu mendapat manfaat daripada bahasa ini masa kompil dengan semua penyemakan jenis dan kelajuan dan penggunaan memori yang lebih rendah dan semua itu sementara masih mengekalkan fleksibiliti dan kemudahan penggunaan ini yang baru. Kembali ke rancangan asal kami serangan. Kami telah mendapat beberapa soalan-soalan ini di sini dalam spec set masalah kita. Mari kita pergi melalui mereka benar-benar cepat, dan kita akan pergi di sekitar bilik. Charlotte, apa jenis ialah RM3.50? [Charlotte] Itulah double. >> Ia adalah double. Jimmy, apakah yang satu ini datang? >> Satu pelbagai. Pelbagai, hebat, dan Jared, apakah fopen? [Jared] Ia adalah sumber. >> Ia adalah sumber. Itulah jenis yang baru, bukan bintang fail, bukan fail. Ia adalah sumber adalah jenis dalam PHP, dan saya minta maaf, Ella, batal terakhir adalah apa? Menyeimbangkan. Nol, bagaimana ia dieja dalam PHP? >> Cara yang sama. Cara yang sama, ibu? >> Yeah. Ya, semua hak. Di sini kita pergi, kita telah mendapat dua, kita telah mendapat pelbagai, kami telah mendapat sumber, dan kemudian kami telah mendapat null. Mari kita lihat sekarang anda dilihat mari kita lihat, jadi sekarang saya rasa apa yang saya juga mahu lakukan adalah tarik sehingga ini laman web di sini, ini php.net / manual, jadi jika anda semua salinan itu dan membuka pelayar web. Saya akan tarik sehingga Chrome, meletakkan bahawa masuk Saya mahu menunjukkan kepada anda ini bukan sahaja kerana kita boleh bercakap sepanjang hari tentang jenis dan semua bahawa barangan yang menyeronokkan tetapi kerana ini adalah manual PHP, dan terdapat banyak pengaturcara PHP di luar sana. Terdapat banyak laman web PHP di luar sana, dan hasilnya, terdapat banyak dokumentasi di PHP, dan manual, php.net ini, adalah tempat yang benar-benar baik untuk pergi apabila anda mempunyai soalan tentang apa cara terbaik untuk melakukan X dalam PHP atau apakah fungsi kelihatan seperti? Hanya jenis semakin biasa dengan apa ini kelihatan seperti kerana anda akan datang ke sini sering, sedikit untuk masalah menetapkan 7. Jika anda akhirnya melakukan projek akhir yang menggunakan PHP ini akan menjadi satu tempat yang anda akan menjadi sangat baik berkenalan dengan. Selalunya cara orang melakukan ini adalah mereka menggunakan Google untuk mencari laman web, dan mereka tidak menggunakan kotak carian itu di sini di sebelah kanan atas, yang adalah jenis kecil. Jika anda Googling sekitar untuk melakukan sesuatu dengan PHP dan anda lihat salah satu pautan manual pop up anda biasanya boleh bergantung pada itu sebagai sumber yang agak baik. Awesome, begitu daripada jenis ini, hanya keluar dari rasa ingin tahu, yang mana tidak kita melihat? Apa sahaja yang kita tidak pernah dilihat di sini? [Pelajar] Sumber. >> Kami melihat sumber dengan panggilan fopen. [Pelajar] Objek Objek >> kita tidak pernah melihat pasti. Callback yang kita tidak pernah melihat. Terdapat beberapa ini pseudo-jenis. Kami pasti hanya melihat integer dan double. Kami tidak melihat beberapa orang lain, jadi jika kita klik pada integer kita boleh melihat terdapat sebarang integer lain bahawa mereka mempunyai di sini? Adakah mereka semua begitu integer, integer, integer. Sesetengah bahasa lebih besar jenis integer, seperti yang kita lihat pada hari ini MySQL terdapat int dan kemudian int besar. Sejuk. Jadi, PHP manual. Mari kita kembali kepada spec set masalah kita, dan kita sekarang akan tatal ke bawah ke halaman 4. Salah satu perkara yang berlaku apabila anda mendapat bahasa ini yang tidak mempunyai ini menaip statik, jadi bahasa ini di mana anda perlu untuk mengisytiharkan jenis depan sehingga pembolehubah anda mendapat kes-kes di mana anda mungkin mula mempunyai pembolehubah jenis yang berbeza berinteraksi antara satu sama lain, dan PHP melakukan perkara ini di mana ia cuba untuk melakukan apa yang dianggapnya perkara yang paling wajar untuk berbuat apabila anda mempunyai 2 jenis yang berbeza berinteraksi dengan satu sama lain. Sebagai contoh, jika kita melihat baris kod yang betul di sini anda melihat bahawa kita telah mendapat apa yang berlaku apabila kita cuba dan menambah rentetan 1 ke 2 integer. Apakah yang akan berlaku jika kita cuba dan menambah rentetan yang tidak nilai berangka tetapi watak-watak yang agak sebenar, CS kepada bilangan 50? Kemudian kita akan melihat ada apa-apa yang berbeza yang berlaku di mana bukannya menambah rentetan kepada bilangan kami menambah nombor kepada rentetan, dan sebagainya dan sebagainya ke titik di mana kita mendapat beberapa jenis barangan pelik betul di sini di mana kita telah mendapat 7 + benar. Apa palang pintu itu adakah itu bermakna? Jika anda semua pergi ke hadapan dan tampal beberapa kod ini ke dalam perkakas anda. Anda boleh menyimpan dalam dynamic.php. Kita akan lihat apa yang berlaku. [Pelajar] Hanya menggunakan cetak, tidak printf? Ya, jadi anda akan mendapati bahawa cetak adalah juga fungsi yang sah untuk mencetak dalam PHP. Terdapat banyak cara yang berbeza untuk melakukannya. Kita akan melihat dengan beberapa contoh kemudian sekali kita mula bercakap tentang masalah yang unik yang kita pergi untuk menulis dan kemudian masalah kepekatan yang kita pergi untuk menulis bahawa walaupun kita mempunyai fopen dan fclose yang sering tidak cara yang paling mudah untuk membaca dalam kandungan fail. PHP mempunyai banyak ini holdovers C seperti. [Pelajar] Apabila saya meletakkan dalam semua 6 perkara-perkara yang saya hanya mendapat satu nombor sebagai output. [Nate H.] Apabila anda meletakkan dalam semua 6 perkara-perkara ini. Mari kita lihat adalah kerana ia adalah mungkin- satu perkara adalah bahawa panggilan cetak tidak ditamatkan pada akhir dengan garisan baru. Ada tiada baris baru memisahkan setiap panggilan cetak, jadi mungkin anda mendapat satu nombor yang besar, dan ia adalah benar-benar hanya amalgam aksara baris baru. [Pelajar] Okay, bagaimana saya membuat pasti- Nah, terdapat sekumpulan cara yang berbeza. Anda secara manual boleh dimasukkan ke dalam cetak aksara baris baru, gema aksara baris baru, mencetak baris baru. [Pelajar] Jadi echo adalah perkara yang sama seperti printf? Printf adalah seperti C printf ke mana anda hendak mencetak rentetan diformat. Anda membekalkan format string dan kemudian semua placeholder pembolehubah. Ia sering sesuatu yang tidak digunakan mari kita lihat, seperti penafian, Saya kurang biasa dengan PHP daripada saya dengan bahasa web yang lain, dan apabila saya telah diprogramkan dalam PHP, saya biasanya tidak menggunakan printf kerana saya mendapati ia lebih cepat untuk menggunakan keupayaan interpolasi rentetan bahawa ia mempunyai, yang kita akan pergi ke dalam dan saya akan menunjukkan kepada anda dalam hanya sesaat, sedangkan dalam C kita jenis mempunyai untuk melakukan perkara ini hacky untuk mendapatkan ia untuk mencetak dengan betul. Anda sebenarnya boleh meletakkan pembolehubah langsung kepada rentetan dalam PHP. Printf adalah jenis terlalu lama untuk apa yang saya lakukan biasanya. Ya, Ella. [Ella] Secara umumnya jika anda mendapat ralat menghuraikan maksudnya- seperti di C ia tidak memberitahu anda dengan tepat di mana kesilapan dan apa yang ia adalah, jadi adakah itu bermakna melihat melalui kod keseluruhan anda dan angka ia keluar? Ia biasanya lebih disasarkan daripada itu. Saya fikir dalam kes itu, ia adalah di luar sedikit, jadi saya fikir dalam hal yang kita telah hilang dengan koma bernoktah. Ia telah cuba untuk membuat rasa segala-galanya, jadi seperti bahasa ini ditafsirkan, jurubahasa akan cuba dan melakukan yang terbaik untuk membuat semua kerja-kerja yang sesuai. Anda akan lihat, sebagai contoh, dalam menutup anda akan sering-line penyata akhir dengan semicolon hanya seperti yang mereka lakukan dalam PHP, sama seperti yang mereka lakukan di C. Dalam menutup beberapa penterjemah JavaScript dalam banyak pelayar akan dimasukkan ke dalam koma bertitik untuk anda jika anda berlaku untuk hilang mereka. Mereka akan cuba dan menampung untuk sloppiness beberapa di pihak anda. Itulah di mana ia mungkin cuba dan cuba dan cuba untuk membuat perkara yang kerja, dan akhirnya ia akan sampai ke titik di mana ia berkata okay, Saya tidak boleh membuat perkara yang bekerja pada menyelamatkan, dan itulah di mana anda akan mendapat nombor talian yang mungkin kelihatan luar sedikit dari tempat yang tepat. Okay, jadi mari kita pergi melalui ini benar-benar cepat. Kami berhenti dengan Ella, jadi mari kita pergi ke Missy, dan Missy, apakah cetakan 1 rentetan ditambah nombor 2 memberikan anda? [Missy] 3. >> 3. Adakah yang masuk akal? Susun? Adakah ia memberi anda nombor? Adakah ia memberi anda rentetan? [Missy] nombor. >> Ia adalah nombor satu. Tetapi ia percetakan, jadi ia akan memberikan anda beberapa jenis tali. Satu perkara yang kita boleh lakukan untuk menyemak ini jika kita lakukan $ var = 1 + 2 dan kemudian kita katakan Gema gettype, jadi kita menggunakan sejenis ketiga percetakan di sini. Sekarang kita boleh melihat apa yang berlaku di sini. Di sini apa yang kita telah mendapat adalah kita mendapat integer daripada ini. Walaupun kita telah menambah rentetan ini kepada beberapa, kita tidak mendapatkan rentetan daripada itu, seperti Missy berkata. Kami telah mendapat integer. Okay, jadi mari kita lihat, bersebelahan sehingga, Kevin. CS + 50? >> [Kevin] 50. [Nate H.] 50. Adakah yang masuk akal? [Kevin] Yeah. [Nate H.] Mengapa? Mengapa ia masuk akal untuk anda? [Kevin] Kerana ia hanya mempunyai tali, yang mempunyai nilai sifar nombor. Ya, hebat. Jenis situasi samar-samar, tetapi ia adalah baik untuk mengetahui apa yang berlaku. Stella, apa yang berlaku seterusnya dengan nombor 1 + string 2? [Stella] 3. >> 3 lagi. Dan dalam kes ini, adakah kita mendapatkan rentetan atau nombor? Mari kita memberikan ini cuba. Sesiapa yang lebih cepat daripada saya mendapat jawapannya? Charlotte? Oh, saya didn't-okay, mari kita lihat, kita akan melakukan perkara yang sama perkara di mana kita telah mendapat beberapa campur rentetan, dan kita akan echo jenis, lihat apa yang kita dapat. Kami juga mendapat integer. Ia tidak kira yang mana satu adalah rentetan, yang mana satu adalah nombor. Kami masih akan mendapat integer. Ia masih akan melakukan apa yang kita boleh harapkan. Baiklah, jadi Sam, apa yang kira-kira 90 + 9 botol bir di dinding? [Sam] 99. >> 99. Tiada botol bir di dinding, walaupun. Ia memberikan kita lebih sedikit maklumat tentang apa yang berlaku. [Sam] Jika anda telah menulis 9 dalam surat maka anda akan mempunyai 90, betul-betul? [Nate H.] Yeah. Persoalannya ialah jika kita hendak ditulis 9 sebagai N-I-N-E kita akan mendapat 99 atau 90? Kami ingin mendapatkan 90. Ia benar-benar hanya mencari aksara angka. Ia tidak bijak untuk mengiktiraf perkataan bilangan dan barangan yang. Ya. [Pelajar] Adakah terdapat perkara yang sedemikian sebagai typecasting dalam PHP? Terdapat, dan ia betul-betul cara bagaimana anda akan melakukannya dalam C. Bagaimana kira-kira 10/7, Charlotte? [Charlotte] 1,4285. [Nate H.] Yeah, jadi apa yang mungkin mengejutkan tentang perkara ini? Apa yang akan berlaku jika anda melakukan ini jenis yang sama perkara dalam C, jika anda lakukan 10/7 dalam C? [Charlotte] Ia hanya akan memberikan anda bergantung kepada bagaimana anda typecasted Saya rasa ia akan memberi anda hanya bilangan yang terhad digit selepas perpuluhan. Ya, jadi bilangan yang terhad digit selepas perpuluhan. Apa lagi yang mungkin akan ia memberi anda apa-apa digit selepas perpuluhan? Selalunya tidak, jadi lagi, bergantung kepada bagaimana anda typecasting ia boleh atau tidak boleh menukar nombor titik terapung. Berikut adalah jenis baik bahawa ia tidak. Kalaulah kami menunjukkan anda kembali ini apabila kita mula melakukan ini jenis barangan dalam C ia mungkin akan membuat rasa lebih sedikit bahawa ia tidak hanya pergi ke 1. Dan kemudian akhirnya, Jamie, apa yang kira-kira 7 + benar? [Jamie] 8. >> 8. Apa maksudnya? Saya rasa ia hanya memberikan benar nilai 1. Yeah. Apakah yang akan berlaku jika kita menukar bahawa untuk palsu? [Pelajar] 7. Ya, jadi ingat di mana kita bercakap tentang nilai-nilai binari, 1 berada di, 0 menjadi luar? Sekarang kita perlu benar adalah 1, 0 adalah palsu, dan anda mungkin tidak melihat ini dalam contoh C yang kita lakukan semester ini yang lalu, tetapi sejarah jenis bool dalam C tidak menjadi sejenis sebenar, jadi orang telah menggunakan 0 dan 1 di tempat yang benar dan palsu. Ini adalah manifestasi itu. Okay, jadi salah satu bahagian penting tentang semua ini adalah bahawa kita mempunyai jenis yang berbeza. Mereka boleh berinteraksi antara satu sama lain. Mereka sering boleh berinteraksi antara satu sama lain dengan cara yang baik, seperti yang kita telah melihat di sini. Ia adalah baik untuk dapat mempunyai rentetan 1 dan nombor 2, menambah mereka bersama-sama dan mendapatkan 3. Yang masuk akal. Walau bagaimanapun, apabila anda menulis laman web, dan terutamanya apabila anda memproses input pengguna, jadi katakan anda telah menulis satu bentuk web yang mengumpul maklumat dari pengguna dan kemudian pergi untuk memproses pada akhir belakang, di sebelah pelayan dalam kod PHP anda jika anda menjangkakan bahawa nilai yang pengguna ditaip dan diserahkan untuk membentuk anda untuk menjadi integer atau untuk menjadi nombor titik apung atau sesuatu seperti itu anda perlu untuk membuang ia jelas dan kemudian melakukan beberapa penyemakan jenis. Anda tidak mahu hanya bergantung kepada sistem ini menjugel jenis untuk membuat perkara yang bekerja keluar, terutamanya atas sebab-sebab keselamatan dan hanya untuk ketegapan laman web anda. Hanya sesuatu yang perlu diingat bahawa apabila anda mengendalikan data borang, apa-apa yang datang dalam jawatan itu atau pada superglobals get pastikan bahawa anda sentiasa mengesahkannya dan menukar ia dan cuma sesuai ia. Dan seperti kita bercakap tentang masa lalu bahawa typecasting dalam PHP adalah sama seperti dalam C di mana anda mempunyai kurungan dan kemudian jenis. Menyimpan bahawa dalam fikiran. Salah satu fungsi yang akan datang dalam berguna apabila anda lakukan ini kita telah menggunakan dan ini adalah jenis sebagai selain- kita telah menggunakan fungsi ini gettype di sini untuk memikirkan jenis pembolehubah, dan ketika ini adalah berguna untuk debugging dan untuk melihat apa jenis pembolehubah anda tidak mahu untuk menggunakan ini, sebagai contoh, dalam keadaan di mana anda memeriksa untuk melihat jika gettype $ var = integer melakukan sesuatu. Ini adalah buruk, buruk, buruk. Sebaliknya terdapat fungsi-fungsi yang dipanggil ialah integer, tali, adalah pelbagai yang anda mahu untuk menggunakan sebaliknya, jadi dalam kes ini apa yang saya mahu lakukan dan bukannya lelaki ini di sini menggunakan var integer. Dan mereka sering dirujuk adalah * is_ dalam erti kata bahawa anda boleh menggantikan * dengan integer, tali, dan sebagainya, dan hanya untuk memastikan benar-benar cepat ini adalah int php. Kelihatan seperti anda boleh lakukan sama ada int atau ada ialah integer serta? Ya, alias, begitu int alias integer. Sejuk. Bagaimana kita lakukan? Mari kita mengambil kadar sedikit. Sekarang kita akan bercakap tentang tatasusunan, jadi seperti yang anda boleh lihat dalam bahagian seterusnya spesifikasi kita bercakap tentang bagaimana array dalam PHP adalah sedikit berbeza daripada mereka berada dalam C. Sebenarnya, mereka jenis amalgam tatasusunan bahawa anda telah datang ke tahu dan cinta dalam C di mana segala-galanya adalah dari jenis yang sama berturut-turut dan contiguously disimpan dalam ingatan, dan anda mempunyai indeks ini angka. Anda mempunyai indeks 0, index 1, indeks 2, dan anda menyimpan nilai pada mereka indeks. Anda juga di C, apabila anda menulis Speller, banyak anda melakukan pendekatan jadual hash, dan anda melihat bahawa di sana kami terpaksa pelbagai jenis penyimpanan, di mana kita telah pemetaan kunci kepada nilai, jadi apabila anda cuba untuk menyimpan sesuatu dalam jadual hash anda mempunyai untuk menentukan bahawa anda mahu untuk menyimpan ia dengan kunci tertentu, utama yang menentukan lokasi nilai dan di mana ia akan disimpan. Anda telah jenis mendapat kedua-dua mereka konsep yang berlaku pada masa yang sama dalam pelbagai PHP, dan hasilnya, kita sering menyeru ini array bersekutu di mana kita mengaitkan kunci dalam nilai. Dalam bahagian ini seterusnya kita bercakap tentang tatasusunan PHP mudah di mana kita mempunyai kekunci a, b, dan c, semua tali, pemetaan untuk integer 1, 2, dan 3. Dan anda boleh mempunyai kunci jenis yang berbeza. Anda boleh mempunyai beberapa kunci yang tali, beberapa kunci yang adalah integer. Anda boleh mempunyai nilai-nilai yang jenis yang berbeza. Anda boleh mempunyai nilai yang rentetan, nilai yang integer, nilai itulah objek atau pelbagai yang lain, sebagai contoh, semua objek pelbagai yang sama, yang merupakan jenis pelik. Anda tidak perlu untuk mempunyai pelbagai yang hanya mendapat satu jenis unsur di dalamnya. Anda boleh mempunyai banyak perkara yang berbeza berlaku di sana. Perkara lain yang perlu diperhatikan adalah bahawa apabila anda melihat sesuatu seperti ini dalam kod anda, yang merupakan PHP sah untuk mengisytiharkan pelbagai seperti ini, 0, 1, 2, 3, 4, 5, yang akan mengisytiharkan dimulakan $ arr menjadi array ini. Tetapi apa yang anda sebenarnya mendapat di bawah hood ini jenis tersirat generasi kunci di mana kita telah mendapat 0-0, 1-1, 2-2, 3 hingga 3. Dan ternyata bahawa walaupun anda lakukan mempunyai pelbagai seperti lelaki ini di sini di mana anda mempunyai a, b dan c sebagai kunci dan kemudian anda mula menggunakan kaedah array menolak untuk mula menggunakan array ini seperti timbunan, supaya anda boleh melihat bahawa objek ini pelbagai, pelbagai ini adalah benar-benar menjadi beban. Kita boleh menggunakan ia sebagai array. Kita boleh menggunakan ia sebagai sebuah jadual hash. Kita boleh menggunakan ia sebagai timbunan. Apabila anda mula menolak perkara-perkara ke array ini perkara pertama yang anda menolak ke ini akan menjadi indeks 0 dan kemudian index 1 dan indeks 2. Anda boleh mendapatkan ini jenis generasi tersirat kunci melainkan anda tentukan mereka jelas. Cara anda menentukan kunci jelas, sudah tentu, adalah dengan menggunakan tatatanda kurungan, yang serupa dengan array kecuali bukannya hanya membenarkan indeks integer di sini, kini kita membenarkan apa-apa. Jika anda mahu kunci anda untuk menjadi rentetan, anda akan menentukan ia seperti ini. Jika anda mahu ia menjadi satu int, anda tentukan dengan int yang anda mahu gunakan. Soalan bahawa setakat ini? Salah satu perkara yang baik mengenai idea ini adalah bahawa anda hanya boleh mempunyai satu nilai yang disimpan dengan kunci tertentu. Jika kita kembali kepada kami perkakas-mari saya padam beberapa barangan ini. Dan mari kita katakan saya memulakan pelbagai untuk menjadi 0, 1, 2, dilakukan. Jika saya kini tahu bahawa, sebagai contoh, jika saya echo $ arr [0] Saya akan mendapatkan 0 nilai yang dicetak keluar, dan sejak ada boleh hanya pernah menjadi salah satu nilai yang disimpan untuk kunci tertentu jika saya menyimpan sesuatu pada $ arr [0], mengatakan, maka saya tahu apabila saya echo $ arr [0] sekali lagi Saya tidak akan untuk mendapatkan 0 dicetak seperti sebelum ini. Saya hanya akan mendapat. Jadi ini pada dasarnya mengatakan bahawa saya tidak boleh mempunyai $ arr [0] menyimpan 2 nilai-nilai yang berbeza. Ia tidak boleh menyimpan kedua-dua 0 dan rentetan, seperti ini benar-benar menggantikan apa yang berada di $ arr [0] sebelumnya. Sebab saya membawa sehingga ini menjalankan ia, lihat apa yang berlaku. Lihat di sini bahawa saya mendapat 0 dicetak dan kemudian turun di sini. Tiada baris baru di sana kerana saya adalah malas dan tidak meletakkan bahawa masuk Apa yang sejuk kira-kira ini adalah kita boleh gunakan ini sebagai satu cara untuk menangkap idea ini set di mana kita tidak boleh mempunyai kunci berganda dalam array. Kita tidak boleh mempunyai kunci yang sama dalam array. Saya tidak boleh mempunyai 0 utama dan nilai 1 dan 0 utama dan nilai atau 0 utama dan nilai sebenar. Kekunci semua ada hanya 1 utama dalam array. Walaupun anda boleh mempunyai nilai yang sama yang disimpan beberapa kali dalam array bawah kunci yang berbeza ia tidak mustahil untuk mempunyai kunci yang sama beberapa kali dalam pelbagai PHP anda. Jika kita melihat masalah ini seterusnya, unique.php, di mana kita mahu membuka fail PHP mengandungi senarai rentetan, satu rentetan setiap baris, dan kita mahu untuk mencari semua rentetan yang unik dalam fail yang semua yang perlu kita lakukan adalah menggunakan salah satu tatasusunan PHP dan menggunakan tali dalam fail sebagai kunci kepada pelbagai ini dan menyimpan mengemaskini pelbagai kami kerana kami menyimpan kekunci ini baru. Seperti yang kita baca setiap baris fail kita boleh menyimpan dalam array, dan pada akhir kita akan mempunyai sebagai kunci kami dalam pelbagai kami semua rentetan unik dalam fail. Adakah yang masuk akal? Mari kita lihat bagaimana kerja-kerja ini. Kami akan membuka, mengikut spesifikasi, fail baru yang dipanggil unique.php. Buka. Alamak, maaf, fail baru. Kami akan bermula dengan tag permulaan dan akhir yang sama. Kami akan menyimpannya dalam seksyen 9, dan kita akan memanggil ia unique.php. Okay, sekarang zum masuk Idea di sini adalah membuka fail, membaca file selaras dengan garis. Bagi setiap baris dalam fail kita akan mempunyai array di mana kita mempunyai  garis sebagai kunci kami. Dan kemudian apabila kita sampai ke akhir di sini Kunci $ arr garis unik dari fail kerana kita tahu bahawa jika saya meletakkan garis ke dalam array ini beberapa kali ia hanya akan menyimpan mengatasi nilai lama, dan kita sebenarnya boleh meletakkan garis pelbagai seperti dirinya seperti itu. Ini adalah jenis pelik. Kami menyimpan sepasang nilai yang sama penting lebih dan lebih dan lebih lagi, tetapi sejak kita dijamin bahawa akan ada hanya 1 utama dipanggil garis jadi jika kita mempunyai fail yang mengatakan fail bunyi haiwan dan ia mempunyai CBC, CBC, Meow, Meow, moo, moo, dan setiap kali kita membaca bunyi haiwan keluar seperti CBC dan kita menyimpannya dalam pelbagai kami, kami mendapat CBC, dan kemudian kali kedua kami menyimpan CBC ia akan menimpa kali pertama bahawa kita disimpan. Pada akhirnya kita hanya akan mempunyai satu catatan dalam array bagi setiap bunyi haiwan dalam fail bunyi haiwan kami. Adakah anda semua berasa yakin bahawa anda boleh menangani pembukaan fail dalam PHP? Salah satu cara untuk melakukannya-mari kita pergi melalui cara ini cepat-satu untuk melakukannya dengan fopen, seperti yang kita lihat sebelum ini. Anda boleh fopen some_file.txt. Anda bisa buka di dalam mod membaca, seperti dalam C. Itulah salah satu cara yang sempurna baik untuk melakukannya. Anda juga maka untuk membaca dalam garis fail demi baris mempunyai fungsi yang sama, ramai di antara mereka, yang anda telah lakukan dalam C. Anda mempunyai fgets. Anda mempunyai feof, walaupun kita tidak suka menggunakan yang kerana, ingat, yang tidak besar dalam C. Anda boleh melakukannya dengan cara yang sama, tetapi di sini adalah satu perkara yang benar-benar sejuk. Maaf, saya tidak mahu lakukan $ file, tetapi terdapat fungsi dipanggil fail dalam PHP, dan fungsi ini di sini adalah sejuk kerana ia membaca keseluruhan kandungan fail yang anda tetapkan, jadi some_file.txt, membaca keseluruhan kandungan fail ini ke dalam array dan kemudian membolehkan anda melelar ke atasnya, yang cukup bagus. Jika kita pergi, sebagai contoh, kepada pelayar web kami dan kita melihat Google untuk fail PHP anda boleh lihat di sini bahawa pengguna kami mengatakan fail yang membaca seluruh fail ke array, dan kita boleh file_get_contents untuk kembali kandungan fail sebagai rentetan, tetapi biasanya hanya mendapat ia sebagai array adalah benar-benar baik kerana apa yang ia ia pecah ia sehingga supaya setiap elemen dalam array adalah salah satu garis fail, jadi jika kita melihat pada 0 fail, itulah baris pertama fail. Fail 1, baris kedua, Fail 2, ketiga baris, dan sebagainya dan sebagainya. Ia tidak akan menjadi baik jika itu semua anda terpaksa lakukan dalam C? Cukup bagus. David menunjukkan ini dalam kuliah, dan ungkapan beliau menunjukkan bahawa di samping kepada standard kami untuk gelung-dalam PHP kita terpaksa ($ i = 0; i <10; i + +), dan anda boleh melakukan ini dalam PHP juga, perkara yang sama- kita juga mempunyai ini membina sejuk dipanggil foreach. Foreach adalah benar-benar berguna apabila iterating atas tatasusunan atau struktur data kerana ia membolehkan anda untuk tarik keluar setiap elemen array tanpa perlu untuk manual melakukan pengindeksan sendiri, tanpa perlu manual mewujudkan pembolehubah indeks, kenaikan ia, tarik keluar nilai dalam array pada ketika itu, kerana itulah satu perkara yang sangat biasa lakukan. Anda mungkin telah dilakukan bahawa tan kali apabila anda telah melakukan barangan C sepanjang semester, jadi dengan ini foreach kita boleh gelung lebih pelbagai fail ini, dan sintaksis adalah bahawa kita mahu gelung kini lebih pelbagai ini dan menyatakan bahawa pembolehubah yang kita akan gunakan untuk menyimpan elemen array ini tempatan, tempatan untuk skop gelung foreach ini, kita akan memanggilnya garis. Jika ia merupakan satu fail perkataan sahaja dan ada satu perkataan dalam satu barisan kita boleh memanggil ia perkataan juga, benar-benar hanya anda memberikan nama ini, apa sahaja yang anda mahu panggil ia, dan kemudian di dalam gelung anda boleh melakukan apa sahaja yang anda mahu dengan baris ini berubah-ubah. Jika ia tidak cukup untuk mendapatkan nilai array dan anda juga mahu mendapatkan indeks bersama-sama dengan ia anda boleh menentukan nama bagi indeks serta nilai, dan kini anda mempunyai akses kepada 2 pembolehubah. Anda mempunyai $ i dan garis mana $ i ialah indeks dalam array, dan garis adalah garis yang anda diambil dari fail. Sebagai contoh, jika kita mahu untuk mencetak echo line 0 fail seperti ini, kita boleh melakukannya seperti ini, "Baris $ i fail adalah $ talian," dan di sini adalah sesuatu yang kita juga tidak pernah melihat lagi sama ada di mana saya hanya benar-benar dilangkau lebih keseluruhan ini% s% d perniagaan bahawa kita terpaksa berurusan dengan dalam C, dan sebaliknya saya telah pergi terus ke menulis pembolehubah selaras dalam rentetan saya. Ini dipanggil interpolasi yang berubah-ubah, tali interpolasi mana anda pemadat pembolehubah yang betul, dan jurubahasa PHP cukup pintar apabila ia membaca melalui rentetan yang bermula dengan dua petikan- tidak petikan tunggal, dengan rentetan dipetik tunggal anda tidak boleh melakukan ini- tetapi dengan tali yang dipetik kembar yang ia membaca melalui ia mencari pembolehubah. Ia memburu mereka ke bawah, dan jika ia melihat pembolehubah ia akan mengambil nilai pembolehubah dan barangan ke dalam tali jika ia boleh menukar ia ke dalam perwakilan rentetan, yang cukup bagus. Untuk sekarang, mari kita mengulas keluar rehat daripada segala-galanya, menyimpan ini, dan apa yang boleh kita lakukan sekarang adalah kita boleh membuka fail bahawa kita boleh memanggil some_file.txt-mari mencipta fail baru dan kita boleh dimasukkan ke dalam sekumpulan barangan karut di sini hanya untuk menguji semua keluar, simpan, hubungi ia some_file.txt, seperti yang saya lakukan di sini di atas, dan sekarang jika saya mengezum keluar hanya untuk memastikan segala-galanya adalah dalam sama direktori- ia kelihatan seperti saya mempunyai unique.php dan some_file.txt dalam direktori yang sama. Jika saya menjalankan unique.php php lihat bagaimana ia mencetak keluar setiap baris dalam fail saya dan apa garisan? Itu cukup kuat, betul-betul? Lihat, ia mengambil masa 3 baris kod untuk membuka fail. Nah, 4 baris kod. Saya tidak boleh dikira hari ini, jelas. Tetapi benar-benar hanya 2 baris menarik kod, kerana 2 yang lain adalah pendakap kerinting, tetapi dalam kod ini banyak kita dapat membuka fail, melelar melaluinya, tarik keluar nombor garis dan garis sendiri dan mencetak ia keluar. Barangan sejuk. Charlotte. [Charlotte] Saya mempunyai soalan tentang sintaks. Jadi foreach tawaran dengan setiap baris tunggal fail yang anda buka, dan kemudian apabila anda mahu melakukan perkara-perkara dengan setiap baris tunggal anda hanya melakukan ia sebagai dan kemudian mengaitkan nilai. [Nate H.] Apa yang boleh anda lakukan di sini-soalan adalah foreach mempunyai kaitan dengan array, jadi sintaks foreach adalah benar-benar foreach, dan notis bahawa terdapat ruang tidak atau apa-apa antara dan setiap. Mereka mempunyai untuk pergi betul-betul bersebelahan antara satu sama lain, dan kemudian ia mengambil masa dalam array, dan kemudian anda mempunyai kata kunci lain yang dipanggil sebagai yang telah berada di situ, dan kemudian selepas itu sebagai sama ada anda boleh meletakkan satu nama yang berubah-ubah, di mana anda akan menarik keluar nilai array, bukan indeks, atau jika anda melakukannya kerana kita telah ditulis di bawah anda mendapat kunci dan nilai-nilai. Anda mempunyai elemen foreach array atau sepasang array dimasukkan kepada nilai atau hanya sebagai nilai. Bergantung kepada apa yang anda perlukan, jika anda tidak perlu kunci, maka anda boleh pergi dengan nilai. Jika anda mahu kunci anda boleh pergi dengan mereka juga. [Charlotte] Saya juga menyedari bahawa kami tidak pernah mengisytiharkan i atau talian. Bagaimana ia tahu apa yang mereka? [Nate H.] Apa yang kamu maksudkan dengan mengisytiharkan? [Charlotte] Kami tidak pernah memberitahu mereka apa yang i atau talian cara. [Nate H.] Kami tidak pernah memberitahu komputer apa yang saya atau talian bermakna dari segi- [Charlotte] Bahawa mereka sedang diindeks atau bahawa they're- [Nate H.] Kami tidak pernah memberitahu bahawa ini adalah sepatutnya menjadi indeks atau kunci dan nilai, dan itulah kerana itulah jurubahasa PHP. Ini berfungsi sebagai perisytiharan itu dan berkata okay, kunci akan menjadi pembolehubah yang dipanggil i disimpan dalam pembolehubah yang dipanggil i. Nilai tersebut akan disimpan di dalam garis ubah dipanggil, jadi ini berfungsi sebagai pengisytiharan pembolehubah ini dan mengatakan $ i adalah kunci, dan $ talian adalah nilai. Ya, Ella. [Ella] Jika kunci tidak dilakukan berangka bagaimana ia memutuskan apakah perintah ia akan mencetak segala-galanya? Adakah ia hanya seperti perintah yang ia dimasukkan ke dalam? [Nate H.] Mari kita mencuba. Mari kita mewujudkan pemboleh ubah yang dipanggil arr, dan boleh kita lakukan pergi ke 7. Katakan 0 pergi kepada pelbagai lain dengan 1, 2, atau epal. Mari kita mengatakan 7 pergi ke 1, b pergi ke 2, dan 3 pergi hingga 4. Ini adalah jenis contoh gila mencari kerana kita mencampurkan sehingga rentetan dan integer seluruh tempat. Tiada perintah yang sebenar kepada pelbagai ini. Maksud saya, kita boleh memerintahkan segala-galanya dalam susunan abjad oleh kunci. Kita boleh memerintahkan segala-galanya abjad oleh nilai. Kita boleh cuba dan mengambil kira bahawa beberapa rentetan, beberapa ints, dan kita boleh cuba dan menukar mereka semua jenis yang sama dan melihat apa yang berlaku, atau kita boleh menganggap mereka dalam nilai di mana kita sudah memasuki mereka di mana kita meletakkan lelaki ini dalam pertama, lelaki ini di tempat kedua, lelaki ini di tempat ketiga, lelaki ini dalam keempat, dan sebagainya et. Mari kita lihat apa yang berlaku apabila kita menjalankan kod ini. Jika kita tatal ke bawah dan melakukan perkara yang sama perkara, dan di sini ia bukan mencetak barisan baru. Apabila ia membaca perkara keluar fail ia termasuk barisan baru dalam nilai, yang mengapa ia dicetak dengan baik, sedangkan di sini ia tidak, jadi itulah mengapa segala-galanya smushed bersama-sama. Mari kita tambahkan baris yang baru hanya untuk membuat perkara-perkara yang baik. Mari kita jalankan lagi ia, dan sebagainya di sini melihat apa yang berlaku. Ia dicetak segala-galanya dalam perintah itu di mana kita meletakkan ia ke dalam array. Ia tidak memelihara perintah dalam erti kata itu. Akan kembali kepada masalah ini unik di mana kita mahu menjadi mampu untuk melelar lebih fail, dan kami akan memberikan some_file.txt, dan kita pergi untuk melelar lebih seperti ini. Kami berkata bahawa kita mahu menggunakan array untuk memastikan bahawa kita akan mendapat semua garis unik keluar dari sana, dan kita boleh melakukan yang benar-benar mudah dengan hanya menyimpan dalam pelbagai bahawa kita sudah tentu mengisytiharkan luar skop gelung, dan kita berkata bahawa jika kita menggunakan baris dalam fail sebagai kunci dalam pelbagai kami jika kita memasuki garis pendua kita akan mengatasi nilai sebelumnya. Ia tidak pernah mustahil untuk mempunyai 2 kunci yang sama dalam pelbagai sama. Kita boleh berbuat demikian. Kami akan menghilangkan kenyataan echo ini di sini. Di sini kita menyimpan baris dalam fail dalam pelbagai kami menggunakan dirinya sebagai kunci. Tiada apa-apa kepadanya, dan ia ternyata bahawa kita tidak perlu kunci ini. Kita tidak perlu bahawa saya berubah-ubah. Pada ketika ini, jika kita adalah untuk melakukan satu lagi gelung foreach dan kita gelung lebih arr setiap dan garis kini jika kita echo-oops, maaf. Kita tidak boleh menggunakan koma. Kita perlu menggunakan ini sebagai kata kunci. Sekarang jika kita echo garis kita harus mendapatkan semua perkataan yang unik dalam fail. Jika kita pergi sehingga some_file.txt, dan katakan kita lakukan epal, pisang, epal, epal, pisang, jika kita sedang mencetak semua perkataan yang unik dalam fail ini kita hanya perlu mendapatkan epal dan pisang untuk mencetak. Jika kita menyimpan ini, sekarang di sini kita akan zoom kembali dalam, unique.php php, dan ta-da. Kami telah berjaya uniqued fail. Bahagian akhir masalah ini meminta anda untuk menyelesaikan pelbagai ini sebelum anda dicetak keluar kerana dalam contoh mudah ini bahawa kita baru sahaja dilakukan kita bernasib baik dalam erti kata bahawa fail kita lakukan ini contoh yang tersusun dengan epal dan pisang. Ia telah disusun. Tetapi menggunakan fungsi apapun yang mudah anda boleh menyusun pelbagai, yang cukup bagus. Perkara terakhir yang saya mahu bercakap dengan anda semua tentang benar-benar cepat adalah bahawa ini jenis PHP adalah semua baik dan baik, dan ia sangat berguna untuk tahu bagaimana untuk melakukannya jika anda pernah perlu untuk melakukan sedikit, perkara yang cepat programatik. Sebagai contoh, jika saya perlu untuk menulis program itu, berkata, meletakkan semua orang kepada bahagian-bahagian yang saya tidak akan pergi dan menulis di C. Ia akan menjadi panjang. Ia akan menjadi jenis sakit, terutamanya jika terdapat fail yang terlibat, hanya kerana anda semua telah dilihat. Ia begitu baik bahawa hanya dengan kod ini banyak di sini kita mampu untuk merobek melalui fail, tarik keluar semua nilai-nilai yang unik dan mencetak mereka keluar. Walau bagaimanapun, bagi tugasan anda, untuk projek-projek anda, jika anda membina laman web dengan PHP kuasa adalah bahawa kita menjalankan fail PHP kita melalui penterjemah ini, dan jurubahasa memproses segala-galanya di dalam tag PHP, meninggalkan segala-galanya tidak disentuh dan meludah keluar keputusan. Kita boleh melakukan ini untuk membina HTML programatik. Sekarang, jika kita kembali kepada spesifikasi, masalah terakhir dalam spesifikasi bercakap tentang idea ini kepekatan dan mewujudkan menu drop-down, yang anda mungkin atau mungkin tidak mahu lakukan, bergantung kepada apa projek akhir anda lakukan, yang membolehkan pengguna untuk memilih dari senarai semua kepekatan yang mungkin kepekatan mereka. Sekarang, ini adalah jenis sakit untuk menaip keluar ini dan perlu melakukan semua ini secara manual, terutama apabila anda perlu memastikan bahawa anda mempunyai semua kurungan sudut di tempat yang betul dan semua petikan di tempat yang betul, jadi dengan PHP, anda boleh melakukan ini programatik, dan anda boleh melakukan ini benar-benar cepat. Mari kita lihat bagaimana untuk melakukan ini. Kami akan membuka fail baru. Kami akan meletakkan dalam tags PHP kita. Kami akan memanggilnya concentrations.php, dan kini apabila anda melakukan ini, jenis perkara yang baik untuk berfikir tentang apabila anda cuba untuk campuran dan perlawanan PHP dan HTML anda memikirkan, okay, apakah bahagian yang saya mahu programatik menjana? Apakah bahagian yang saya programatik boleh menjana? Ia adalah benar bahawa anda boleh melakukan semua HTML anda di dalam blok PHP. Anda boleh echo semua HTML sebagai rentetan. Sebagai contoh, jika saya mahu mula melakukan tag pilih dalam PHP Yang boleh saya katakan gema, mengatakan pilih nama kepekatan =, dan kemudian turun di bawah saya boleh mempunyai satu lagi tag gema atau gema lain dipanggil menutup pilih. Ini adalah satu cara untuk melakukannya kerana apa ini benar-benar akan melakukan mencetak rentetan ini apabila ia berjalan melalui jurubahasa PHP, jadi hasilnya akan HTML. Jika saya simpan fail ini kerana ia adalah sekarang dan saya menjalankan concentrations.php php melihat apa yang saya dapat. Saya mendapat tag ini terbuka pilih dekat. Jika saya adalah untuk melakukan ini dan saya adalah untuk menyelamatkan keputusan ini ke fail, berkata, concentrations.html-tunggu, ia kelihatan seperti l telah pergi ke sampingan yang lain- kini jika saya membuka sini concentrations.html anda lihat saya mempunyai fail HTML yang sah. Adakah yang jenis pelik? Kami menggunakan PHP untuk mencipta HTML, mewujudkan HTML yang sah. Cara kita lakukan ialah kita hanya mempunyai cetakan PHP HTML yang kita mahu ia untuk mencetak. Ini adalah benar-benar bagaimana laman web PHP bekerja. Apabila anda melawat sebuah laman web yang menghantar anda kepada sesuatu seperti sesuatu, sesuatu, sesuatu dot com slash index.php komputer benar-benar memanggil index.php, berjalan melalui jurubahasa PHP, dan apa-apa sampah keluar ia menghantar kembali ke penyemak imbas dan berkata hey, pelayar, mentafsirkan ini sebagai HTML. Perkara yang baik adalah bahawa ia boleh menjadi sakit untuk sentiasa menulis echo, echo, echo, echo dan sertakan segala-galanya dalam petikan seperti ini, jadi jika anda mahu menulis HTML yang akan menjadi statik diri anda boleh melakukannya seperti ini, meletakkan ia di luar, tutup, dan kemudian di sini anda hanya diletakkan di dalam tag PHP yang anda tahu anda mahu programatik menjana, dan dalam kes ini ia adalah orang-orang tags pilihan yang sakit untuk menjana. Sebagai contoh, kita boleh menjana tags pilihan seribu dengan melakukan sesuatu seperti ini, $ i <1000, i + + dan berkata nilai pilihan echo = $-Oop, saya tidak boleh berbuat demikian. Nah, mari kita mencubanya dan lihat apa yang berlaku. $ I dan kemudian mengatakan $ i