[Powered by Google Translate] [Bagian 8] [Kurang Nyaman]
[Nate Hardison] [Harvard University]
[Ini adalah CS50.] [CS50.TV]
>> Selamat datang kedua kami untuk bagian terakhir.
Dalam minggu ini kita akan berbicara tentang PHP, dan kemudian minggu depan
kita akan melakukan sedikit ulasan untuk Kuis 1.
Kita akan mulai pada halaman 3 dari masalah set pak,
dan kami akan bekerja melalui bagian dari pertanyaan yang cukup cepat.
Pada halaman 3, kita mulai berbicara tentang perbedaan antara C dan PHP
dalam arti bahwa PHP adalah bahasa dinamis diketik,
sedangkan C adalah statis diketik,
dan telah ada yang benar-benar cepat dilakukan coding dalam sesuatu seperti PHP
atau Python atau Ruby sebelumnya, JavaScript?
Benar-benar baru? Oke.
>> Semua bahasa yang saya sebutkan
sangat berbeda dengan bahasa seperti C dan C + + dan Java
dalam arti bahwa ketika Anda mendeklarasikan variabel Anda tidak perlu mendeklarasikan
apa variabel itu, sehingga di C kita terjebak harus selalu mengatakan
ini akan menjadi variabel int, atau ini akan menjadi variabel char *,
sedangkan dengan PHP, dengan Python, dengan Ruby,
dengan banyak bahasa-bahasa yang lebih modern Anda tidak perlu melakukan itu sama sekali.
Anda hanya mendeklarasikan variabel Anda, dan dalam kasus PHP
Anda menyatakan bahwa itu sebuah variabel dengan awalan dengan tanda $,
dan kemudian jenis variabel ditentukan oleh nilai apa pun itu memegang,
yang agak dingin.
Untuk bermain-main dengan hal ini agak sedikit, kita memiliki contoh kode PHP di sini
di antara tag awal dan akhir.
Kami menggunakan semacam ini seperti HTML dalam arti bahwa
kita punya ini sudut kurung di sini untuk membuka dan menutup.
Anda akan melihat ini dengan HTML.
Anda akan melihat jenis yang sama dari sintaks dengan XML juga.
>> Hal ini menunjukkan awal dari blok PHP.
Ini? Php khusus untuk PHP.
Kami menutup segala sesuatu dengan> juga?.
Mari kita membuka file dalam alat kami menggunakan apa pun yang Anda inginkan.
Dalam paket ini dikatakan untuk memanggil dynamic.php.
Sebenarnya, Anda bisa menyebutnya apa pun yang Anda ingin, tetapi nama file akan muncul
dan kemudian menjadi penting, jadi hanya ingat apa pun yang Anda menyebutnya.
Aku akan beralih ke alat,
dan aku akan membuat sebuah direktori untuk
Bagian 9 Saya percaya kita berada di sekarang.
Dan kita akan masuk ke bagian 9,
dan aku akan menggunakan gedit.
Mari kita lihat, gedit, dan aku akan menelepon dynamic.php tambang.
Boom.
Dalam dynamic.php, karena ini adalah file PHP
dan saya ingin menjalankan ini melalui juru PHP
Saya harus memulai semuanya off dengan tag tersebut terbuka,
jadi aku akan mulai tepat mereka pergi,
memberi diriku sedikit ruang di antara tag,
dan kemudian titik dari latihan ini adalah untuk bermain-main dengan
fungsi ini disebut GetType, sehingga GetType, fungsi ini di sini.
>> Perhatikan bahwa ada yang tidak ada garis bawah atau ruang atau tanda hubung atau sesuatu seperti itu
memisahkan 2 kata, mendapatkan dan ketik, hanya satu kata sama sekali.
Tapi apa ini akan lakukan adalah jika saya lulus dalam variabel ke GetType,
mengatakan $ var atau $ x,
ini akan memberitahu saya jenis dalam format debugging
apa nama jenis yang.
Kita akan bereksperimen di sini.
Secara khusus, jika Anda melihat kembali spec pset
kita punya baris yang berbeda beberapa kode di sini.
Pada baris pertama dari kode kita menginisialisasi variabel ini, $ var,
untuk menjadi sama dengan 7, dan kemudian kita memiliki garis printf
yang mengatakan hey, var printf kosong.
Printf adalah salah satu dari banyak cara kita dapat mencetak hal-hal di PHP.
Sering kali Anda akan melihat fungsi gema digunakan sebagai pengganti printf,
tapi printf kita semua akrab dengan yang telah coding di C untuk sementara waktu.
Apa yang benar-benar dapat lakukan adalah mari kita lihat apakah karya copy dan paste.
Aku akan memberikan ini mencoba.
Kami akan kembali ke alat.
Oke, dan di sana kita pergi.
Dan jarak agak funky, tapi di sini kita pergi.
Kami punya kode ini di sini.
>> [Mahasiswa] Apakah gaya yang tidak baik untuk tab itu?
Maaf?
[Mahasiswa] Apakah konvensional untuk tab itu?
Benar, jadi Sam bertanya apakah itu konvensi untuk tab atau tidak.
Biasanya ya.
Dalam hal ini saya telah memilih untuk tidak.
Jujur, Anda akan melihat hal yang berbeda antara programer yang berbeda.
PHP biasanya sering digunakan dalam kombinasi dengan HTML
dan bahasa lainnya, sehingga kadang-kadang pencetakan akan terlihat sedikit funky
jika Anda indent dalam start PHP dan tag akhir.
Ini benar-benar tergantung.
Dalam hal ini copy dan paste tidak paste tab dalam bagi saya,
tapi itu pasti tidak, seperti yang Anda katakan, membuatnya lebih jelas.
Baiklah, jika Anda menyimpan kode ini di dynamic.php
maka apa yang dapat Anda lakukan adalah turun ke jendela terminal Anda di mana saya benar di sini
di gedit, dan untuk melakukan setara dengan kompilasi
menggunakan membuat dan kemudian menjalankan kode Anda di C
semua yang harus Anda lakukan dengan file PHP adalah start up interpreter PHP,
yang merupakan program kecil yang disebut PHP,
dan argumen Anda berikan kepada penafsir adalah file yang ingin Anda menafsirkan.
Dalam kasus ini, dynamic.php.
Whoops, di mana aku menaruhnya?
Oh, aku taruh di bagian 9, dan di sinilah aku. Itulah sebabnya.
>> Sekarang jika saya menjalankan lagi
kita melihat bahwa dalam panggilan fungsi pertama saya GetType
var adalah integer.
Dalam var yang berikutnya adalah string, dan kemudian di var yang ketiga adalah boolean.
Yang menarik dari hal ini adalah jika kita gulir kembali kita melihat bahwa
ini adalah jenis yang sama dengan yang yang kita miliki di C.
Kami memiliki ints di C.
Kami memiliki semacam string di C,
sehingga string yang bukan tipe benar-benar legit dalam arti bahwa
String CS50 kami adalah benar-benar apa?
Maaf? Missy?
[Missy] Char *.
Ya, inilah char * kita gunakan.
Pada awal semester kami menggunakan tipe string,
tapi itu benar-benar char * di bawah tenda.
Kami hanya mengetik didefinisikan, sedangkan di PHP string ini adalah jenis yang sebenarnya.
Tidak ada lagi ini jenis barang * char.
>> Anda akan melihat bahwa kita bisa melakukan banyak hal lebih dengan string
jauh lebih mudah di PHP daripada yang kita bisa di C,
dan akhirnya, kita memiliki jenis boolean, dan perbedaan besar di sini adalah bahwa
jika kita gulir kembali turun kita melihat bahwa nama jenis
sekarang integer, string, dan boolean bukan int dan bool,
dan saat Anda mengambil bahasa pemrograman yang berbeda,
dengan asumsi bahwa pada beberapa titik dalam hidup Anda, Anda akan bersentuhan dengan
yang berbeda Anda akan melihat kebiasaan kecil seperti ini
di mana C panggilan ints bilangan bulat.
Beberapa menyebutnya bilangan bulat.
Ada istilah lain yang Anda akan mengalami.
Int besar yang kita lihat hari ini di SQL.
Ada juga nomor dan kemudian bool, boolean,
segala macam perbedaan di sana.
>> Hal ini tidak terlalu menarik tapi sekarang aku akan memberi Anda sedikit waktu-
jika kita tampilannya kembali-untuk bekerja melalui latihan ini di bagian bawah halaman 3
di mana ia bertanya apa jenis sesuai dengan nilai-nilai di sini di bagian bawah.
Kami memiliki 3,50.
Kami memiliki hal ini di sini, yang menarik.
Kami belum melihat itu sebelumnya, meskipun jika Anda sudah mengikuti dari awal dalam kuliah
Anda mungkin sudah tahu apa itu.
Lalu kami memiliki ini, yang ini agak funky.
Anda menyadari hal ini.
Apa ini di C?
Sam? Apa yang akan memberi Anda di C?
Ini akan membuka file bernama dynamic.php dan membuatnya mudah dibaca.
Ya, dan apa yang akan menjadi jenis variabel yang kita akan menugaskan ini kepada bintang file? >>.
Tepat, kami akan menugaskan ini kepada bintang file.
Ini adalah PHP yang sah juga.
Jalankan itu. Lihat apa yang terjadi ketika Anda melewati itu ke GetType.
Dan kemudian juga memeriksa apa nol, apa yang mungkin di PHP.
Saya akan memberi Anda beberapa menit.
Anda benar-benar dapat menyalin dan menyisipkan nilai-nilai di,
dan kemudian kita akan melakukan panggilan acak kecil pada Anda
dan melihat apa yang Anda punya.
>> [Mahasiswa] Saya punya pertanyaan. << Ya.
Dalam salah satu ceramah David mengatakan ada sesuatu yang Anda dapat menempatkan di bagian atas file Anda
sehingga Anda tidak perlu mengetik di PHP setiap waktu.
Apa itu?
Dia mungkin berbicara tentang bang pon, bang hash.
Ini direktif bahwa jika Anda menandai file sebagai executable
maka apa yang dilakukannya adalah ketika Anda menjalankan file
akan memberitahu program shell
menggunakan interpreter PHP untuk menafsirkan isi dari file tersebut.
Pertanyaan yang apa ini jalur khusus
bahwa kita bisa menyertakan di bagian atas file PHP kita tidak harus menyertakan
ini PHP line atau perintah PHP setiap kali kita ingin mengeksekusi file?
Dan Anda benar-benar dapat melakukan hal ini dengan sekelompok file yang berbeda.
Saya percaya itu tergantung pada di mana biner PHP disimpan,
tetapi sering usr / bin / php adalah tempat yang baik untuk memulai.
Anda dapat memikirkan hal ini persis dengan kembali ke alat Anda
dan mengetik mana php.
Perintah yang angka keluar ketika Anda menjalankan biner
atau perintah mana file yang sesuai adalah.
Ini memberitahu saya bahwa PHP benar-benar aliasing ini file biner
yang disimpan di usr / bin, yang mana banyak binari sistem dipasang.
Sebagai contoh, jika saya gulir ke atas, sekarang aku sudah menempatkan ini #! baris di sini
Aku dapat menggulir ke bawah, dan aku bisa mencoba untuk menjalankan
dynamic.php, tapi saya mendapatkan error ini tentang ijin ditolak,
dan apa artinya adalah bahwa file ini saat ini tidak memberikan izin dieksekusi.
Ini tidak ditandai sebagai file bahwa seseorang dapat berjalan.
>> Ketika Anda membuat atau berlari dentang dan Anda mendapat dieksekusi dari itu
compiler cukup cerdas untuk mengetahui bahwa hei, aku sedang membangun dieksekusi.
Anda mungkin ingin untuk melaksanakannya, sehingga secara otomatis akan mengkonfigurasi
izin untuk Anda.
Hal ini tidak terjadi, meskipun, ketika Anda membuat file normal dari awal,
alasan yang biasanya Anda tidak ingin memiliki file apapun pada sistem Anda akan dieksekusi,
sehingga Anda benar-benar harus pergi dan melakukannya secara manual.
Cara termudah untuk melakukannya adalah dengan perintah chmod,
dan chmod + x bilang menambahkan bit executable
karena ada sedikit membaca, sedikit menulis dan bit executable,
r, w dan x,
dan mengatakan chmod + x akan mengaktifkan bit executable
untuk kemudian file yang kita tentukan, yang dalam hal ini akan dynamic.php.
>> [Mahasiswa] Apakah itu dihidupkan untuk semua orang?
Mari kita periksa ini, jadi bagaimana aku memeriksa untuk melihat perizinan?
Apakah Anda tahu bagaimana saya akan memeriksa untuk melihat hak akses file?
[Respon siswa tidak terdengar]
Maaf >> [Siswa]? XSD.
XSD memberi kita file dalam hacks.
Daftar semua file,-l, akan menunjukkan semua file dalam direktori saya
jenis dalam daftar panjang mereka, verbose, dan jadi di sini kita melihat bahwa
file ini dynamic.php
terakhir diubah 5 November pada jam 4:21.
Pemilik file ini jharvard.
Itulah pengguna yang login
Itulah pengguna saya bekerja sebagai,
dan jika Anda juga dalam alat Anda juga bekerja sebagai jharvard pengguna.
Anda berada di kelompok mahasiswa,
dan ini adalah hal-hal yang Anda akan melihat cukup sering.
>> Kita bisa pergi ke banyak detail di sini,
tetapi untuk sebagian besar apa yang ingin Anda lihat ketika Anda mencari untuk melihat
apakah atau tidak file executable adalah terutama
pengguna yang memiliki file tersebut, pemilik,
jadi ini jharvard, dan kemudian kita harus
izin bit di sini di sebelah kiri,
dan cara membaca ini adalah bahwa bit terakhir
biasanya digunakan untuk menandai apakah atau tidak-setidaknya dalam kasus ini
ini bit terakhir sering akan diatur untuk iklan untuk menunjukkan
bahwa file tersebut adalah direktori dan bukan hanya file normal.
Kemudian berikut 3 bit di sini
menentukan hak akses bahwa pemilik file tersebut memiliki,
sehingga dalam hal ini jharvard kasus ini, sebagai pemilik dari file tersebut, dapat membaca dan menulis file ini,
tapi ada dash mengatakan bahwa jharvard tidak dapat mengeksekusi file ini.
The 3 bit berikutnya adalah untuk kelompok, jadi ini adalah kelompok mahasiswa,
jadi jika ada beberapa pengguna pada alat saya,
dan kami memiliki beberapa pengguna sebagai bagian dari kelompok mahasiswa,
maka mereka semua bisa membaca file ini, tetapi mereka tidak bisa menulis,
dan juga orang lain, dunia
hanya dapat membaca file ini juga.
Ada Langgan, baik panjang tentang hal ini,
sehingga Anda dapat membaca secara online.
Dalam spec set masalah yang kita masuk ke ini secara lebih rinci.
>> [Mahasiswa] Apakah 218 mengacu kepada dunia?
The 218 adalah-off dari atas kepala saya, saya lupa,
tapi tidak ada.
Mari kita lihat. Saya blanking pada itu sekarang.
Kembali ke apa yang kami akan lakukan dengan chmod + x
di mana kami ingin memberikan hak akses executable dynamic.php,
dan pertanyaannya adalah apakah atau tidak ini akan memberikan izin eksekusi untuk semua orang
atau hanya jharvard, dan kita dapat melihat hal ini dengan
menjalankan perintah dan mengetik ls-l,
dan sekarang kita melihat bahwa itu ditandai sebagai executable.
Anda lihat bahwa ada perubahan warna.
Sekarang dynamic.php tercantum dalam hijau,
dan sepertinya jawaban atas pertanyaan adalah apa, Charlotte?
[Charlotte] Hanya jharvard. >> Hanya jharvard, yeah.
>> Jika kita ingin mengubah bit executable pada untuk semua orang
bagaimana mungkin kita melakukan itu?
Setiap pikiran >> A? + X?
Ya, tepatnya.
Charlotte mengatakan kita bisa melakukan chmod dari x + dari dynamic.php,
dan sekarang jika kita menjalankan ls-l kita lihat bahwa bit executable
memang dihidupkan untuk semua orang.
Dan Anda benar-benar dapat melakukan kebalikan dari ini, sehingga Anda dapat mematikannya untuk semua orang
menggunakan minus.
Sekarang itu dimatikan, dan sekarang kita bisa mengubahnya kembali untuk jharvard
sehingga kita benar-benar dapat menjalankan sekarang,
dan sekarang Anda lihat ketika kita menjalankan kode ini khusus #! line di atas,
#! line, mengatakan shell,
mengatakan terminal kami hey, ketika file ini dijalankan,
menggunakan / usr / bin / php untuk menafsirkan file ini
dan kemudian mencetak output.
[Pertanyaan siswa tidak terdengar]
Tentu, biarkan aku gulir kembali. Sama seperti ini.
Anda akan melihat semua arahan mulai dengan pound ini dan kemudian tanda seru,
kadang-kadang disebut bang, shebang hash.
>> [Mahasiswa] Bagaimana kita bisa menjalankannya dengan dynamic.php php sebelum kita membuat executable?
Pertanyaannya adalah bagaimana kita bisa menjalankan ini menggunakan biner PHP
sementara dynamic.php tidak dieksekusi?
Ini adalah super penting karena ini adalah persis bagaimana
itu akan bekerja ketika Anda menulis sejumlah masalah 7.
Sebagian besar file waktu PHP tidak langsung dieksekusi.
Cara yang berhasil adalah karena itu adalah biner PHP yang dieksekusi.
Penafsir adalah hal yang sedang dijalankan,
dan jadi apa yang dilakukannya secara harfiah menyedot di seluruh isi
file dynamic.php kami dan garis pergi demi baris
dan melaksanakan perintah-perintah tersebut, sehingga ia menggunakan file PHP kita
sebagai daftar instruksi.
Ini tidak secara langsung dijalankan.
Itulah di mana kita mengatakan bahwa file-file ini ditafsirkan pada waktu berjalan.
Ini adalah bahasa run time bukan sesuatu yang ditentukan pada waktu kompilasi,
bukan bahasa dikompilasi seperti C.
>> Apakah ada cara untuk mendapatkan bahasa run time untuk bertindak seolah-olah itu adalah bahasa waktu kompilasi,
seperti jika Anda memiliki semua berjalan dilakukan pada server
bukan-Anda tahu apa yang saya maksud?
Ya, jadi pertanyaannya adalah
apakah ada cara untuk mendapatkan bahasa run time untuk bertindak lebih seperti jenis waktu kompilasi dari bahasa?
Dan ada, maksudku, yang merupakan bidang penelitian aktif untuk banyak perusahaan-perusahaan.
Saya percaya Facebook telah melakukan banyak pekerjaan dengan PHP
dan menyusun ke bawah, sehingga lebih cepat, mengoptimalkan itu
karena situs mereka dibangun di atas PHP.
Jika anda sudah mengikuti node.js sama sekali,
yang merupakan jenis juru JavaScript
untuk dapat menjalankan JavaScript di luar browser, di luar browser web Anda,
karena secara tradisional JavaScript hanya akan berjalan dalam Firefox atau Chrome,
dan itu akan digunakan untuk membuat animasi dingin terjadi pada halaman web
dan membuat halaman web Anda yang dinamis.
Yang telah dibangun pada banyak pekerjaan yang telah dilakukan Google
untuk membuat JavaScript dan C + +
mengikat bersama-sama, sehingga ada banyak penelitian aktif untuk
mendapatkan bahasa untuk berinteraksi dan mengoptimalkan mereka,
terutama karena begitu banyak orang dapat kode dalam PHP dan JavaScript
karena itu jauh lebih mudah.
Ini jauh lebih baik. Anda tidak memiliki pointer.
Anda tidak memiliki jenis mengambang sekitar.
Mereka ingin mendapatkan manfaat dari bahasa waktu kompilasi
dengan semua jenis pemeriksaan dan kecepatan dan penggunaan memori yang lebih rendah dan semua itu
sementara tetap mempertahankan fleksibilitas dan kemudahan penggunaan yang baru.
>> Kembali ke rencana awal kami serangan.
Kami punya beberapa pertanyaan-pertanyaan di sini di spec set kami masalah.
Mari kita pergi melalui mereka benar-benar cepat, dan kita akan pergi di sekitar ruangan.
Charlotte, apa jenis adalah 3,50?
[Charlotte] Itu ganda. >> Ini ganda.
Jimmy, apa ini yang berikutnya? >> Array.
Sebuah array, mengagumkan, dan Jared, apa yang fopen?
[Jared] Ini sumber daya >> Ini sumber daya..
Itu jenis yang baru, bukan bintang file, bukan file.
Ini sumber daya adalah jenis di PHP,
dan aku minta maaf, Ella, null terakhir adalah apa?
Null.
Null, bagaimana itu dieja di PHP? >> Cara yang sama.
Dengan cara yang sama, modal >> Ya?.
Ya, baik-baik saja.
Di sini kita pergi, kita punya ganda, kami punya sebuah array,
kita punya sumber daya, dan kemudian kita punya nol.
Mari kita lihat sekarang memiliki Anda melihat-
mari kita lihat, jadi sekarang saya kira apa yang saya juga ingin lakukan adalah menarik
ini halaman web di sini, ini php.net / manual,
jadi jika kalian copy itu dan membuka browser web.
Aku akan menarik Chrome, menempatkan bahwa masuk
Saya ingin menunjukkan hal ini bukan hanya karena
kita bisa bicara sepanjang hari tentang jenis dan semua hal menyenangkan
melainkan karena ini adalah manual PHP,
dan ada banyak programmer PHP di luar sana.
Ada banyak situs PHP di luar sana,
dan sebagai hasilnya, ada banyak dokumentasi di PHP,
dan manual, php.net ini, adalah tempat yang benar-benar baik untuk pergi
setiap kali Anda mengalami pertanyaan tentang apa cara terbaik untuk melakukan X di PHP
atau apa fungsi terlihat seperti?
Hanya jenis semakin akrab dengan apa ini tampak seperti karena
Anda akan datang ke sini sering, sedikit untuk masalah set 7.
>> Jika Anda akhirnya melakukan sebuah proyek akhir yang menggunakan PHP
ini akan menjadi tempat Anda akan menjadi sangat akrab dengan.
Seringkali cara orang melakukan ini adalah mereka menggunakan Google untuk mencari situs,
dan mereka tidak menggunakan kotak pencarian yang di sini di kanan atas, yang merupakan jenis kecil.
Jika Anda Googling sekitar untuk ada hubungannya dengan PHP dan Anda melihat
salah satu link panduan pop up Anda biasanya dapat mengandalkan bahwa
sebagai sumber daya yang cukup baik.
Mengagumkan, begitu keluar dari jenis, hanya ingin tahu,
mana yang belum kita lihat?
Apa pun yang kita belum melihat di sini?
[Mahasiswa] Sumber. >> Kami melihat sumber daya dengan panggilan fopen.
[Mahasiswa] Objects Objects >> kami belum melihat pasti..
Callback kita belum melihat.
Ada beberapa pseudo-jenis.
Kami pasti hanya melihat integer dan ganda.
Kami tidak melihat beberapa yang lain, jadi jika kita klik pada bilangan bulat
kita bisa melihat apakah ada bilangan bulat lain yang mereka miliki di sini?
Apakah mereka semua-begitu integer, integer, integer.
Beberapa bahasa memiliki tipe integer yang lebih besar,
seperti kita lihat di MySQL saat ini ada int dan kemudian int besar.
Cool.
>> Jadi, PHP manual.
Mari kita kembali ke spesifikasi set kami masalah, dan sekarang kita akan gulir ke bawah ke halaman 4.
Salah satu hal yang terjadi ketika Anda mendapatkan bahasa
yang tidak memiliki mengetik statis, sehingga bahasa-bahasa di mana Anda harus menyatakan
jenis depan sampai variabel
adalah Anda mendapatkan kasus di mana Anda mungkin mulai memiliki variabel dari berbagai jenis
berinteraksi satu sama lain,
dan PHP melakukan hal ini di mana ia mencoba untuk melakukan
apa yang dianggapnya hal yang paling masuk akal untuk dilakukan
ketika Anda memiliki 2 jenis yang berbeda berinteraksi satu sama lain.
Sebagai contoh, jika kita melihat ini baris kode di sini
Anda melihat bahwa kami punya apa yang terjadi ketika
kami mencoba dan menambahkan string 1 ke 2 integer.
Apa yang terjadi jika kita mencoba dan menambahkan string yang bukan nilai numerik
tapi karakter lebih aktual, CS ke nomor 50?
Kemudian kita akan melihat apakah ada sesuatu yang berbeda yang terjadi di mana
bukannya menambahkan string ke nomor kita menambahkan nomor ke string,
dan seterusnya dan sebagainya ke titik di mana kita mendapatkan
semacam hal aneh di sini di mana kita punya 7 + sejati.
Apa sih artinya?
>> Jika kalian pergi ke depan dan paste beberapa kode ini ke alat Anda.
Anda dapat menyimpannya di dynamic.php.
Kita akan lihat apa yang terjadi.
[Mahasiswa] Hanya menggunakan cetak, tidak printf?
Ya, sehingga Anda akan menemukan bahwa cetak juga merupakan fungsi yang valid untuk mencetak di PHP.
Ada banyak cara yang berbeda untuk melakukannya.
Kita akan melihat dengan beberapa contoh di kemudian hari setelah kami mulai berbicara
tentang masalah unik yang kita akan menulis
dan kemudian masalah konsentrasi bahwa kita akan menulis
bahwa meskipun kita memiliki fopen dan fclose
itu sering tidak cara paling sederhana untuk membaca di isi file.
PHP memiliki banyak dari C-seperti peninggalan.
[Mahasiswa] Ketika saya dimasukkan ke dalam semua 6 hal-hal saya hanya mendapatkan satu nomor sebagai output.
[Nate H.] Bila Anda memasukkan semua 6 hal ini.
Mari kita lihat itu karena itu mungkin-
satu hal adalah bahwa panggilan cetak tidak dihentikan pada akhir dengan baris baru.
Ada yang tidak ada baris baru memisahkan masing-masing panggilan cetak,
jadi mungkin Anda mendapatkan satu nomor besar,
dan itu benar-benar hanya campuran dari karakter baris baru.
[Mahasiswa] Oke, bagaimana saya pastikan-
Nah, ada beberapa cara yang berbeda.
Anda secara manual bisa dimasukkan ke dalam sebuah cetak dari sebuah karakter baris baru,
gema dari karakter baris baru,
mencetak baris baru.
[Mahasiswa] Jadi gema adalah hal yang sama seperti printf?
>> Printf seperti C printf
di mana Anda mencetak string diformat.
Kau memasok format string dan kemudian semua variabel placeholder.
Ini sering sesuatu yang tidak digunakan-
mari kita lihat, sebagai disclaimer,
Saya kurang akrab dengan PHP dari saya dengan bahasa web lainnya,
dan ketika saya telah diprogram dalam PHP Saya biasanya tidak menggunakan printf
karena saya merasa lebih cepat untuk menggunakan kemampuan tali interpolasi yang memiliki,
yang kita akan pergi ke dan saya akan menunjukkan kepada Anda hanya dalam satu detik,
sedangkan di C kita semacam harus melakukan hal Hacky untuk mendapatkannya untuk mencetak dengan benar.
Anda benar-benar dapat menempatkan variabel langsung ke string di PHP.
Printf adalah jenis terlalu lama untuk apa yang biasanya saya lakukan. Ya, Ella.
[Ella] Umumnya jika Anda mendapatkan error artinya-
seperti di C itu tidak memberitahu Anda tepat di mana kesalahan dan apa itu,
sehingga artinya melihat melalui seluruh kode Anda dan mencari tahu?
Ini biasanya lebih ditargetkan dari itu.
Saya pikir dalam kasus itu sedikit off,
jadi saya pikir dalam kasus yang kita hilang titik koma.
Itu berusaha untuk memahami segalanya,
sehingga seperti ini bahasa ditafsirkan, penafsir akan mencoba
dan melakukan yang terbaik untuk membuat semuanya bekerja dengan tepat.
>> Anda akan melihat, misalnya, dalam JavaScript
Anda akan sering-line pernyataan diakhiri dengan titik koma seperti yang mereka lakukan di PHP,
seperti yang mereka lakukan di C.
Dalam JavaScript beberapa interpreter JavaScript
dalam banyak browser akan dimasukkan ke dalam titik koma untuk Anda
jika Anda kebetulan akan kehilangan mereka.
Mereka akan mencoba dan mengakomodasi untuk beberapa kecerobohan di pihak Anda.
Di situlah mungkin akan mencoba dan mencoba dan mencoba untuk membuat hal-hal pekerjaan,
dan kemudian akhirnya akan sampai ke titik di mana ia mengatakan apa-apa,
Saya tidak bisa membuat hal-hal bekerja pada bailing, dan di sanalah Anda akan mendapatkan nomor baris
yang mungkin tampak sedikit off dari tempat yang tepat.
Oke, jadi mari kita pergi melalui ini benar-benar cepat.
Kami meninggalkan off dengan Ella, jadi mari kita pergi ke Missy,
dan Missy, apa cetak string 1 ditambah nomor 2 memberi Anda?
[Missy] 3 >> 3..
Apakah itu masuk akal? Semacam?
Apakah itu memberikan nomor? Apakah itu memberi Anda sebuah string?
[Missy] Sejumlah >> Ini nomor..
Tapi itu mencetaknya, sehingga akan memberikan semacam string.
>> Satu hal yang bisa kita lakukan untuk memeriksa ini
adalah jika kita lakukan $ var = 1 + 2
dan kemudian kita katakan gema GetType,
jadi kita menggunakan jenis ketiga mencetak sini.
Sekarang kita dapat melihat apa yang terjadi di sini.
Berikut apa yang kita punya adalah kami mendapat integer keluar dari ini.
Meskipun kami menambahkan string ini ke suatu nomor,
kami tidak mendapatkan string dari itu, seperti kata Missy.
Kami mendapatkan integer.
Oke, jadi mari kita lihat, berikutnya, Kevin.
CS + 50 >> [Kevin] 50?.
[Nate H.] 50. Apakah itu masuk akal?
[Kevin] Ya.
[Nate H.] Kenapa? Mengapa masuk akal untuk Anda?
[Kevin] Karena itu hanya memiliki string, memiliki angka nol nilai.
Ya, bagus.
Jenis situasi ambigu, tapi itu baik untuk mengetahui apa yang terjadi.
Stella, apa yang terjadi selanjutnya dengan nomor 1 + string 2?
[Stella] 3 >> 3 lagi..
Dan dalam hal ini, kita mendapatkan string atau angka?
>> Mari kita memberikan ini mencoba.
Siapa lebih cepat daripada saya mendapatkan jawabannya? Charlotte?
Oh, Aku tidak-apa-apa, mari kita lihat, kita akan melakukan hal yang sama
di mana kita punya nomor ditambah string, dan kami akan echo jenis,
melihat apa yang kita dapatkan.
Kami juga mendapatkan integer.
Tidak peduli yang mana adalah string, yang satu adalah nomor.
Kami masih akan mendapatkan integer.
Ini masih akan melakukan apa yang kita harapkan.
Baiklah, jadi Sam, bagaimana dengan 90 + 9 botol bir di dinding?
[Sam] 99 >> 99..
Tidak ada botol bir di dinding, meskipun.
Ini memberi kita informasi lebih banyak tentang apa yang terjadi.
[Sam] Jika Anda telah menulis 9 dalam huruf
maka Anda akan memiliki 90, kan?
[Nate H.] Ya.
Pertanyaannya adalah jika kita telah menulis 9 sebagai N-I-N-E
akan kita mendapatkan 99 atau 90?
Kita akan mendapatkan 90.
Ini benar-benar hanya mencari karakter digit.
Ini tidak cukup cerdas untuk mengenali kata-kata jumlah dan hal-hal itu. Ya.
>> [Mahasiswa] Apakah ada hal seperti itu sebagai typecasting di PHP?
Ada, dan itu persis seperti yang Anda akan melakukannya di C.
Bagaimana dengan 10/7, Charlotte?
[Charlotte] 1,4285.
[Nate H.] Ya, jadi apa mungkin mengejutkan tentang hal ini?
Apa yang akan terjadi jika Anda melakukan ini hal yang sama di C,
jika Anda melakukan 10/7 di C?
[Charlotte] Ini hanya akan memberi Anda-tergantung pada bagaimana Anda typecast kurasa
itu akan memberi Anda hanya sejumlah digit setelah desimal.
Ya, sehingga sejumlah digit setelah desimal.
Apa lagi yang mungkin-akan hal itu memberi Anda setiap digit setelah desimal?
Sering tidak, jadi sekali lagi, tergantung pada bagaimana Anda typecasting itu
mungkin atau tidak mungkin mengubahnya menjadi angka floating point.
Di sini itu agak bagus yang itu.
Seandainya kami menunjukkan Anda kembali ini ketika kita mulai melakukan hal semacam ini di C
itu mungkin akan masuk akal sedikit lebih
bahwa hal itu tidak hanya pergi ke 1.
Dan akhirnya, Jamie, bagaimana dengan 7 + benar?
[Jamie] 8. >> 8.
Apa artinya?
Saya kira itu hanya memberi benar nilai 1.
Ya. Apa yang terjadi jika kita mengubahnya ke false?
[Mahasiswa] 7.
Ya, jadi ingat di mana kita berbicara tentang nilai-nilai biner,
1 berada di, 0 yang batal?
Sekarang kita memiliki yang benar adalah 1, 0 adalah palsu,
dan Anda mungkin tidak melihat ini dalam contoh C yang kami lakukan ini semester terakhir,
tetapi secara historis tipe bool di C belum menjadi jenis nyata,
sehingga orang telah menggunakan 0 dan 1 di tempat yang benar dan palsu.
Ini adalah manifestasi dari itu.
>> Oke, jadi satu bagian penting tentang semua ini
adalah bahwa kita memiliki jenis yang berbeda.
Mereka dapat berinteraksi satu sama lain.
Mereka sering dapat berinteraksi satu sama lain dengan cara yang bagus, seperti yang kita lihat di sini.
Sangat menyenangkan untuk dapat memiliki string 1 dan nomor 2, menambahkan mereka bersama-sama dan mendapatkan 3.
Itu masuk akal.
Namun, ketika Anda sedang menulis situs web, dan terutama ketika Anda sedang memproses
input pengguna, sehingga mengatakan Anda telah menulis sebuah formulir web
yang mengumpulkan informasi dari pengguna dan kemudian pergi untuk memprosesnya
di ujung belakang, pada sisi server dalam kode PHP Anda
jika Anda mengharapkan bahwa nilai bahwa pengguna mengetik dan diserahkan
untuk membentuk Anda menjadi integer atau menjadi nomor floating point atau sesuatu seperti itu
Anda perlu secara eksplisit dilemparkan
dan kemudian melakukan beberapa jenis pemeriksaan.
>> Anda tidak ingin hanya mengandalkan pada sistem juggling jenis untuk membuat sesuatu bekerja keluar,
terutama untuk alasan keamanan dan hanya untuk kekokohan website Anda.
Hanya sesuatu yang perlu diingat bahwa setiap kali Anda menangani data formulir,
apa pun yang datang dalam pos atau superglobals get
pastikan bahwa Anda selalu memvalidasi itu dan mengubahnya dan typecast itu.
Dan seperti yang kita bicarakan saat yang lalu typecasting yang
dalam PHP adalah persis sama seperti di C di mana Anda memiliki kurung
dan kemudian jenis.
Perlu diingat bahwa.
Salah satu fungsi yang akan berguna ketika Anda melakukan ini
adalah kita telah menggunakan-dan ini adalah jenis sebagai samping-
kami telah menggunakan fungsi ini GetType di sini
untuk mengetahui jenis variabel,
dan sementara ini berguna untuk debugging dan untuk melihat apa jenis variabel adalah
Anda tidak ingin menggunakan ini, misalnya, dalam kondisi dimana
Anda sedang memeriksa untuk melihat apakah GetType dari $ var = bulat melakukan sesuatu.
Ini adalah buruk, buruk, buruk.
Sebaliknya ada fungsi-fungsi yang disebut adalah integer, adalah string,
adalah array yang ingin Anda gunakan sebagai gantinya, sehingga dalam kasus ini
apa yang saya ingin lakukan bukannya orang ini di sini
adalah menggunakan adalah var integer.
Dan mereka sering disebut adalah * is_ dalam arti bahwa Anda bisa mengganti * dengan bilangan bulat,
string, dan sebagainya, dan hanya untuk memastikan benar-benar cepat
ini adalah int php.
Sepertinya Anda dapat melakukan keduanya adalah int atau ada adalah integer juga?
Ya, alias, alias bulat sehingga int.
Cool.
>> Bagaimana kita lakukan?
Mari kita mengambil langkah sedikit.
Sekarang kita akan berbicara tentang array, sehingga Anda dapat melihat
di bagian selanjutnya dari spec kita berbicara tentang bagaimana array di PHP
sedikit berbeda daripada di C.
Sebenarnya, mereka agak campuran dari
array yang Anda telah datang ke kenal dan cinta di C
di mana segala sesuatu adalah dari jenis yang sama
disimpan secara berurutan dan contiguously dalam memori,
dan Anda memiliki indeks numerik.
Anda memiliki indeks 0, indeks 1, indeks 2,
dan Anda menyimpan nilai-nilai tersebut di indeks.
Anda juga di C, ketika Anda menulis Speller, banyak dari Anda
melakukan pendekatan tabel hash, dan Anda melihat bahwa di sana kami memiliki
berbagai jenis penyimpanan di mana kami pemetaan
kunci untuk nilai, sehingga ketika Anda mencoba untuk menyimpan sesuatu dalam tabel hash
Anda harus menentukan bahwa Anda ingin menyimpannya dengan kunci tertentu,
dan kunci yang menentukan lokasi nilai dan di mana itu akan disimpan.
Kau seperti punya kedua konsep tersebut terjadi pada saat yang sama dalam array PHP,
dan sebagai hasilnya, kita sering menyebut array asosiatif
di mana kita bergaul kunci dalam nilai.
Pada bagian berikutnya kita berbicara tentang array PHP sederhana
di mana kita memiliki kunci yang b, dan c,
semua string, pemetaan ke, bilangan bulat 1 2, dan 3.
Dan Anda dapat memiliki kunci dari berbagai jenis.
>> Anda dapat memiliki beberapa kunci yang string, beberapa kunci yang bilangan bulat.
Anda dapat memiliki nilai dari berbagai jenis.
Anda dapat memiliki nilai yang string, nilai yang integer,
nilai yang merupakan objek atau array lain, misalnya,
semua dalam objek array yang sama, yang agak aneh.
Anda tidak harus memiliki sebuah array yang hanya punya satu jenis elemen di dalamnya.
Anda dapat memiliki banyak hal yang berbeda terjadi di sana.
Hal lain yang perlu diperhatikan adalah bahwa ketika Anda melihat sesuatu seperti ini dalam kode Anda,
yang merupakan PHP berlaku untuk mendeklarasikan array seperti ini, 0, 1, 2, 3, 4, 5,
yang akan mendeklarasikan $ arr diinisialisasi menjadi array ini.
Tapi apa yang Anda benar-benar mendapatkan di bawah tenda adalah semacam ini implisit
generasi kunci di mana kita punya 0 to 0, 1 ke 1, 2 dengan 2, 3 sampai 3.
Dan ternyata bahwa bahkan jika Anda memiliki sebuah array seperti orang ini di sini
di mana Anda memiliki, b dan c sebagai kunci
dan kemudian Anda mulai menggunakan metode push array untuk mulai menggunakan array ini seperti stack,
sehingga Anda dapat melihat bahwa ini objek array, array ini benar-benar menjadi kelebihan beban.
Kita dapat menggunakannya sebagai array. Kita dapat menggunakannya sebagai tabel hash.
Kita dapat menggunakannya sebagai stack.
Ketika Anda mulai mendorong hal-hal ke array ini
hal pertama yang Anda mendorong ke ini akan menjadi indeks 0 dan kemudian indeks 1 dan indeks 2.
Anda bisa mendapatkan jenis generasi implisit kunci
kecuali jika Anda menentukan secara eksplisit.
Cara Anda menentukan kunci-kunci eksplisit, tentu saja, adalah dengan menggunakan notasi bracket,
yang mirip dengan array kecuali bukan hanya mengizinkan
indeks bilangan bulat di sini, sekarang kita membiarkan apa pun.
Jika Anda ingin kunci Anda menjadi string, Anda akan menentukan seperti ini.
Jika Anda ingin menjadi int, Anda tentukan dengan int yang ingin Anda gunakan.
>> Pertanyaan pada yang sejauh ini?
Salah satu hal yang menyenangkan tentang ide ini
adalah bahwa Anda dapat hanya pernah memiliki satu nilai yang disimpan dengan kunci tertentu.
Jika kita kembali ke kami alat-biarkan aku menghapus beberapa hal ini.
Dan katakanlah saya menginisialisasi sebuah array menjadi 0, 1, 2, dilakukan.
Jika saya sekarang tahu bahwa, misalnya, jika saya echo $ arr [0]
Aku akan mendapatkan nilai 0 dicetak,
dan karena hanya ada yang pernah menjadi salah satu nilai yang disimpan untuk kunci tertentu
jika saya menyimpan sesuatu di $ arr [0], mengatakan,
maka saya tahu ketika saya echo $ arr [0] lagi
Aku tidak akan mendapatkan 0 dicetak seperti sebelumnya.
Aku hanya akan mendapatkan.
Jadi ini pada dasarnya mengatakan bahwa saya tidak dapat memiliki $ arr [0] menyimpan 2 nilai yang berbeda.
Hal ini tidak bisa menyimpan baik 0 dan string, seperti ini benar-benar menggantikan
apa yang berada di $ arr [0] sebelumnya.
Alasan saya membawa ini menjalankannya, melihat apa yang terjadi.
Lihat di sini bahwa saya mendapat 0 dicetak dan kemudian di sini.
Tidak ada baris baru di sana karena saya malas dan tidak menempatkan yang masuk
Apa yang keren tentang ini adalah kita dapat menggunakan ini sebagai cara
untuk menangkap ide ini set
di mana kita tidak bisa memiliki beberapa tombol dalam array.
Kita tidak bisa memiliki kunci identik dalam sebuah array.
Saya tidak dapat memiliki tombol 0 dan nilai 1 dan 0 kunci dan nilai
atau tombol 0 dan nilai sebenarnya.
Kunci semua-hanya ada 1 kunci dalam array.
Meskipun Anda dapat memiliki nilai yang sama disimpan
beberapa kali dalam array di bawah kunci yang berbeda
itu tidak mungkin untuk memiliki kunci identik beberapa kali dalam array PHP Anda.
>> Jika kita melihat ini masalah berikutnya, unique.php,
di mana kita ingin membuka file PHP
berisi daftar string, satu string per baris,
dan kami ingin menemukan semua string yang unik dalam file tersebut
yang harus kita lakukan adalah menggunakan salah satu array PHP
dan menggunakan string dalam file sebagai kunci array ini
dan terus mengupdate array kita seperti kita menyimpan kunci-kunci baru.
Seperti yang kita baca setiap baris dari file yang kita dapat menyimpannya dalam array,
dan pada akhirnya kita akan memiliki sebagai kunci kami dalam array kami
semua string yang unik dalam file.
Apakah itu masuk akal?
Mari kita lihat bagaimana ini bekerja.
Kita akan membuka, sesuai dengan spec, sebuah file baru yang disebut unique.php.
Buka. Ups, maaf, file baru.
Kita akan memulai itu dengan tag awal dan akhir yang sama.
Kita akan menyimpannya di bagian 9, dan kita akan menyebutnya unique.php.
Oke, sekarang tampilannya masuk
Idenya di sini adalah membuka file,
membaca file baris demi baris.
Untuk setiap baris dalam file
kita akan memiliki sebuah array di mana kita memiliki
garis sebagai kunci kami.
Dan kemudian ketika kita sampai ke akhir di sini
Kunci $ arr ini adalah garis yang unik
dari file karena kita tahu bahwa jika saya menempatkan baris dalam array ini
beberapa kali itu hanya akan terus menimpa nilai lama,
dan kita benar-benar dapat menempatkan line array sebagai dirinya sendiri begitu saja.
>> Ini agak aneh.
Kami menyimpan nilai pasangan kunci yang sama berulang-ulang,
tapi karena kita dijamin bahwa akan ada hanya 1 kunci yang disebut garis
jadi jika kita memiliki sebuah file yang mengatakan-file dari suara-suara binatang dan memiliki guk, guk,
meong, meong, moo, moo, dan setiap kali kita membaca sebuah suara hewan keluar
seperti pakan dan kami menyimpannya dalam array kita kita mendapatkan pakan, dan kemudian kedua kalinya
kita menyimpan guk akan menimpa pertama kalinya bahwa kita menyimpannya.
Pada akhirnya kita hanya akan memiliki satu entri dalam array
untuk setiap suara-suara binatang dalam file suara satwa kita.
Apakah kalian merasa yakin bahwa Anda dapat menangani pembukaan sebuah file di PHP?
Salah satu cara untuk melakukannya-mari kita membahas cara ini cepat-satu untuk melakukannya
adalah dengan fopen, seperti kita lihat sebelumnya.
Anda dapat fopen some_file.txt.
Anda dapat membukanya dalam modus baca, seperti di C.
Itu salah satu cara yang sangat baik untuk melakukannya.
Anda juga maka untuk membaca file baris demi baris
memiliki fungsi yang sama, banyak dari mereka, yang Anda lakukan di C.
Anda memiliki fgets.
Anda memiliki feof, meskipun kita tidak suka menggunakan yang
karena, ingat, itu tidak besar di C.
Anda dapat melakukannya dengan cara yang sama,
tapi di sini adalah hal yang benar-benar keren.
Maaf, saya tidak ingin melakukan $ file, tapi ada fungsi yang disebut file di PHP,
dan fungsi ini di sini adalah sejuk karena membaca seluruh isi
dari file yang Anda tentukan, sehingga some_file.txt,
membaca seluruh isi file ini ke dalam array
dan kemudian memungkinkan Anda iterate lebih dari itu, yang cukup bagus.
>> Jika kita pergi, misalnya, ke browser web kami
dan kita melihat Google untuk file PHP
Anda dapat melihat di sini bahwa pengguna kami mengatakan file yang membaca berkas tersebut ke dalam array,
dan kita bisa file_get_contents untuk mengembalikan isi file sebagai string,
tetapi biasanya hanya mendapatkan itu sebagai array benar-benar baik karena apa yang dilakukannya
yang rusak itu sehingga setiap elemen
dalam array adalah satu baris dari file tersebut,
jadi jika kita melihat file 0, itu baris pertama dari file.
File 1 line, kedua, file 2, baris ketiga, dan seterusnya dan seterusnya.
Bukankah akan lebih baik jika itu semua Anda harus dilakukan di C?
Cukup bagus.
David menunjukkan hal ini di kuliah, dan idiom ia menunjukkan itu
bahwa selain standar kami untuk loop-in PHP kita punya
for ($ i = 0; i <10; i + +),
dan Anda dapat melakukan ini di PHP juga, sama hal-
kami juga memiliki konstruksi keren disebut foreach.
Foreach benar-benar berguna ketika iterasi array atau struktur data
karena memungkinkan Anda untuk menarik keluar setiap elemen dari array
tanpa harus secara manual melakukan pengindeksan sendiri,
tanpa harus secara manual membuat variabel indeks, kenaikan itu,
tarik keluar nilai dalam array pada saat itu, karena itu adalah hal yang sangat umum yang dapat dilakukan.
>> Anda mungkin telah melakukan hal itu ton saat-saat ketika Anda melakukan hal-hal C
selama semester, sehingga dengan foreach
kita bisa loop atas array file,
dan sintaks adalah bahwa kita ingin sekarang loop selama array ini
dan menentukan bahwa variabel kita akan gunakan untuk menyimpan
unsur ini array lokal, lokal untuk lingkup ini loop foreach,
adalah kita akan menyebutnya garis.
Jika itu adalah file hanya kata-kata dan ada satu kata dalam satu baris
kita bisa menyebutnya kata juga, benar-benar hanya Anda memberikan nama,
apa pun yang Anda ingin menyebutnya,
dan kemudian dalam loop Anda dapat melakukan apapun yang Anda inginkan dengan baris ini variabel.
Jika itu tidak cukup untuk mendapatkan nilai array dan Anda juga ingin mendapatkan
indeks bersama dengan itu Anda dapat menentukan nama untuk indeks
serta nilai, dan sekarang Anda memiliki akses ke 2 variabel.
Anda memiliki $ i dan baris
di mana $ i adalah indeks dalam array,
dan garis adalah garis yang diambil dari file tersebut.
Sebagai contoh, jika kita ingin mencetak gema 0 baris dari file seperti ini,
kita bisa melakukannya seperti ini, "Line $ i file adalah $ line,"
dan di sini adalah sesuatu yang kami juga belum melihat belum baik
mana aku hanya benar-benar melompati ini% s% d seluruh bisnis
bahwa kita harus berurusan dengan di C, dan sebagai gantinya aku pergi langsung ke
menulis variabel dalam baris dalam string saya.
>> Ini disebut interpolasi variabel, string interpolasi
di mana Anda memasukkan variabel tepat di, dan interpreter PHP
cukup pintar ketika itu membaca sebuah string yang dimulai dengan tanda kutip ganda-
bukan tanda kutip tunggal, dengan string dikutip tunggal Anda tidak bisa melakukan ini-
tetapi dengan string dikutip ganda seperti membaca melalui itu sedang mencari variabel.
Ini memburu mereka, dan jika melihat variabel itu akan mengambil nilai dari variabel
dan memasukkannya ke string jika dapat mengubahnya menjadi representasi string,
yang cukup bagus.
Untuk saat ini, mari kita komentar keluar sisa dari segala sesuatu,
menyimpan, dan apa yang bisa kita lakukan sekarang adalah kita dapat membuka file
bahwa kita dapat memanggil some_file.txt-mari kita membuat file baru-
dan kita bisa dimasukkan ke dalam banyak hal omong kosong di sini hanya untuk menguji semuanya,
menyimpannya, sebut saja some_file.txt, seperti yang saya lakukan di sini di atas,
dan sekarang jika saya zoom out hanya untuk memastikan semuanya dalam direktori yang sama-
sepertinya saya memiliki unique.php dan some_file.txt dalam direktori yang sama.
Jika saya menjalankan unique.php php
melihat bagaimana ia akan mencetak setiap baris dalam file saya dan apa garis adalah?
>> Itu cukup kuat, kan?
Dengar, butuh 3 baris kode untuk membuka file.
Nah, 4 baris kode. Saya tidak bisa menghitung hari, jelas.
Tapi benar-benar hanya 2 baris kode yang menarik, karena 2 lainnya adalah kurung kurawal,
tetapi dalam kode ini banyak kita mampu untuk membuka file, iterate melalui itu,
menarik keluar nomor baris dan garis itu sendiri
dan mencetaknya.
Cool stuff. Charlotte.
[Charlotte] Saya punya pertanyaan tentang sintaks.
Jadi foreach penawaran dengan setiap baris dari file yang Anda buka,
dan kemudian ketika Anda ingin melakukan hal-hal dengan setiap baris Anda hanya melakukannya sebagai
dan kemudian mengasosiasikan nilai.
[Nate H.] Apa yang dapat Anda lakukan di sini-pertanyaan itu
foreach ada hubungannya dengan array, sehingga sintaks foreach
benar-benar foreach, dan perhatikan bahwa ada tidak ada ruang
atau apa pun antara untuk dan masing-masing.
Mereka harus pergi tepat di samping satu sama lain,
dan kemudian dibutuhkan dalam array,
dan kemudian Anda memiliki kata kunci lain yang disebut sebagai yang harus ada di sana,
dan kemudian setelah karena Anda dapat menempatkan satu nama variabel,
dalam hal ini Anda akan menarik keluar nilai-nilai dari array,
bukan indeks, atau jika Anda melakukannya seperti yang kita telah tertulis di bawah
Anda mendapatkan kunci dan nilai-nilai.
Anda memiliki elemen dari array foreach atau sepasang array sebagai bersemangat untuk nilai
atau hanya sebagai nilai.
Tergantung pada apa yang Anda butuhkan, jika Anda tidak memerlukan kunci,
maka Anda dapat pergi dengan nilai.
Jika Anda ingin tombol Anda dapat pergi dengan mereka juga.
>> [Charlotte] Saya juga menyadari bahwa kami tidak pernah menyatakan i atau baris.
Bagaimana bahkan tahu apa yang mereka?
[Nate H.] Apa yang Anda maksud dengan menyatakan?
[Charlotte] Kami tidak pernah mengatakan kepada mereka apa yang saya atau garis berarti.
[Nate H.] Kami tidak pernah mengatakan kepada komputer apa yang saya atau garis berarti dalam hal-
[Charlotte] Bahwa mereka diindeks atau bahwa mereka-
[Nate H.] Kami tidak pernah mengatakan bahwa ini seharusnya menjadi indeks atau kunci dan nilai,
dan itu karena itulah interpreter PHP.
Ini berfungsi sebagai deklarasi dan mengatakan apa-apa, kuncinya akan menjadi
variabel yang disebut i disimpan dalam sebuah variabel yang disebut i.
Nilai ini akan disimpan dalam sebuah garis yang disebut variabel,
jadi ini berfungsi sebagai deklarasi dari variabel-variabel
dan mengatakan $ i adalah kunci, dan $ garis adalah nilai.
Ya, Ella.
[Ella] Jika tombol tidak dilakukan secara numerik
bagaimana cara memutuskan apa urutan itu akan mencetak segala sesuatu?
Apakah seperti urutan itu dimasukkan dalam?
[Nate H.] Mari kita mencobanya.
Mari kita membuat sebuah variabel yang disebut arr,
dan kita bisa melakukan pergi ke 7.
Katakanlah 0 pergi ke array lain dengan 1, 2, atau apel.
Katakanlah 7 pergi ke 1, b pergi ke 2,
dan 3 pergi ke 4.
Ini adalah jenis contoh mencari gila karena kita mencampur
string dan integer seluruh tempat.
Tidak ada perintah nyata untuk array ini.
Maksudku, kita bisa memesan segala sesuatu dalam urutan abjad oleh kunci.
Kita bisa memesan semuanya abjad oleh nilai.
>> Kita bisa mencoba dan mempertimbangkan bahwa beberapa string, beberapa ints,
dan kami bisa mencoba dan mengubah mereka semua dengan jenis yang sama dan melihat apa yang terjadi,
atau kita bisa menganggap mereka dalam nilai di mana kita sudah memasuki mereka
di mana kami menempatkan orang ini di pertama, orang ini di urutan kedua, ketiga orang ini di,
orang ini di keempat sebagainya, et.
Mari kita lihat apa yang terjadi ketika kita menjalankan kode ini.
Jika kita scroll ke bawah dan melakukan hal yang sama,
dan di sini itu tidak mencetak baris baru.
Ketika membaca hal-hal keluar dari file itu termasuk baris baru dalam nilai-nilai,
yang mengapa dicetak dengan baik, sedangkan di sini tidak,
jadi itu sebabnya semuanya smushed bersama-sama.
Mari kita tambahkan dalam baris baru hanya untuk membuat hal-hal yang baik.
Mari kita jalankan kembali, dan jadi di sini
melihat apa yang terjadi.
Ini dicetak semuanya dalam urutan yang kita memasukkannya ke dalam array.
Ini mempertahankan ketertiban dalam pengertian itu.
>> Kembali ke masalah ini unik
di mana kita ingin dapat iterate atas file,
dan kami akan memberikan some_file.txt,
dan kita akan iterate di atasnya seperti ini.
Kami mengatakan bahwa kami ingin menggunakan array untuk memastikan bahwa kita akan mendapat semua
garis yang unik keluar dari sana, dan kita bisa melakukan itu benar-benar mudah
dengan hanya menyimpan dalam array yang kita tentu mendeklarasikan di luar lingkup lingkaran,
dan kami mengatakan bahwa jika kita menggunakan baris dalam file sebagai kunci dalam array kami
jika kita memasuki garis duplikat kami akan menimpa nilai sebelumnya.
Ini tidak pernah mungkin untuk memiliki 2 kunci yang identik dalam array yang sama.
Kita bisa melakukan hal itu.
Kita akan menyingkirkan pernyataan gema di sini.
Di sini kita menyimpan baris dalam file dalam array kita
menggunakan dirinya sebagai kunci.
Tidak ada yang ke sana, dan ternyata bahwa kita bahkan tidak perlu kunci ini.
Kita tidak perlu bahwa saya variabel.
Pada titik ini jika kita melakukan lain loop foreach
dan kami adalah untuk loop atas setiap arr
dan garis sekarang jika kita echo-oops, maaf.
Kita tidak bisa menggunakan koma. Kami harus menggunakan ini sebagai kata kunci.
Sekarang jika kita menggemakan baris kita harus mendapatkan semua kata-kata unik dalam file.
Jika kita pergi ke some_file.txt,
dan katakanlah kita lakukan apel, pisang, apel, apel, pisang,
jika kita mencetak semua kata-kata unik dalam file ini kita hanya harus mendapatkan
apel dan pisang untuk mencetak.
Jika kita menyimpan, sekarang di sini kita akan tampilannya kembali,
php unique.php, dan ta-da.
Kami telah berhasil uniqued file.
>> Bagian akhir dari masalah ini adalah meminta Anda untuk mengurutkan array ini sebelum Anda mencetaknya
karena dalam contoh sederhana yang baru saja kita lakukan
kami beruntung dalam arti bahwa file-
kami melakukan ini contoh buat dengan apel dan pisang.
Itu sudah diurutkan.
Tetapi menggunakan fungsi semacam sederhana Anda dapat mengurutkan sebuah array, yang cukup bagus.
Hal terakhir yang saya ingin berbicara dengan kalian tentang benar-benar cepat
adalah bahwa ini semacam PHP adalah semua baik dan bagus, dan itu super berguna
untuk mengetahui bagaimana yang harus dilakukan jika Anda merasa perlu untuk melakukan sedikit, hal yang cepat pemrograman.
Sebagai contoh, jika saya harus menulis sebuah program yang, katakanlah,
menempatkan orang ke dalam bagian aku tidak akan pergi dan menuliskannya dalam C.
Ini akan menjadi panjang.
Ini akan menjadi semacam sakit, terutama jika ada file yang terlibat,
sama seperti kalian telah melihat.
Hal ini sangat baik bahwa hanya dengan kode ini banyak di sini
kami mampu merobek melalui file, mengeluarkan semua nilai-nilai unik
dan mencetaknya kembali.
>> Namun, untuk tugas Anda, untuk proyek-proyek Anda,
jika Anda sedang membangun website dengan PHP listrik adalah bahwa
kita menjalankan file PHP kita melalui penerjemah ini,
dan penafsir sedang memproses segala sesuatu dalam tag PHP,
meninggalkan segala sesuatu yang lain tidak tersentuh dan meludah keluar hasilnya.
Kita dapat melakukan ini untuk membangun HTML pemrograman.
Sekarang, jika kita kembali ke spec, masalah terakhir di spec
berbicara tentang ide konsentrasi
dan menciptakan menu drop-down,
yang Anda mungkin atau mungkin tidak ingin melakukan, tergantung pada apa tugas akhir Anda lakukan,
yang memungkinkan pengguna untuk memilih dari daftar semua konsentrasi yang mungkin
mereka satu konsentrasi.
Sekarang, ini adalah jenis rasa sakit mengetikkan ini
dan harus melakukan semua ini secara manual, terutama ketika Anda harus memastikan
bahwa Anda memiliki semua sudut kurung di tempat yang tepat dan semua tanda kutip di tempat yang tepat,
sehingga dengan PHP Anda dapat melakukan hal ini pemrograman, dan Anda dapat melakukan ini benar-benar cepat.
>> Mari kita lihat bagaimana melakukan hal ini.
Kita akan membuka file baru.
Kita akan dimasukkan ke dalam tag PHP kita.
Kita akan menyebutnya concentrations.php,
dan sekarang ketika Anda melakukan hal ini, seperti hal yang baik untuk berpikir tentang
ketika Anda mencoba untuk mencampur dan mencocokkan PHP dan HTML
adalah mencari tahu, oke, apa bagian yang saya ingin menghasilkan pemrograman?
Apa bagian yang saya pemrograman bisa menghasilkan?
Memang benar bahwa Anda dapat melakukan semua HTML Anda
dalam blok PHP.
Anda dapat echo semua HTML sebagai string.
Sebagai contoh, jika saya ingin memulai melakukan tag pilih dalam PHP
Saya dapat mengatakan gema, katakanlah pilih nama = konsentrasi,
dan kemudian di bawah saya bisa memiliki tag lain gema
atau echo lain yang disebut tutup pilih.
Ini adalah salah satu cara untuk melakukannya karena apa ini benar-benar akan melakukan
adalah mencetak string ini ketika itu dijalankan melalui interpreter PHP,
sehingga hasilnya akan HTML.
Jika saya menyimpan file ini karena sekarang
dan saya menjalankan concentrations.php php
melihat apa yang saya dapatkan.
Aku punya tag pilih buka tutup.
>> Jika saya melakukan ini dan saya adalah untuk menyimpan hasil ini ke file,
mengatakan, concentrations.html-tunggu, sepertinya l telah pergi ke sisi lain-
sekarang jika saya membuka sini concentrations.html Anda melihat saya memiliki file HTML yang valid.
Apakah itu agak aneh?
Kami menggunakan PHP untuk membuat HTML, membuat HTML yang valid.
Cara kita lakukan adalah kita hanya memiliki cetak PHP
HTML yang kita inginkan untuk mencetak.
Ini adalah benar-benar bagaimana website PHP bekerja.
Ketika Anda mengunjungi situs web yang mengirim Anda untuk sesuatu seperti
sesuatu, sesuatu, sesuatu yang dot com slash index.php
komputer secara harfiah memanggil index.php,
menjalankannya melalui juru bahasa PHP, dan apa pun sampah keluar
itu mengirim kembali ke browser dan berkata hey, browser, menafsirkan ini sebagai HTML.
Yang menyenangkan adalah bahwa hal itu dapat menjadi sakit untuk terus menulis echo, echo, echo, gema
dan melampirkan segala sesuatu dalam tanda kutip seperti ini, jadi jika Anda ingin menulis
HTML yang akan menjadi statis diri sendiri Anda dapat melakukannya seperti ini,
meletakkannya di luar, menutupnya,
dan kemudian di sini Anda hanya memasukkan dalam tag PHP apa yang Anda tahu
Anda ingin menghasilkan pemrograman, dan dalam kasus ini, tag tersebut option
yang sakit untuk menghasilkan.
>> Sebagai contoh, kita bisa menghasilkan tag pilihan seribu
dengan melakukan sesuatu seperti ini, $ i <1000, i + +
dan mengatakan nilai gema option = $-ups, saya tidak bisa melakukan itu.
Nah, mari kita mencobanya dan melihat apa yang terjadi.
$ I dan kemudian mengatakan $ i </ option.
Daripada harus mengetikkan bahwa tag pilihan seribu kali berbeda
Saya menggunakan kode PHP untuk menghasilkan secara otomatis, pemrograman.
Jenis nifty. Ya.
Saya ingat ini yang disebutkan dalam salah satu kuliah atau walkthrough,
tapi apa perbedaan antara tanda kutip,
yang normal dan hal-hal tunggal?
Itu sebenarnya sesuatu yang saya lakukan salah di sini bahwa aku akan menunjukkan kepada Anda.
Tanda kutip tunggal tidak mengizinkan karakter khusus,
sehingga segala sesuatu di dalam string yang dikutip tunggal ditafsirkan secara harfiah.
Jika saya punya \ n dalam tanda kutip tunggal dan saya simpan ini, misalnya,
dan sekarang aku pergi ke sini dan menjalankannya-
oops, mana aku?
Oh, itu karena aku lupa $.
>> Sekarang jika saya membuka-sebenarnya, di sini, kita akan menyingkirkan mengetik ke file.
Kami hanya akan membacanya.
Di sini Anda melihat bahwa saya punya ini literal \ n dalam string, seperti bukan baris baru yang sebenarnya,
dan juga, bukan benar-benar interpolasi nilai dari variabel ini
itu memberi saya $ i itu sendiri, yang merupakan jenis rasa sakit.
Cara sekitar ini adalah dengan menggunakan tanda kutip ganda,
dan kemudian ketika Anda menggunakan tanda kutip ganda itu benar-benar akan
benar interpolasi nilai-nilai dari semua variabel di sini
dan juga mengakui ini \ n menjadi baris baru bahwa itu adalah
dan tidak \ n.
Menggunakan tunggal yang bagus ketika Anda memiliki
karakter yang mungkin ditafsirkan sebagai karakter khusus karena Anda tidak perlu
melarikan diri mereka terus-menerus.
Hal bisa berantakan, dan sering cara saya melakukannya,
hanya untuk membuat hal-hal mudah, adalah bahwa jika aku akan punya apa-apa
HTML seperti dalam kode saya, saya akan memasukkan mengedit dalam tanda kutip tunggal
dan kemudian menggunakan concatenation operator
untuk menggabungkan variabel masuk
Ini merupakan cara lain untuk melakukannya
di mana kita punya titik yang akan menghubungkan ini adalah string
dengan ini dengan ini dengan ini,
dan sekarang saya tidak harus melarikan diri tanda kutip ganda tersebut.
Saya tidak harus menggunakan orang ini untuk melarikan diri.
Mereka benar-benar akan dicetak sebagai tanda kutip ganda dan kemudian orang ini di sini.
Ini adalah cara lain untuk mencampur semuanya bersama-sama.
>> [Mahasiswa] Juga, ketika Anda bergema GetType tidak ada tanda kutip sama sekali.
Benar, jadi gema adalah jenis khusus dalam arti bahwa Anda tidak perlu tanda kurung.
Anda tidak perlu memiliki tanda kutip tentu sekitar variabel,
seperti itu berlaku untuk mengatakan echo $ i, dan itu akan menafsirkan ini sebagai string.
Ini akan melakukan pemain, sehingga kami bisa melakukan hal ini, dan itu berlaku juga, tapi kita tidak membutuhkannya.
Ini opsional.
Dalam sejumlah masalah minggu ini melihat keluar untuk banyak hal semacam ini
di mana Anda mencampur dan mencocokkan HTML dengan PHP
seperti ini, dan sekarang jika kita gulir kembali dan kami jalankan ini
kita dapat melihat bahwa kami memiliki banyak seluruh nilai option
yang baru saja dicetak.
Kami memiliki semua ini HTML yang dihasilkan benar-benar mendapat cepat bagi kita.
Aku akan meninggalkan sebagai latihan.
Ini sangat mirip dengan membaca file yang kita lakukan sebelumnya.
>> Ada sebuah file concentrations.txt bahwa Anda dapat menarik turun dari CDN,
dan Anda dapat membukanya dengan menggunakan trik foreach sama yang kita lakukan sebelumnya,
dan foreach Anda hanya harus echo pilihan dan plug in
nilai-nilai yang tepat, tombol yang sesuai dan indeks,
dan kemudian Anda mendapatkan drop-down yang benar-benar menciptakan
pemrograman untuk Anda semua konsentrasi yang berbeda di Harvard.
Suatu hal yang berguna untuk memiliki.
Ada banyak hal konfigurasi untuk tugas ini.
Jika Anda belum melakukannya sudah mengambil setengah jam berikutnya, jam,
beberapa waktu malam pasti pasti,
berjalan melalui spec sejumlah masalah,
melihat apa yang terjadi dengan menyiapkan vhosts, host lokal, semua hal itu.
Satu hal yang menunjukkan sekarang adalah bahwa
di set masalah yang paling kita sudah masuk ke folder Dropbox Anda
dan kemudian men-download file zip dan masalah set unzipping itu.
Untuk set masalah yang Anda tidak ingin.
Anda ingin masuk ke direktori ini vhosts.
Anda akan ingin pergi ke vhosts dan pergi ke direktori host lokal di dalamnya,
dan ini adalah di mana Anda akan ingin untuk pull down file zip,
unzip, dan bersiap-siap untuk pergi.
Anda harus mengikuti langkah-langkah erat.
>> Jika Anda memiliki pertanyaan, kirim email, posting di Diskusikan, datang ke kantor jam.
Thanks guys. Minggu depan kita akan memiliki sesi review untuk kuis.
Nikmati sejumlah masalah terakhir Anda. Saya harap semuanya berjalan dengan sangat baik.
[CS50.TV]