1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> Doug LLOYD: Yani biz ettik C çok iş yapmış, 3 00:00:07,370 --> 00:00:09,536 ve C gerçekten serin dil size verir çünkü 4 00:00:09,536 --> 00:00:12,840 Gerçekten dalış yeteneği programlarınızı düşük seviyede. 5 00:00:12,840 --> 00:00:16,810 Biz şeyler yapmak olsun manipüle gerçekten dakika 6 00:00:16,810 --> 00:00:18,800 bellek bireysel bayt. 7 00:00:18,800 --> 00:00:21,420 Gerçekten değineği Geri Çağırma bize bu esneklik sağlar. 8 00:00:21,420 --> 00:00:25,260 >> Ama biz her zaman olması gerekiyor ayrıntı bu ince taneli seviyesi 9 00:00:25,260 --> 00:00:26,820 Bizim programlarda? 10 00:00:26,820 --> 00:00:28,210 Muhtemelen değil, değil mi? 11 00:00:28,210 --> 00:00:30,376 Ve biz gidiyoruz olmak arasında bir trade-off 12 00:00:30,376 --> 00:00:32,911 Gerçekten, gerçekten yapmak mümkün dakika şeyler ve gerçekten 13 00:00:32,911 --> 00:00:35,910 Biz düşünmek zorunda değilsiniz büyük şeyler hakkında biz uygulamak zorunda değilsiniz 14 00:00:35,910 --> 00:00:40,290 Bu gerçekten büyük fikirler eğer onlar zaten bizim için inşa ediyoruz 15 00:00:40,290 --> 00:00:43,980 genellikle büyük bina için programlar veya büyük projeler, 16 00:00:43,980 --> 00:00:49,130 biz muhtemelen tarafında err için gidiyoruz Daha fazla dil şeyler inşa sahip 17 00:00:49,130 --> 00:00:51,300 Bizim için, yerine sahip Düşük seviyeli şeyler. 18 00:00:51,300 --> 00:00:53,970 PHP gerçekten devreye giriyor Ve bu. 19 00:00:53,970 --> 00:00:58,200 >> Şimdi, nedenlerinden biri Biz CS50 PHP öğretmek olduğunu 20 00:00:58,200 --> 00:01:01,020 o ağır esinlenerek oluyor ki C. Ve aslında, benim görüşüme göre, 21 00:01:01,020 --> 00:01:05,140 iki gerçekten vardır progenitör dilleri bu 22 00:01:05,140 --> 00:01:08,200 günümüzde çok yaygındır. 23 00:01:08,200 --> 00:01:10,110 C ve LISP. 24 00:01:10,110 --> 00:01:13,280 Ve onlar progenitör dilleri konum Her diğer modern programlama çünkü 25 00:01:13,280 --> 00:01:17,380 geliştirdiği dil O zamandan beri ilham 26 00:01:17,380 --> 00:01:20,330 Bir ya da diğer sözdizimsel tarafından. 27 00:01:20,330 --> 00:01:26,160 PHP sözdizimsel çok benzer C Şema gibi dillerde ise 28 00:01:26,160 --> 00:01:27,900 örneğin, bu Eğer duymuş olabilirsiniz 29 00:01:27,900 --> 00:01:32,070 ağır bir dille esinlenerek eski bir dildir denilen LISP. 30 00:01:32,070 --> 00:01:34,220 >> Biz öğretmek nedeni So CS50 PHP, yani 31 00:01:34,220 --> 00:01:37,730 temelde olarak C bilerek Bu noktada yaptığımız gibi, 32 00:01:37,730 --> 00:01:41,280 Eğer verir toplayıp PHP, çok daha yüksek seviyeli şeyler yapmak yeteneği 33 00:01:41,280 --> 00:01:44,710 C yok daha, değil, bu engel çok, 34 00:01:44,710 --> 00:01:48,230 Zaten var çünkü sözdizimi temel fikir. 35 00:01:48,230 --> 00:01:50,590 C neredeyse civarında olmuştur Bu noktada 45 yıl. 36 00:01:50,590 --> 00:01:52,780 PHP yaklaşık 20 yıldır civarında olmuştur. 37 00:01:52,780 --> 00:01:57,080 Ve bu 25 yıl içinde , programcılar arasında 38 00:01:57,080 --> 00:02:01,540 belirlenen onlar kadar verecek daha doğrusu, üst düzey yetenekleri var 39 00:02:01,540 --> 00:02:04,970 ve hatalar ve mücadeleler arasında 20 yıllık 40 00:02:04,970 --> 00:02:08,210 PHP ve diğer modern dillere yol açtı. 41 00:02:08,210 --> 00:02:11,039 >> PHP'nin büyük bir seçim yazılım için dil 42 00:02:11,039 --> 00:02:14,042 için allow-- o Seni ki- yazılım 43 00:02:14,042 --> 00:02:16,250 bu şeyler yapmak gerek C aslında karmaşıktır. 44 00:02:16,250 --> 00:02:18,480 Yani, örneğin, çalışma C dizeler 45 00:02:18,480 --> 00:02:21,709 Çünkü, çok karmaşık Bildiğimiz gibi, C dizeleri 46 00:02:21,709 --> 00:02:23,250 Gerçekten karakter sadece diziler bulunmaktadır. 47 00:02:23,250 --> 00:02:25,230 Bu yerleşik bir veri türü değildir. 48 00:02:25,230 --> 00:02:28,220 Ya da belki daha da önemlisi, biz bile C kapağı yoktu bir şey, 49 00:02:28,220 --> 00:02:30,360 Yapmanız gereken ne olur Bazı bilgisayar ağ? 50 00:02:30,360 --> 00:02:30,860 Pekala? 51 00:02:30,860 --> 00:02:34,920 >> C bunu yapmak yeteneğine sahiptir, ama o kadar var gizemli ve aslında yapmak çok zor. 52 00:02:34,920 --> 00:02:37,580 O takdirde hoş olmaz mıydı dil yerleşik, kolay bir yol vardı 53 00:02:37,580 --> 00:02:38,910 ağ uygulamak? 54 00:02:38,910 --> 00:02:43,420 Ve PHP yapar bir dildir, ya da, bu biraz daha kolaylaştırır. 55 00:02:43,420 --> 00:02:47,740 Dediğim gibi, PHP çok ağır ilham olduğunu C. sözdizimi çok benzer. 56 00:02:47,740 --> 00:02:51,760 Ve bu yüzden umarım yapmak gerekir birinden diğerine geçişi 57 00:02:51,760 --> 00:02:54,710 Bazı biraz daha yumuşak diğer diller olabilir. 58 00:02:54,710 --> 00:02:58,800 >> PHP yazmaya başlamak için, sadece açmak .php dosya uzantısına sahip bir dosya. 59 00:02:58,800 --> 00:03:00,670 Teknik olarak bu değildir Aslında gerekli 60 00:03:00,670 --> 00:03:04,495 ama sözdizimi gibi şeyler istiyorsanız bu tür böylece, IDE vurgulayarak 61 00:03:04,495 --> 00:03:07,620 adları veya değişken isimleri, fonksiyonlar, Eğer dilin kelimeleri biliyorum 62 00:03:07,620 --> 00:03:10,090 Bir vurgulanır Belirli renk, genellikle 63 00:03:10,090 --> 00:03:14,020 ile dosyalarınızı isim istiyorum Belirli bir dosya uzantısı. 64 00:03:14,020 --> 00:03:18,430 Yani biz bir php ile dosya adında ettik uzatma, ama sonra da PHP ile 65 00:03:18,430 --> 00:03:23,310 biz yazmak tüm PHP kodu Dosya bu PHP içine alınması gerekir 66 00:03:23,310 --> 00:03:25,190 Gördüğümüz sınırlayıcı Burada ekranda. 67 00:03:25,190 --> 00:03:27,910 Açılı ayraç? Php başlatın. 68 00:03:27,910 --> 00:03:30,860 Sonra bizim PHP'nin tüm bilgileri Biz arasında istediğiniz kodu. 69 00:03:30,860 --> 00:03:32,260 Ve daha sonra ? 70 00:03:32,260 --> 00:03:34,710 açılı ayraç kapatın. 71 00:03:34,710 --> 00:03:37,170 >> Bu, o zaman yapmazsanız ne olacak? 72 00:03:37,170 --> 00:03:38,170 Bu çökmesine gitmiyor. 73 00:03:38,170 --> 00:03:39,410 Bu gitmiyor Gerçekten bizim programı berbat. 74 00:03:39,410 --> 00:03:41,440 Ama sahip gitmiyor İstediğimiz etkisi. 75 00:03:41,440 --> 00:03:44,540 Ne olacak Ne gerçekten, biz denemek ve bu programı çalıştırdığınızda o, 76 00:03:44,540 --> 00:03:50,330 her şey değil bu ayraçları arasındaki kelimesi kelimesine dışarı basılabilir gidiyor. 77 00:03:50,330 --> 00:03:52,210 Bu gitmiyor Aslında kod yürütmesine, 78 00:03:52,210 --> 00:03:56,010 o gidiyor sadece kelimesi kelimesine çıktısını. 79 00:03:56,010 --> 00:03:57,320 >> Şimdi neden böyledir? 80 00:03:57,320 --> 00:04:00,416 Yani C bilinen şeydir derlenmiş bir dil olarak. 81 00:04:00,416 --> 00:04:03,040 Muhtemelen aşina Programlarınızı yapma aşaması, 82 00:04:03,040 --> 00:04:07,820 .c dosya ve .h dosyaları dönüm make tek bir yürütülebilir, 83 00:04:07,820 --> 00:04:11,130 Özellikle kullanılarak Bizim derleyici olarak tınlamak. 84 00:04:11,130 --> 00:04:13,030 PHP olsa da, yok Bu eşdeğeri vardır. 85 00:04:13,030 --> 00:04:15,600 PHP bir denir ne yorumlanmış dil. 86 00:04:15,600 --> 00:04:16,760 Ve bu ne anlama geliyor? 87 00:04:16,760 --> 00:04:20,680 >> Eh, biz dönüştürmek zorunda kalmazsınız birler ve sıfırlar bizim kaynak kodu 88 00:04:20,680 --> 00:04:21,470 önceden. 89 00:04:21,470 --> 00:04:23,900 Aksine, bir program var, bu da adlandırılır 90 00:04:23,900 --> 00:04:29,771 PHP ve PHP anlar, sıralama anında yapabilirsiniz. 91 00:04:29,771 --> 00:04:32,520 Yani, gerçekten tam doğru değil ama oldukça iyi bir benzetme var 92 00:04:32,520 --> 00:04:33,760 arasında neler. 93 00:04:33,760 --> 00:04:37,230 Bu, bu yorumlama var anında sıfır ve olanları. 94 00:04:37,230 --> 00:04:40,160 Ve eğer öyleyse o bilmiyor nasıl bir şey işlemek için, 95 00:04:40,160 --> 00:04:42,800 o bilmiyorsa nasıl süreç PHP, muhtemelen 96 00:04:42,800 --> 00:04:44,680 Doğru, orada o metni koymak istedi? 97 00:04:44,680 --> 00:04:48,960 >> Muhtemelen kod koymak istedim Orada, o PHP-- arasında olmasa bile 98 00:04:48,960 --> 00:04:50,035 PHP sınırlayıcı. 99 00:04:50,035 --> 00:04:51,910 Ama-- yüzden gitmiyor Sizin için silmek için, 100 00:04:51,910 --> 00:04:53,576 sadece temelde atmak oluyor. 101 00:04:53,576 --> 00:04:55,550 Yani yazdırmak için gidiyor ekrana dışarı. 102 00:04:55,550 --> 00:04:57,150 >> Kötü bir gibi görünüyor bu şey, ama aslında var 103 00:04:57,150 --> 00:04:58,220 Gerçekten olacak İyi bir şey, biz olacak şekilde 104 00:04:58,220 --> 00:05:00,390 biz hakkında konuşmak ne zaman bakın PHP web geliştirme, 105 00:05:00,390 --> 00:05:04,010 bu demektir, çünkü biz PHP ve HTML serpmek. 106 00:05:04,010 --> 00:05:06,640 Biz onları bir arada kullanabilirsiniz daha dinamik bir web sayfası oluşturmak. 107 00:05:06,640 --> 00:05:10,650 Ama o daha PHP web geliştirme video. 108 00:05:10,650 --> 00:05:12,021 >> Yani PHP sözdizimi nedir? 109 00:05:12,021 --> 00:05:13,520 İşte bu videoyu tüm hakkında ne olduğunu. 110 00:05:13,520 --> 00:05:14,850 Bunun hakkında konuşalım. 111 00:05:14,850 --> 00:05:16,490 >> Yani, değişkenler başlatmak için. 112 00:05:16,490 --> 00:05:18,030 PHP değişkenleri vardır. 113 00:05:18,030 --> 00:05:20,067 Sadece büyük iki Var C arasında farklar 114 00:05:20,067 --> 00:05:21,900 İlk var olduğunu Hiçbir tür belirteci. 115 00:05:21,900 --> 00:05:24,245 Biz, int söylemek zorunda değilsiniz Char, şamandıra, tüm bu şeyler. 116 00:05:24,245 --> 00:05:25,620 Biz artık bunu yapmak zorunda değilsiniz. 117 00:05:25,620 --> 00:05:26,810 PHP modern bir dildir. 118 00:05:26,810 --> 00:05:28,910 Bu sen anlamaya olabilir yapmak ya da en iyi yapmaya çalışıyorum 119 00:05:28,910 --> 00:05:30,451 Yapmanız çalıştığınız ne olduğu sanırım. 120 00:05:30,451 --> 00:05:31,700 Yani oldukça güzel. 121 00:05:31,700 --> 00:05:35,330 >> Başka bir şey, tüm değişken olduğunu isimleri dolar işareti ile başlamak zorunda. 122 00:05:35,330 --> 00:05:36,940 Bu alışmak bir şey. 123 00:05:36,940 --> 00:05:39,496 Çünkü, biraz garip PHP anlayabiliyorum böylece var 124 00:05:39,496 --> 00:05:40,870 ne bir değişken olduğunu ve ne değildir. 125 00:05:40,870 --> 00:05:43,340 Böylece her Değişken adı Bir dolar işareti ile başlar. 126 00:05:43,340 --> 00:05:46,884 Yani C biz bir şey diyebilirsiniz Bu gibi int x = 54. 127 00:05:46,884 --> 00:05:48,550 Biz PHP artık bunu yapmak zorunda değilsiniz. 128 00:05:48,550 --> 00:05:52,540 Biz sadece x = 54 $ söyleyebiliriz. 129 00:05:52,540 --> 00:05:55,920 Ve biz C, örneğin söyleyebiliriz, Biz CS50 .H pound-dahil olsaydı 130 00:05:55,920 --> 00:06:00,314 başlık dosyası, biz söyleyebiliriz Dize ifade = "Bu CS50 olduğunu." 131 00:06:00,314 --> 00:06:01,980 Biz gerçi, PHP bunu yapmak zorunda değilsiniz. 132 00:06:01,980 --> 00:06:04,865 Biz sadece $ ifade söyleyebiliriz = "Bu CS50 olduğunu." 133 00:06:04,865 --> 00:06:08,760 Ve aslında, dize artık PHP yerleşik bir veri türü, 134 00:06:08,760 --> 00:06:10,950 ya da daha doğrusu PHP anlar bir dize nedir. 135 00:06:10,950 --> 00:06:15,612 Bir diziden ayrı var karakter C'DE gibi 136 00:06:15,612 --> 00:06:17,570 Tüm favori C koşullu ifadeler 137 00:06:17,570 --> 00:06:19,520 Hala kullanmak için kullanılabilir. 138 00:06:19,520 --> 00:06:21,140 Yani orada hiçbir büyük bir geçiş. 139 00:06:21,140 --> 00:06:23,400 Biz olabilir say-- olabilir Böyle ifadeleri. 140 00:06:23,400 --> 00:06:28,210 $ y 43 ise ya $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Yani oldukça basittir. 142 00:06:29,690 --> 00:06:31,980 Biz if ve else olabilir. 143 00:06:31,980 --> 00:06:34,210 Biz eğer ve else if olabilir. 144 00:06:34,210 --> 00:06:36,430 >> Ve bir şey fark Oldukça burada güzel ve bu 145 00:06:36,430 --> 00:06:39,620 Bunlardan biri tür C, haber karşısında PHP avantajları 146 00:06:39,620 --> 00:06:41,510 hangi işlevi burada kullanacağınız değil mi? 147 00:06:41,510 --> 00:06:47,737 Biz karşılaştırmak için == kullanıyorsanız Değişken, $ isim, bir dizeye. 148 00:06:47,737 --> 00:06:49,070 Biz doğru, C yapamam? 149 00:06:49,070 --> 00:06:53,200 Biz adında bir işlevi kullanmak zorunda StrComp ya StrEndComp veya 150 00:06:53,200 --> 00:06:54,840 onunla ilgili kuzen. 151 00:06:54,840 --> 00:06:56,980 >> Ve böylece zaten biz bu avantajları görüyoruz. 152 00:06:56,980 --> 00:07:00,930 Biz bir şey yapmak zorunda değilsiniz olarak aptal ya da belki unintuitive 153 00:07:00,930 --> 00:07:03,540 adında bir işlev çağrısı olarak StrComp Ben sadece test etmek istiyorsanız 154 00:07:03,540 --> 00:07:05,237 ister bir değer bir dize eşittir. 155 00:07:05,237 --> 00:07:07,820 Ben sadece, eşittir eşittir kullanabilirsiniz gibi başka bir şey yapabilirdi. 156 00:07:07,820 --> 00:07:09,560 Yani bir avantaj var. 157 00:07:09,560 --> 00:07:13,350 >> Bazen arada, belki elseif, else if olarak tek kelimeyle bakın. 158 00:07:13,350 --> 00:07:14,910 Ve bu da PHP Tamam. 159 00:07:14,910 --> 00:07:17,020 Yani bazen böyle görebilirsiniz. 160 00:07:17,020 --> 00:07:17,790 Bu bir yazım hatası değil. 161 00:07:17,790 --> 00:07:21,830 PHP aslında elseif anlar. 162 00:07:21,830 --> 00:07:23,980 Bilmiyorum neden Bu uygulamaya karar verdi, 163 00:07:23,980 --> 00:07:28,220 ama biz defalarca gördüğümüz gibi Şimdiye kadar bizim videolar boyunca, 164 00:07:28,220 --> 00:07:30,460 Biz programcılar ise onu seviyorum Biz hızlı bir şekilde şeyler yapabilirsiniz 165 00:07:30,460 --> 00:07:33,660 böylece uzay kurtulmak görünüşe göre büyük bir avantajdır. 166 00:07:33,660 --> 00:07:34,800 >> Yani eğer ve elseif var. 167 00:07:34,800 --> 00:07:37,540 Biz de üçlü operatörü var, Geri çağırma soru işareti kolon, 168 00:07:37,540 --> 00:07:43,262 else if gerçekten kısa form için veya koşullu dallanma. 169 00:07:43,262 --> 00:07:45,470 Ve görünüşe göre, bu, Ne biz burada yapmaya çalışıyoruz 170 00:07:45,470 --> 00:07:49,720 değişken atama olduğunu doğru ya da yanlış $ mektup, 171 00:07:49,720 --> 00:07:54,110 $ var olmasına bağlı bir alfabetik karakterdir. 172 00:07:54,110 --> 00:07:57,320 Yani bu isalpha oldukça benzer Biz C'den aşina olduğunuzu 173 00:07:57,320 --> 00:07:59,010 Bu PHP eşdeğer tür. 174 00:07:59,010 --> 00:08:01,550 Fonksiyonu görünüşte ctype_alpha denilen 175 00:08:01,550 --> 00:08:03,450 ama bu PHP bunu nasıl. 176 00:08:03,450 --> 00:08:08,560 Peki tüm bu eğer, olması olduğunu gidiyor $ var bir mektup, $ mektup doğrudur. 177 00:08:08,560 --> 00:08:13,820 $ Var bir mektup değilse, $ mektup yanlıştır. 178 00:08:13,820 --> 00:08:15,820 >> Biz de hala anahtar ifadeleri var. 179 00:08:15,820 --> 00:08:17,870 Biz C gelenler de hatırlıyorum. 180 00:08:17,870 --> 00:08:22,480 Orada çok üst kısmında, biz bunu nasıl olsun int veya dize olsun gibi bir şey. 181 00:08:22,480 --> 00:08:23,845 Yani PHP yerleşik olduğunu vardır. 182 00:08:23,845 --> 00:08:25,470 Artık CS50 kitaplığı gerekmez. 183 00:08:25,470 --> 00:08:27,237 Biz sadece işlev readline kullanabilirsiniz. 184 00:08:27,237 --> 00:08:29,820 Bu ne yapacak baskı olduğunu mesajın üzerinden, "Sizin devlet, 185 00:08:29,820 --> 00:08:33,820 lütfen "ve ardından istemi yanıp sönen giriş için kullanıcı bekliyor 186 00:08:33,820 --> 00:08:34,739 biraz bilgi. 187 00:08:34,739 --> 00:08:36,530 Şimdi başka ne fark Biz anahtarı ile yapabilirsiniz. 188 00:08:36,530 --> 00:08:39,105 Eğer daha önce kullandıysanız, O anahtarı Hatırlayacağınız 189 00:08:39,105 --> 00:08:44,960 tamsayılar hemen hemen sınırlıdır ve karakterler, ama şimdi biz dizeleri kullanabilirsiniz. 190 00:08:44,960 --> 00:08:50,190 Ve aslında, switch deyimi PHP biraz daha esnek 191 00:08:50,190 --> 00:08:54,880 C. onun kuzeni daha 192 00:08:54,880 --> 00:08:55,380 Döngüler. 193 00:08:55,380 --> 00:08:58,130 Sadece Koşullamalar gibi, tüm Eski favoriler hala vardır. 194 00:08:58,130 --> 00:09:00,740 Biz sayarken döngüler var 1, bu durumda 100. 195 00:09:00,740 --> 00:09:03,940 Biz while döngüleri yapmak var Bu, 1 ile 100 saymak 196 00:09:03,940 --> 00:09:06,200 ve biz döngüler için var Bu 1'den 100'e kadar saymak. 197 00:09:06,200 --> 00:09:07,220 Yani orada büyük bir atılım. 198 00:09:07,220 --> 00:09:09,360 Sözdizimi güzel tam olarak aynı çok, 199 00:09:09,360 --> 00:09:11,760 şimdi biz kullanıyoruz hariç Dolar işareti değişken yerine 200 00:09:11,760 --> 00:09:17,260 tamsayı değişkenleri bildirmek veya Bizim sayaçlar için böyle bir şey. 201 00:09:17,260 --> 00:09:20,090 >> Şeyler olsun İşte burada olsa da, C'den çok daha iyi. 202 00:09:20,090 --> 00:09:21,020 Diziler. 203 00:09:21,020 --> 00:09:23,020 Yani biz çağırmak zaman sırayla, C bahsediyoruz 204 00:09:23,020 --> 00:09:25,560 Bize büyümeye ve küçültmek için bilgi setleri, 205 00:09:25,560 --> 00:09:28,310 Biz varsayılan sıralamak için gerekli Bağlantılı bir listenin bu fikri, 206 00:09:28,310 --> 00:09:30,780 C diziler boyutu tespit edildi çünkü. 207 00:09:30,780 --> 00:09:31,800 Onları küçültmek olamazdı. 208 00:09:31,800 --> 00:09:32,930 Onları büyümek olamazdı. 209 00:09:32,930 --> 00:09:36,074 Biz bellek, yeniden tahsis etmek zorunda ve tüm bu çılgınlık yapmak 210 00:09:36,074 --> 00:09:38,490 veya bağlı listeler, kullandığınız biraz daha fazla yer kaplar. 211 00:09:38,490 --> 00:09:41,590 Ama PHP, diziler vardır Artık boyutu sabit değildir. 212 00:09:41,590 --> 00:09:43,240 Onlar büyüyebilir ve küçültmek olabilir. 213 00:09:43,240 --> 00:09:46,660 Yani yine, bu 20 yıl varolduğunu C ilk sürümü arasında 214 00:09:46,660 --> 00:09:49,440 ve ilk sürüm PHP, Biz biliyorsunuz, karar verdi 215 00:09:49,440 --> 00:09:51,670 Gerçekten harika olurdu Biz bu yapabileceğini. 216 00:09:51,670 --> 00:09:54,100 Ve böylece biz bu hayata. 217 00:09:54,100 --> 00:09:58,040 >> Yani PHP diziler içinde sabit değildir boyut, ve PHP değil, çünkü gerçekten 218 00:09:58,040 --> 00:10:03,090 Programcı ön dönük olması türleri kavramlar, 219 00:10:03,090 --> 00:10:05,110 Biz veri tiplerini karıştırıp Bizim dizide de. 220 00:10:05,110 --> 00:10:08,100 Yani biz bile hepsini kullanmak zorunda değilsiniz tamsayı veya tüm kayan noktalar, 221 00:10:08,100 --> 00:10:12,826 Hepimizin bir karışımı olabilir Tek bir dizide çeşitleri. 222 00:10:12,826 --> 00:10:14,700 Bir dizidir bildirme Oldukça basit. 223 00:10:14,700 --> 00:10:16,116 Sadece başka bir değişken gibi. 224 00:10:16,116 --> 00:10:20,020 $ nums = array (1, 2, 3, 4), dizi bir fonksiyonu olduğu 225 00:10:20,020 --> 00:10:22,760 Bu PHP içinde yerleşik olduğunu Sizin için bir dizi yaratacaktır. 226 00:10:22,760 --> 00:10:28,315 Bu dört değer dizisi oluşturur, Bu durumda sayılar, $ nums çağırdı. 227 00:10:28,315 --> 00:10:29,940 Ve bunu yapmak için birden fazla yolu var. 228 00:10:29,940 --> 00:10:32,420 Ve biz gidiyoruz Bu PHP bir çok görüyorum. 229 00:10:32,420 --> 00:10:36,380 PHP birçok farklı tarafından geliştirilmiştir insanlar büyür ve büyür ve büyür ve. 230 00:10:36,380 --> 00:10:40,050 Genellikle var değil sadece iki ya da PHP bir şeyler yapmak için üç yol, 231 00:10:40,050 --> 00:10:42,170 Genellikle 10 veya 20 gibi var. 232 00:10:42,170 --> 00:10:45,300 İşte sadece başka bir ortak var Bir diziyi bildirmek için bir yol. 233 00:10:45,300 --> 00:10:48,310 $ nums = köşeli parantez 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Yani bu tür C'nin açıya benzer bir daha doğrusu, kaşlı ayraç gösterimini br--. $ - 235 00:10:53,170 --> 00:10:58,525 ya da int nums kare olurdu parantez küme ayracı 1, 2, 3, 4 eşittir. 236 00:10:58,525 --> 00:11:02,710 PHP yılında $ nums = kare var dirsekleri 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Ancak bu örneklerin her ikisi beni buraya ver Bu durumda tamsayılar dört bir dizi. 238 00:11:08,920 --> 00:11:10,920 >> Ben şimdi bir şey çakmak ne isterseniz? 239 00:11:10,920 --> 00:11:14,760 Peki ben sadece $ nums 4 söyleyebiliriz ki Yine, biz hala burada 0'dan sayıyorsanız 240 00:11:14,760 --> 00:11:17,800 PHP, beşinci olurdu dizi elemanı. 241 00:11:17,800 --> 00:11:18,990 Ben sadece söyleyebiliriz. 242 00:11:18,990 --> 00:11:22,860 Ben bir SEG acı gitmiyorum Benim dizisi, sadece, çünkü arıza 243 00:11:22,860 --> 00:11:24,337 Bu karşılamak için büyümeye devam. 244 00:11:24,337 --> 00:11:25,420 Bu doğru, çok güzel değil mi? 245 00:11:25,420 --> 00:11:28,400 Ve aslında, ben bile gerek yok Ben koymak istediğiniz yere belirtin. 246 00:11:28,400 --> 00:11:31,220 Ben sadece bu sadece söyleyebiliriz Sağ sonuna kadar üzerine tack, 247 00:11:31,220 --> 00:11:34,099 ya da ben bile sadece olabilir $ Nums 20 veya 1000 söylüyorlar. 248 00:11:34,099 --> 00:11:35,140 Bu gerçekten önemli değil. 249 00:11:35,140 --> 00:11:38,330 Hala sadece gidiyor sonuna doğru onu tack. 250 00:11:38,330 --> 00:11:41,490 >> Yani büyümek ve biz konum as-- edebilirsiniz Burada onu karşılamak için gitmiyor, 251 00:11:41,490 --> 00:11:45,360 ama ben splice ya da şerit olabilir hem de dizinin dışına elemanları, 252 00:11:45,360 --> 00:11:50,064 ve dizi karşılamak için küçüleceği şimdi eksik veya boş alan. 253 00:11:50,064 --> 00:11:52,230 Çakmak için başka bir yolu var Bir dizi üzerine bir şey, 254 00:11:52,230 --> 00:11:54,330 bu array_push adı verilen bir fonksiyonudur. 255 00:11:54,330 --> 00:11:57,860 Yani yine olmanın sadece bu fikri işler çok farklı şekillerde yapmak mümkün. 256 00:11:57,860 --> 00:12:01,950 Yani biz şimdi üç farklı şekilde gördüm Bir dizinin üzerine başka bir öğe çakmak. 257 00:12:01,950 --> 00:12:06,900 Yani bu başka bir eleman ekler $ nums dizinin sonuna. 258 00:12:06,900 --> 00:12:08,340 Ve bizim veri türlerini karıştırabilirsiniz. 259 00:12:08,340 --> 00:12:13,110 Yani ben bir dizi olabilir 1, 2, 3, 4, ancak 1 doğru, 3, 4, 260 00:12:13,110 --> 00:12:16,420 Nerede gerçek bir Boolean ve sonra Ben başka bir öğe üzerinde tack istiyorsanız 261 00:12:16,420 --> 00:12:20,860 Bu dizi, belki bir dize, Dize "Beş," Ben bunu yapabilirim. 262 00:12:20,860 --> 00:12:26,110 Ve şimdi benim dizi olur Gerçek 1, 3, 4, beş olabilir. 263 00:12:26,110 --> 00:12:28,640 Kelime beş değil, tam sayı 5. 264 00:12:28,640 --> 00:12:31,270 Yani orada bir esneklik bir sürü. 265 00:12:31,270 --> 00:12:33,290 >> Esneklik alır hatta daha iyi olsa da, 266 00:12:33,290 --> 00:12:37,530 PHP şey için desteği vardır çünkü bir ilişkisel dizi denir. 267 00:12:37,530 --> 00:12:40,660 Ve biz bir çeşit belirsiz konuştuk C yaklaşık ilişkisel diziler 268 00:12:40,660 --> 00:12:44,740 hash tabloları bağlamında, çünkü Ne ilişkisel diziler gerçekten hepsi 269 00:12:44,740 --> 00:12:48,950 anahtar yapıyoruz hakkında değer çifti dönüşümler. 270 00:12:48,950 --> 00:12:53,410 Ve bu durumda, keys-- Biz C dizilerle tanıdık 271 00:12:53,410 --> 00:12:55,440 tuşları endeks sayılardır. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 Ve değerler bulmak ne dizi 0, dizi 1, böylece dizi 2 ve. 274 00:13:03,070 --> 00:13:06,310 Yani tuşları dizinlerinin, ve değerler 275 00:13:06,310 --> 00:13:10,060 Bu dizi konumda nedir, Bu indeks tarafından belirlenen. 276 00:13:10,060 --> 00:13:15,130 >> Ama PHP, biz bunu yapmak zorunda değilsiniz dizinin 0 kavramı, dizi 1, dizi 2 277 00:13:15,130 --> 00:13:15,830 Artık. 278 00:13:15,830 --> 00:13:21,025 Biz şimdi gerçek kelimeleri kullanabilirsiniz değerlere tuşları eşleştirmek için. 279 00:13:21,025 --> 00:13:22,650 Ve bu yüzden böyle bir şey söyleyebiliriz. 280 00:13:22,650 --> 00:13:26,710 Ben kullanarak bir dizi oluşturabilirsiniz aşağıdaki gibi köşeli ayraç sözdizimi. 281 00:13:26,710 --> 00:13:30,685 $ pizzalar = köşeli ayraç "peynir" ve sonra 282 00:13:30,685 --> 00:13:37,210 çift ​​ok gösterimi bu tür, 8.99, "acıkmak," 10.99-- 9.99 ok 283 00:13:37,210 --> 00:13:37,880 ve benzeri. 284 00:13:37,880 --> 00:13:39,060 Ve böylece burada ne oluyor? 285 00:13:39,060 --> 00:13:41,040 Aslında ne yapıyorum? 286 00:13:41,040 --> 00:13:43,990 Ben anahtar değer çifti eşlemelerini oluşturma. 287 00:13:43,990 --> 00:13:49,060 Bunun yerine söyleyerek, örneğin, pizzalar 0, adet 1, pizzalar 2, 288 00:13:49,060 --> 00:13:52,350 Ben şimdi pizza diyebilirim peynir, pizza sucuk, 289 00:13:52,350 --> 00:13:55,120 ve değerlere bakın bunlarla ilişkili. 290 00:13:55,120 --> 00:13:56,970 >> Yani burada bizim tuşları yeşil bulunmaktadır. 291 00:13:56,970 --> 00:13:59,870 Peynir, sucuk, sebze, bufalo tavuk. 292 00:13:59,870 --> 00:14:04,200 İşte yapar oktur Bu anahtar değer çifti haritalama. 293 00:14:04,200 --> 00:14:07,420 Ve sonra burada değerlerdir Bu dizi konumda. 294 00:14:07,420 --> 00:14:10,330 Bu yüzden dizinin 0 8.99 eşittir demek gibi. 295 00:14:10,330 --> 00:14:11,720 Anahtar 0'dır. 296 00:14:11,720 --> 00:14:13,600 Değeri 8.99 olduğunu. 297 00:14:13,600 --> 00:14:19,370 Şimdi dizi peynir söylemek, ya da bu olabilir vaka pizza peyniri, peynir, anahtar 298 00:14:19,370 --> 00:14:23,340 ve ben de bulacaksınız Pizza peyniri 8.99 olduğunu. 299 00:14:23,340 --> 00:14:25,540 Ben orada bulmak değerdir. 300 00:14:25,540 --> 00:14:28,124 >> Yani işler gibi diyebilirim. $ Pizza peyniri = 7.99. 301 00:14:28,124 --> 00:14:29,040 Ben bir satış yaşıyorum söylüyorlar. 302 00:14:29,040 --> 00:14:31,750 Ben damla istiyorum dis-- istiyorum peynir pizza fiyatı. 303 00:14:31,750 --> 00:14:35,620 Ya da ben sebze kullanabilirsiniz pizza durumun bir parçası olarak, 304 00:14:35,620 --> 00:14:39,990 ya da ben yeni bir öğe ekleyebilirsiniz benim Dizi, sadece ben daha önce yapabilirdi gibi. 305 00:14:39,990 --> 00:14:44,680 Ben bu yeni bir öğe ekleyebilir Anahtar "pastırma" ile ilişkisel dizi 306 00:14:44,680 --> 00:14:49,250 ve değer 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Ama bu tür bir sorunu tanıttı Bir saniye düşünmek durumunda. 308 00:14:53,820 --> 00:14:55,721 Nasıl bu dizi yineleme ki? 309 00:14:55,721 --> 00:14:56,220 Sağ? 310 00:14:56,220 --> 00:14:59,820 C, biz sadece olurdu döngü için, tipik olarak, bu 311 00:14:59,820 --> 00:15:03,650 0'dan aday olacağını 1 eksi dizinin boyutu. 312 00:15:03,650 --> 00:15:08,060 Dizi de n öğeleri vardır, Geçerli indeksler n eksi 1 0 vardır. 313 00:15:08,060 --> 00:15:11,530 Yani biz bir for döngüsü kullanabilirsiniz her elemanın adım adım. 314 00:15:11,530 --> 00:15:13,530 >> Ama bu gerçekten değil dava artık, değil mi? 315 00:15:13,530 --> 00:15:17,360 Şimdi anahtar değeri çift var nereye tuşları kelimeler dönüşümler, 316 00:15:17,360 --> 00:15:19,970 nasıl kelimelerin tüm yineleme mi? 317 00:15:19,970 --> 00:15:22,420 Eh, neyse ki, PHP vardır Bir yol da bu başa 318 00:15:22,420 --> 00:15:24,580 ve bu yüzden geri atlarsınız Bir saniye döngüler için 319 00:15:24,580 --> 00:15:30,780 ilmeğin 4 tür tanıtmak için bu PHP bir foreach döngüsü denilen bulunmaktadır. 320 00:15:30,780 --> 00:15:34,430 Ve ne bir foreach döngüsü yapar ise Temelde aynı fikir. 321 00:15:34,430 --> 00:15:36,060 Sen dizinin her türlü kullanabilirsiniz. 322 00:15:36,060 --> 00:15:38,100 Ama temelde döngüsü için aynı fikir 323 00:15:38,100 --> 00:15:40,750 yerine kullanılması haricinde, indeks numaraları, sadece 324 00:15:40,750 --> 00:15:45,830 Bu garip sözdizimi nerede var Eğer her eleman arama 325 00:15:45,830 --> 00:15:47,550 Bu döngü amaçları için bir isim. 326 00:15:47,550 --> 00:15:49,258 >> Bu durumda, bu yüzden foreach ($ anahtar olarak $ dizi). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Temelde, bu açıklama notları olarak, Foreach döngü içinde 329 00:15:56,450 --> 00:16:00,466 her tek gitmek için gidiyor genellikle $ dizi unsuru 330 00:16:00,466 --> 00:16:03,340 bir ilişkisel dizi olacak, ama gerçekten dizinin her türlü olabilir 331 00:16:03,340 --> 00:16:05,419 Eğer PHP istediğiniz. 332 00:16:05,419 --> 00:16:07,210 Ve bu her zaman döngüsü için size belki 333 00:16:07,210 --> 00:16:13,780 $ dizi köşeli parantezler söylediler $ i, sadece $ anahtarını söyleyebiliriz. 334 00:16:13,780 --> 00:16:22,340 Yani $ anahtar, her bir ad olur PHP ilişkisel dizi indeksi, 335 00:16:22,340 --> 00:16:23,710 ve böylece bu gibi kullanabilirsiniz. 336 00:16:23,710 --> 00:16:25,897 >> Yani, örneğin, biz ettik Şimdi bizim pizzalar dizi var. 337 00:16:25,897 --> 00:16:27,730 Ben tür onu sıkışmış ettik Orada köşeye 338 00:16:27,730 --> 00:16:31,080 bu yüzden hızlı bir örnek yapmak için kullanabilirsiniz. 339 00:16:31,080 --> 00:16:36,420 Ben foreach ($ pizzalar derseniz $ pizza), iyi, ne oluyor? 340 00:16:36,420 --> 00:16:42,400 Eh, ben her yineleme için gidiyorum array $ pizza tek eleman, 341 00:16:42,400 --> 00:16:46,670 ve bunu yaparken de, ben diyeceğim her eleman, zaman içinde değilim 342 00:16:46,670 --> 00:16:49,400 döngü o vücudun pizza, $. 343 00:16:49,400 --> 00:16:52,440 >> Yani bu bir tür var stand-in, hatırlama, o $ Pizza 344 00:16:52,440 --> 00:16:59,140 bir stand-söyleyerek içindir $ pizzalar köşeli parantezler $ i 345 00:16:59,140 --> 00:17:03,370 Biz döngü, nerede bir kullanıyormuş Bu durumda $ i = 0, gidebiliriz, 346 00:17:03,370 --> 00:17:06,089 $ i 3 =. 347 00:17:06,089 --> 00:17:09,780 Biz anahtar değer çiftlerini olmasaydı Burada, bu eleman, 0, 1, 2, 3 olacaktır, 348 00:17:09,780 --> 00:17:16,390 ve biz gitmek için döngü için kullanmak $ pizzalar 0, $ pizzalar 1, $ 2 pizzalar, 349 00:17:16,390 --> 00:17:17,750 $ pizzalar 3. 350 00:17:17,750 --> 00:17:23,130 Yani şimdi sadece pizza ikame edilir, $ bireysel anahtar için. 351 00:17:23,130 --> 00:17:25,630 >> Peki bu yazdırmak için gidiyor? 352 00:17:25,630 --> 00:17:29,030 Ben $ pizza yazdırmayı ediyorum. 353 00:17:29,030 --> 00:17:35,270 Ne at-- bulmak için gidiyorum Ben, $ pizza $ çıktısını olur? 354 00:17:35,270 --> 00:17:35,770 Sağ? 355 00:17:35,770 --> 00:17:38,680 Ben yazdırmak için gidiyorum Pizza i elemanı, 356 00:17:38,680 --> 00:17:40,070 ne yazdırmak için gidiyorum? 357 00:17:40,070 --> 00:17:42,580 Ben yazdırmak için gidiyorum o konumda değerler, değil mi? 358 00:17:42,580 --> 00:17:45,370 Yaptığımız sanki gibi C bağlamında bu 359 00:17:45,370 --> 00:17:49,786 biz genellikle bizim yineleyici kullanmayın Değişken, i = 0, i az 3 int 360 00:17:49,786 --> 00:17:52,900 i 0, 1, 2, 3 yazdırmak için, ++. 361 00:17:52,900 --> 00:17:57,500 Biz dizi üzerinden 0 yazdırırken dizi 1, dizi 2, dizi 3. 362 00:17:57,500 --> 00:17:59,580 Ve böylece bu yazdırır bu ne olduğunu. 363 00:17:59,580 --> 00:18:01,150 Bu fiyat listesi. 364 00:18:01,150 --> 00:18:05,750 8.99, 9.99, 10.99, 11.99. 365 00:18:05,750 --> 00:18:06,900 >> Şimdi, burada hızlı bir notu. 366 00:18:06,900 --> 00:18:10,900 Bir foreach döngüsü mutlaka yok sırayla şeyler çıktı. 367 00:18:10,900 --> 00:18:12,770 Bu garanti değil. 368 00:18:12,770 --> 00:18:13,550 Genellikle yapar. 369 00:18:13,550 --> 00:18:17,667 Genellikle amacıyla tabanlıdır hangi unsurlar diziye eklenir, 370 00:18:17,667 --> 00:18:18,750 yani sadece akılda tutulması. 371 00:18:18,750 --> 00:18:20,830 Bu sırayla olmayabilir. 372 00:18:20,830 --> 00:18:23,930 Ama foreach döngüsü yineleme olacak her elemanın karşısında 373 00:18:23,930 --> 00:18:25,060 Söz konusu dizi. 374 00:18:25,060 --> 00:18:27,980 Bu durumda, yine, Bu dizi $ pizza olduğunu. 375 00:18:27,980 --> 00:18:32,920 >> Ben eğer, olsa da, sözdizimi değiştirebilirsiniz Ben anahtarı ve değeri de istiyorum. 376 00:18:32,920 --> 00:18:37,179 Bunun yerine $ pizza söyleyerek $ pizza gibi, ben bu diyebilirim. 377 00:18:37,179 --> 00:18:39,470 Ve ben var ne bakmak durumunda Burada yeşil vurgulanır, 378 00:18:39,470 --> 00:18:42,130 Bir anahtar değeri çifti haritalama gibi görünüyor. 379 00:18:42,130 --> 00:18:45,980 Ve böylece sen-- eğer olmasa bile Tamamen bunu yapmak için neler emin, 380 00:18:45,980 --> 00:18:49,300 muhtemelen tahmin O $ Tepesi oluyor 381 00:18:49,300 --> 00:18:53,800 Bu durumda anahtar ve $ fiyat değer olacak. 382 00:18:53,800 --> 00:18:59,200 Yani şimdi her eleman ikame ediyorum $ önemli bir değer çifti olarak pizza, 383 00:18:59,200 --> 00:19:03,900 ve şimdi anahtarına başvurabilirsiniz ve değer, kudret kullanışlı, 384 00:19:03,900 --> 00:19:05,590 örneğin, aşağıdaki gibi. 385 00:19:05,590 --> 00:19:10,170 >> "Bir bütün" - Bu çok biridir Baskı burada-- "Bir bütün" oluyor 386 00:19:10,170 --> 00:19:17,300 Tepesi sonra fiyat ve "pizza $ maliyeti" Ben bir süre ve bir ters eğik çizgi n yazdırmak. 387 00:19:17,300 --> 00:19:23,420 Yani şimdi, haber tekrar erişimi anahtar, $ Tepesi ve değer, $ fiyat. 388 00:19:23,420 --> 00:19:26,647 Peki bu ne tahmin edebilirsiniz yazdırmak için gidiyor? 389 00:19:26,647 --> 00:19:29,480 Baskı tabloların bir çok şey var, ama sadece bir eğik çizgi n var, 390 00:19:29,480 --> 00:19:33,410 bu yüzden bir şey yazdırmak için gidiyor tek bir kod satırında bir entire--. 391 00:19:33,410 --> 00:19:36,965 >> Ben anahtarına başvurabilir ve değer, o zaman şimdi, 392 00:19:36,965 --> 00:19:39,090 yerine edememek fiyatları yazdırmak için, 393 00:19:39,090 --> 00:19:41,330 Ben böyle bir şey yazdırabilirsiniz. 394 00:19:41,330 --> 00:19:43,780 "Bir bütün peynirli pizza 8,99 $ maliyeti." 395 00:19:43,780 --> 00:19:47,150 Ve şimdi keys-- tüm kullanıyorum peynir, sucuk, sebze, 396 00:19:47,150 --> 00:19:49,640 manda chicken-- ve değerler. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 yüzden sadece farklı bir yolu 398 00:19:53,980 --> 00:19:57,840 bir foreach döngüsü yapmak için o yerine Sadece, değerlere erişim sağlayan 399 00:19:57,840 --> 00:20:02,950 size verir siz-- sadece verir anahtarları ve değerleri erişim. 400 00:20:02,950 --> 00:20:04,411 >> Yani bilgi yazdırarak. 401 00:20:04,411 --> 00:20:07,410 Zaten o bir çift yaptık farklı yollar, sen fark etmiş olabilirsiniz. 402 00:20:07,410 --> 00:20:11,080 Iki işlevi öncelikle ettik baskı ve yankı görüldü bulunmaktadır. 403 00:20:11,080 --> 00:20:14,380 Ve hemen hemen tüm niyet ve amaçları, bunlar tam olarak aynıyız. 404 00:20:14,380 --> 00:20:17,130 They're-- çok ince var bile değmez fark 405 00:20:17,130 --> 00:20:21,130 temelde her yerde biniyorlar, ama muhtemelen kullanabilirsiniz sen baskı kullanabilirsiniz 406 00:20:21,130 --> 00:20:22,370 hem de yankı. 407 00:20:22,370 --> 00:20:23,610 >> Ve bu sadece iki değil. 408 00:20:23,610 --> 00:20:26,970 PHP farklı bir yeri vardır şeyleri yazdırmak için yollar, 409 00:20:26,970 --> 00:20:30,520 ve aynı zamanda entegre yol var dize ortasına değişkenleri. 410 00:20:30,520 --> 00:20:32,860 Yani C çağırmak, do you hangi işlevi hatırlıyorum 411 00:20:32,860 --> 00:20:37,580 Biz değişkenleri yerine kullanabileceğiniz şeylerin içine biz yazdırmak istediğiniz? 412 00:20:37,580 --> 00:20:40,160 Muhtemelen bu kullanmak oldukça çok çalışır. 413 00:20:40,160 --> 00:20:42,290 printf, değil mi? 414 00:20:42,290 --> 00:20:45,290 Yani bu biz içinde önce vardı ne Bizim foreach döngüsü kapsamında evi. 415 00:20:45,290 --> 00:20:48,000 Biz bu beş vardı Ayrı baskı tablolar, 416 00:20:48,000 --> 00:20:50,330 tek olduğu yolu gerçekten zaman biliyordu 417 00:20:50,330 --> 00:20:52,450 nasıl mesaj yazdırmak için. 418 00:20:52,450 --> 00:20:59,560 Ben nasıl entegre bilmiyordum benim PHP koduna tepesi değişken $. 419 00:20:59,560 --> 00:21:03,700 Şey, ben sadece bir tahminde alındığı takdirde, printf, aslında çalışmış olurdu. 420 00:21:03,700 --> 00:21:08,980 printf kullanabilir miyim bir işlevdir PHP, sadece ben C. kullanabilirsiniz Seviyorum 421 00:21:08,980 --> 00:21:11,880 >> Ve böylece böyle bir şey, printf, yine, biz o aşina. 422 00:21:11,880 --> 00:21:16,420 İlk% s değiştirilir $ Tepesi değeri ile. 423 00:21:16,420 --> 00:21:19,700 İkinci% s değiştirilir $ fiyat değeri ile. 424 00:21:19,700 --> 00:21:22,630 Ve bu yüzden interpellating ediyorum, hangi sadece bir fantezi yoludur 425 00:21:22,630 --> 00:21:25,400 demenin ben yapışmasını ediyorum Bu konuma değişkenler. 426 00:21:25,400 --> 00:21:31,000 Yani tepesi de $ takmayı ediyorum nerede Kırmızı% s $ fiyat nerede mavi% s ve 427 00:21:31,000 --> 00:21:36,060 ve sonra ben mesajı alacağı "Bir bütün peynirli pizza 8,99 $ maliyeti." 428 00:21:36,060 --> 00:21:37,750 >> Gerçi bunu yapabilirim Sadece yolu. 429 00:21:37,750 --> 00:21:39,760 Belki bu yöntemi kullanmak isteyeyim. 430 00:21:39,760 --> 00:21:44,890 Bu en yaygın ne aslında Değişken gensoru denir. 431 00:21:44,890 --> 00:21:45,690 Ben bir yankı kullanabilirsiniz. 432 00:21:45,690 --> 00:21:47,737 Biz göreceğiz gibi ben de bir baskı kullanabilirsiniz. 433 00:21:47,737 --> 00:21:48,820 Ama burada ne oluyor? 434 00:21:48,820 --> 00:21:51,520 >> Her şeyden önce, ben var Dolar işareti kaçış. 435 00:21:51,520 --> 00:21:55,140 Biz aslında ne zaman Çünkü hatırlıyorum Pizza fiyatları yazdırarak, 436 00:21:55,140 --> 00:21:59,370 Aslında onları biçimlendirme oldu Bir dolar işareti ile parasal rakamlar. 437 00:21:59,370 --> 00:22:05,635 Ama biz de dolar işaretleri kullanıyorsanız PHP değişken isimlerini temsil etmek, 438 00:22:05,635 --> 00:22:08,010 ve özellikle ben olduğumda kıvırcık bu yöntem kullanılarak 439 00:22:08,010 --> 00:22:10,040 brace değişkeni gensoru yöntemi ihtiyacım 440 00:22:10,040 --> 00:22:13,490 öyle değil bu yüzden benim dolar işareti kaçmak Ben bir değişken bahsediyorum düşünüyorum. 441 00:22:13,490 --> 00:22:16,920 Bu, aslında gidiyor Kelimenin tam anlamıyla bir dolar işareti yazdırın. 442 00:22:16,920 --> 00:22:19,530 >> Yani bir çeşit onu benzetme Orada sonunda gördüğünüz. 443 00:22:19,530 --> 00:22:22,832 Aslında değil Baskı ters eğik çizgi n, değil mi? 444 00:22:22,832 --> 00:22:24,290 Bu yeni bir satır karakterini yazdırır. 445 00:22:24,290 --> 00:22:26,750 Bu gitmiyor bu-- Baskı ters eğik çizgi dolar işareti, 446 00:22:26,750 --> 00:22:30,130 Sadece yazdırmak için gidiyor dolar işareti karakteri. 447 00:22:30,130 --> 00:22:30,640 Aynı fikir. 448 00:22:30,640 --> 00:22:32,760 Dizileri Kaçış ne bunlar denir. 449 00:22:32,760 --> 00:22:37,080 >> Ama ben yapmıyorum fark % s değiştirmelerin herhangi bir tür, 450 00:22:37,080 --> 00:22:40,050 Ben sadece tam anlamıyla takmayı ediyorum bu değişkenlerde. 451 00:22:40,050 --> 00:22:45,110 Ve böylece paha burada ne olacağını ki $ topping-- değeri yine 452 00:22:45,110 --> 00:22:48,390 sadece biz oldum ne tutuyor böylece far-- peynir bahsediyoruz alacağı 453 00:22:48,390 --> 00:22:49,720 Orada takılı. 454 00:22:49,720 --> 00:22:54,780 Ve $ fiyat ne olursa olsun değer olurdu pizza da, köşeli parantez, peynir, 455 00:22:54,780 --> 00:22:56,270 Hangi 8.99 idi. 456 00:22:56,270 --> 00:23:01,860 Ve böylece bu da yazdırmak istiyorum "Bir bütün peynirli pizza 8,99 $ maliyeti." 457 00:23:01,860 --> 00:23:05,160 Dediğim gibi, ben kullanabilirsiniz yerine eko burada yazdırmak 458 00:23:05,160 --> 00:23:08,040 ve işlevsellik olmak tam olarak aynı hemen hemen. 459 00:23:08,040 --> 00:23:09,660 Aynı şeyi yazdırmak istiyorum. 460 00:23:09,660 --> 00:23:12,680 >> Bunu yapmanın başka bir yolu var, ve bu başka bir avantajı 461 00:23:12,680 --> 00:23:14,710 PHP dizeleri ile çalışıyor. 462 00:23:14,710 --> 00:23:17,130 Biz dize birleştirme yapabiliriz. 463 00:23:17,130 --> 00:23:19,660 Biz de, C bu yapabileceğini, strcat adında bir işlevi kullanarak, 464 00:23:19,660 --> 00:23:21,180 ama yine biz vardı Ayrı işlevleri çağırmak. 465 00:23:21,180 --> 00:23:22,640 Bunu yapmak için bütün bu karışıklık oldu. 466 00:23:22,640 --> 00:23:24,590 Biz vardı string.h sterlin-sayılabilir. 467 00:23:24,590 --> 00:23:25,780 Bu doğru bir üretim oldu? 468 00:23:25,780 --> 00:23:30,070 Ama şimdi ben sadece bu nokta operatörünü kullanabilirsiniz Birlikte dizeleri bitiştirmek için. 469 00:23:30,070 --> 00:23:34,910 >> Ben de "A bütünü" bitiştirmek yaşıyorum ve Daha sonra ne olursa olsun $ tepesi değeri, 470 00:23:34,910 --> 00:23:38,860 ve sonra başka bir Dize, "pizza maliyeti $" 471 00:23:38,860 --> 00:23:42,340 ve bitiştirme ne olursa olsun $ fiyat değeridir 472 00:23:42,340 --> 00:23:45,670 ve daha sonra en sonunda ben dönem ters eğik çizgi n üzerinde teyel. 473 00:23:45,670 --> 00:23:47,926 Ve böylece bu da olur "Bir bütün" çıktısını - Yine, 474 00:23:47,926 --> 00:23:50,550 biz ilk bahsediyoruz eğer bu pizzalar array-- unsuru 475 00:23:50,550 --> 00:23:54,710 "Bir bütün peynirli pizza 8,99 $ maliyeti." 476 00:23:54,710 --> 00:24:01,260 Dönem yine ters eğik çizgi n, ile $ Tepesi ve $ fiyat ikame 477 00:24:01,260 --> 00:24:06,580 Bizim foreachta belirtilen vardı ne anahtar değeri çifti haritalama olarak döngü. 478 00:24:06,580 --> 00:24:08,050 >> PHP fonksiyonları işleyebilir. 479 00:24:08,050 --> 00:24:11,250 Fonksiyonlar çeşit vardı C ayrılmaz, biz gördük. 480 00:24:11,250 --> 00:24:14,870 Değişkenler gibi, biz gerek yok , işlevin dönüş türünü belirtin 481 00:24:14,870 --> 00:24:16,350 Gerçekten önemli değil çünkü. 482 00:24:16,350 --> 00:24:18,660 Ve biz belirtmeyen Herhangi bir parametre veri tipleri, 483 00:24:18,660 --> 00:24:21,410 onlar gerçekten yok çünkü olsun, biz PHP gördüm gibi. 484 00:24:21,410 --> 00:24:24,510 Her fonksiyon tanıtıldı function anahtar sözcüğüyle. 485 00:24:24,510 --> 00:24:27,920 Yani biz PHP işaret nasıl ne bahsediyoruz bir işlevdir. 486 00:24:27,920 --> 00:24:29,720 >> Ve biz gerek yok tüm ana başa, 487 00:24:29,720 --> 00:24:33,690 tercüman, çünkü PHP tercüman, yukarıdan aşağıya doğru çalışır, 488 00:24:33,690 --> 00:24:34,190 ne olursa olsun. 489 00:24:34,190 --> 00:24:35,640 O görürse yapabilir bir işlev çağrısı, bu olacak 490 00:24:35,640 --> 00:24:37,850 işlev çağrısı bulmak gidin, Hatta daha sonra gelirse. 491 00:24:37,850 --> 00:24:40,360 Ama yukarıdan okumak için gidiyor alt, bu yüzden belirtmek gerekmez, 492 00:24:40,360 --> 00:24:41,500 Başlamadan nerede burada. 493 00:24:41,500 --> 00:24:46,700 Siz hattı 1 başlayacak senin PHP oradan aşağı çalışmak ve. 494 00:24:46,700 --> 00:24:49,690 >> Yani burada biz yaratacak nasıl Bir işlev hard_square çağırdı. 495 00:24:49,690 --> 00:24:54,100 Görünüşe göre bir tane alır parametresi, ben $ x arıyorum. 496 00:24:54,100 --> 00:24:58,424 Bu işlev sadece karmaşık çeşitli şeyler göstermek için. 497 00:24:58,424 --> 00:24:59,590 Biz hala dönüş değerlerine sahiptir. 498 00:24:59,590 --> 00:25:00,870 Burada bir for döngüsü kullanıyorum. 499 00:25:00,870 --> 00:25:04,970 Ama temelde sadece, bu ne var Sadece $ x kez $ x TL'dir. 500 00:25:04,970 --> 00:25:10,520 Ne Aslında sadece ekliyor yapıyorum x x kez 0 veya $ sıfır $ x kez x. 501 00:25:10,520 --> 00:25:15,850 Ama tam olarak etkin bir şekilde $ x kez $ x çarparak aynı. 502 00:25:15,850 --> 00:25:18,700 Ben hala bir değer döndürebilir, Bu durumda $ sonucunda, 503 00:25:18,700 --> 00:25:22,060 ve PHP bir işlev yaptık. 504 00:25:22,060 --> 00:25:24,160 >> Burada bağlamda kullanmak nasıl bu. 505 00:25:24,160 --> 00:25:26,020 Bu yüzden belki de bazı PHP dosyası içinde değilim. 506 00:25:26,020 --> 00:25:29,240 Oradaki mavi edin Benim PHP sınırlayıcı kullandım, 507 00:25:29,240 --> 00:25:31,010 açılı ayraç soru işareti php. 508 00:25:31,010 --> 00:25:35,180 Arasındaki olarak tümü Ben yazmak istiyorum PHP. 509 00:25:35,180 --> 00:25:37,840 Yani görünüşte get-- gidiyorum Ben kullanıcı istemi gidiyorum 510 00:25:37,840 --> 00:25:41,550 Bana bir numara, mağaza vermek için bu Değişken, bu değişken $ x mağaza, 511 00:25:41,550 --> 00:25:43,320 ne onlar bana verdi. 512 00:25:43,320 --> 00:25:48,590 Sonra yankı gidiyorum bu değerin hard_square, 513 00:25:48,590 --> 00:25:50,370 ve görünüşe göre gidiyor yeni bir satıra tack 514 00:25:50,370 --> 00:25:53,590 ayrıca, ve daha sonra I olacak böylece hard_square işlevi tanımlar 515 00:25:53,590 --> 00:25:55,550 Ben yaptığınızda o hard_square için çağrı 516 00:25:55,550 --> 00:25:58,160 ben neden bahsettiğimi biliyor. 517 00:25:58,160 --> 00:26:00,705 >> Şimdi, ben de yapabilirim böyle bir şey. 518 00:26:00,705 --> 00:26:02,050 Bu biraz farklıdır. 519 00:26:02,050 --> 00:26:04,190 Neredeyse tam olarak Daha önce ne gördüm aynı, 520 00:26:04,190 --> 00:26:08,400 x yerine $ söyleyerek hariç Orada parametresi hard_square olarak, 521 00:26:08,400 --> 00:26:11,730 Ben $ x = 10 diyorum. 522 00:26:11,730 --> 00:26:14,330 Yani bu bir örnektir defansif programlama, 523 00:26:14,330 --> 00:26:17,070 Programlarınızı koruma Kötü niyetli kullanıcılara karşı. 524 00:26:17,070 --> 00:26:20,020 >> Bu, bazı hata yapmak için bir yoldur biz gerçekten did not olmadığını kontrol 525 00:26:20,020 --> 00:26:24,670 C. bir seçenek olarak var biz asla olabilir bir şeyin varsayılan değeri belirtin. 526 00:26:24,670 --> 00:26:27,010 Biz her zaman kontrol etmek zorunda olup, örneğin, 527 00:26:27,010 --> 00:26:30,820 Biz getString bir çağrı yaptı, eğer oldu en uygun derhal biz sonra 528 00:26:30,820 --> 00:26:33,300 Biz teslim olduğunu kontrol dize olsun 529 00:26:33,300 --> 00:26:35,504 Kullanıcı bize verdi null eşit değildir 530 00:26:35,504 --> 00:26:37,920 biz başlatmak için istemiyorum çünkü boş bir dize ile çalışıyor. 531 00:26:37,920 --> 00:26:39,670 >> İşte, bu bir yoldur Bu karşı korumak için. 532 00:26:39,670 --> 00:26:43,480 Kullanıcı bize bir şey vermezse her nasılsa, ne yapacağız? 533 00:26:43,480 --> 00:26:46,080 Peki, biz sadece söyleyeceğim ne olursa olsun Onlar bize vermedi, 534 00:26:46,080 --> 00:26:47,705 Biz sadece yerine 10 takmak için gidiyoruz. 535 00:26:47,705 --> 00:26:52,030 Onlar bize bir değer vermediler Yani, Sadece varsayılan olarak 10 kullanın. Ve işte, 536 00:26:52,030 --> 00:26:53,940 Ben yapıyorum fark Bir hard_square çağrısı, 537 00:26:53,940 --> 00:26:55,980 ama hiçbir istemi var kullanıcıya, değil mi? 538 00:26:55,980 --> 00:26:57,540 Ben sadece boş bir çağrı yapıyorum. 539 00:26:57,540 --> 00:27:00,860 >> Ama benim işlevi hard_square bir parametre bekliyor. 540 00:27:00,860 --> 00:27:02,222 Bu ne yazdırmak için gidiyor? 541 00:27:02,222 --> 00:27:03,680 Bu doğru, 100 yazdırmak için gidiyor? 542 00:27:03,680 --> 00:27:05,720 Kullanıcı vermedi Çünkü Bana bir şey ver. 543 00:27:05,720 --> 00:27:08,970 Ve bu yüzden sadece varsaymak gidiyorum 10-- 10 varsayılan değerdir. 544 00:27:08,970 --> 00:27:13,760 Ve böylece bu yazdıracak 100 üzerinden kendi satırında. 545 00:27:13,760 --> 00:27:16,390 >> PHP dosyaları gerekmez sadece tek bir dosya olabilir. 546 00:27:16,390 --> 00:27:19,480 Birlikte birden fazla dosya birleştirebilirsiniz, Sadece C. yapabilirsiniz yolu gibi 547 00:27:19,480 --> 00:27:24,330 Biz C bir yapmak genellikle olduğu yaptım #include başlık dosyaları çekti olsun. 548 00:27:24,330 --> 00:27:26,180 Biz PHP bunu yapmayız. 549 00:27:26,180 --> 00:27:29,110 Biz require_once denen bir şey yapmak. 550 00:27:29,110 --> 00:27:33,360 Ve sonra tüm bu var şey, bu __dir__ ne? 551 00:27:33,360 --> 00:27:36,510 Bu sadece bir özel var değişken veya özel sabit 552 00:27:36,510 --> 00:27:39,030 Gerçekten, ne belirler Geçerli dizin. 553 00:27:39,030 --> 00:27:41,320 Ve böylece bakmak için gidiyor Geçerli dizinde 554 00:27:41,320 --> 00:27:44,900 Bir dosya adında cs50.php için burada, bu örnekte, 555 00:27:44,900 --> 00:27:50,490 ve bu dosyayı sopa gidiyor PHP programının en üstünde, 556 00:27:50,490 --> 00:27:56,980 Eğer gerektiren koymak olduğunu varsayarak PHP dosyasının en üstünde hat kez. 557 00:27:56,980 --> 00:28:01,474 >> Bu nedenle, öncelikle PHP, kullanılan ancak yalnız olarak kullanılmaz 558 00:28:01,474 --> 00:28:03,140 web tabanlı programlama dili olarak. 559 00:28:03,140 --> 00:28:05,270 Yani için geldi gerçekten nasıl. 560 00:28:05,270 --> 00:28:06,980 Ama tam Gördüğümüz olarak dil. 561 00:28:06,980 --> 00:28:10,105 Biz hemen hemen her şeyi gördüm o C benzer olduğunu yapabilirsiniz, 562 00:28:10,105 --> 00:28:13,290 ve bir halt yapabilirsiniz Bundan daha çok. 563 00:28:13,290 --> 00:28:16,950 >> Ama bu, çünkü tam bir dil ve biz o komut satırı programlama yapabilirsiniz. 564 00:28:16,950 --> 00:28:18,630 Biz komut satırı programları çalıştırabilirsiniz. 565 00:28:18,630 --> 00:28:22,580 Bütün bu komutu çalıştırmak için gerekli oluyor PHP ile yazılmış oluyor satırı programı 566 00:28:22,580 --> 00:28:24,260 Eğer bir PHP yorumlayıcı olması. 567 00:28:24,260 --> 00:28:27,460 Bu yüzden karşı bir çeşit benzer var Sisteminizde bir derleyici olan 568 00:28:27,460 --> 00:28:31,100 Eğer C kodu derlemek istiyorsanız çalıştırılabilir dosyaları çevirmek için. 569 00:28:31,100 --> 00:28:33,810 Bir PHP yorumlayıcısı olması gerekir Bu sisteminizde mevcut 570 00:28:33,810 --> 00:28:37,330 böylece PHP dosyalarını yorumlamak olabilir. 571 00:28:37,330 --> 00:28:40,370 >> Eğer varsayarak, ve genellikle Bu tercüman, PHP denir 572 00:28:40,370 --> 00:28:44,300 ve genellikle çoğu ile birlikte oluyor siteleri veya PHP teçhizatları 573 00:28:44,300 --> 00:28:47,430 kesinlikle online almak ve olabilir PHP yorumlayıcısı adı 574 00:28:47,430 --> 00:28:49,550 Biz CS50 IDE sahiptir. 575 00:28:49,550 --> 00:28:51,819 Tüm yapmanız gereken tip php dosyasıdır. 576 00:28:51,819 --> 00:28:53,610 Ve ne programın yapacak bu kadar olduğunu 577 00:28:53,610 --> 00:28:55,360 ile koşacağız tercüman, bu kadar 578 00:28:55,360 --> 00:28:58,040 olan her şeyi görmezden gidiyor olup, söz mark-- arasında 579 00:28:58,040 --> 00:29:03,160 ya da, açılı ayraç soru işareti php, PHP ayraçları, ve çıktısını 580 00:29:03,160 --> 00:29:07,660 ve yorumlamak ve yürütecek PHP sınırlayıcı içinde kodu. 581 00:29:07,660 --> 00:29:12,850 >> Yani CS50 IDE üzerinden pop izin ve PHP dosyaları bir çift göz var, 582 00:29:12,850 --> 00:29:19,850 olarak, PHP dosyaları bir çift çalışan CS50 IDE komut satırı arayüzü. 583 00:29:19,850 --> 00:29:22,100 Yani burada biz CS50 IDE olan ve ben özgürlük aldım 584 00:29:22,100 --> 00:29:25,800 bir hello1.php adlı bir dosyayı açmadan. 585 00:29:25,800 --> 00:29:29,920 Bu Ve görünüşe göre, içindekiler Dosya, orada sadece PHP sınırlayıcılardır 586 00:29:29,920 --> 00:29:32,220 ve yankı arasında ("hello, world"). 587 00:29:32,220 --> 00:29:34,710 Bu oldukça basit bir PHP programıdır. 588 00:29:34,710 --> 00:29:37,670 Ben sadece aşağı kaydırmak için gidiyorum Burada benim Terminal penceresine, 589 00:29:37,670 --> 00:29:44,320 ve ben php yazın gidiyorum hello1.php, butonu tıklayın. 590 00:29:44,320 --> 00:29:44,950 Merhaba Dünya. 591 00:29:44,950 --> 00:29:48,110 İşte biz muhtemelen ne var bunu yapmak için bekliyor, değil mi? 592 00:29:48,110 --> 00:29:51,140 >> En gidip alalım Başka bir programa bakmak. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Hemen hemen aynı şey, burada çok oluyor değil. 595 00:29:55,090 --> 00:29:57,190 Bu sefer, ama, ben soracak gidiyorum Kullanıcı bana isimlerini vermek. 596 00:29:57,190 --> 00:29:59,290 Yine o taleb işlevi kullanıyorum. 597 00:29:59,290 --> 00:30:01,340 $ name = taleb. 598 00:30:01,340 --> 00:30:03,070 Bu istemi var "Adın ne?" 599 00:30:03,070 --> 00:30:04,880 >> Görünüşe göre ben değilim baskı kendi satırında. 600 00:30:04,880 --> 00:30:07,220 Ve sonra, bu yüzden çizgi aşağıda Bu istemi olacak 601 00:30:07,220 --> 00:30:08,750 nerede kullanıcı kendi adını girebilirsiniz. 602 00:30:08,750 --> 00:30:12,030 Ve sonra ben biraz kullanarak yaşıyorum 3. hatta burada değişken gensoru 603 00:30:12,030 --> 00:30:14,780 "Merhaba" yazdırmak ve ne olursa olsun kullanıcı türleri. 604 00:30:14,780 --> 00:30:22,040 Yani bu Merhaba, diyerek benzer, virgül,% s biz C. printf kullanarak sanki 605 00:30:22,040 --> 00:30:24,910 >> Yani Gidip bu programı çevirsin. 606 00:30:24,910 --> 00:30:27,400 Yani yine, aşağı kaydırma edeceğiz Benim Terminal penceresine. 607 00:30:27,400 --> 00:30:29,070 php hello2.php. 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 Adın ne? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Merhaba, Doug. 612 00:30:36,526 --> 00:30:39,440 Ben de başka var Dosya hello3.php denir. 613 00:30:39,440 --> 00:30:42,850 Ben temizlemek için gidiyorum benim Kontrol L ile ekran, 614 00:30:42,850 --> 00:30:46,210 ve ben o idam edeceğim. 615 00:30:46,210 --> 00:30:47,640 Adın ne? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Merhaba, Doug. 618 00:30:49,780 --> 00:30:56,540 Yani davranış aynıdır hello2.php, ama neden hello3.php mı? 619 00:30:56,540 --> 00:30:58,040 >> İşte fark bu. 620 00:30:58,040 --> 00:31:00,620 Bu durumda, bildirim Burada 1. satırda, 621 00:31:00,620 --> 00:31:04,270 Ben değil bir şey var PHP ayraçları arasında. 622 00:31:04,270 --> 00:31:07,760 Ben sadece bir konrtol ya da ben yazdırırken ediyorum Sadece "Adın nedir?", daktilo 623 00:31:07,760 --> 00:31:12,060 PHP yorumlayıcısı bu gördüğünde, onu hiçbir fikri nasıl PHP olarak yorumlamak olup, 624 00:31:12,060 --> 00:31:15,060 ve bu yüzden yerine, başarısız Sadece o tükürmek için gidiyor. 625 00:31:15,060 --> 00:31:19,010 >> Yani, şimdi hat 3 benim çağrı fark taleb, artık hiçbir istemi var. 626 00:31:19,010 --> 00:31:21,750 Ben aslında sadece aşağıdaki amaçlara ne zaman gidiyorum PHP yorumlayıcısı, bu görür 627 00:31:21,750 --> 00:31:23,400 o yazdırmak için gidiyor "Adın ne?" 628 00:31:23,400 --> 00:31:25,941 Sonra here's--, tamam, oh, görüyor her şey olacak 629 00:31:25,941 --> 00:31:29,970 böylece, PHP olarak yorumlanır Bu işler bu yüzden. 630 00:31:29,970 --> 00:31:34,990 Ben mutlaka soracak gerekmez taleb içinde kullanıcı aşağıdaki amaçlara, 631 00:31:34,990 --> 00:31:37,490 Ben sadece dışarıda olabilir PHP sınırlayıcı 632 00:31:37,490 --> 00:31:41,490 ve tercüman izin Sadece benim için yazdırmak için. 633 00:31:41,490 --> 00:31:45,364 >> Yani aslında sadece yok PHP sınırlayıcı bir set var 634 00:31:45,364 --> 00:31:46,030 Programda. 635 00:31:46,030 --> 00:31:49,887 Aslında, bunların birkaç olabilir Açılış ve gerektiğinde bunları kapanış. 636 00:31:49,887 --> 00:31:51,720 Yani bir göz atalım programların bir çift 637 00:31:51,720 --> 00:31:55,070 burada CS50 IDE biz sahip bu fikri göstermektedir 638 00:31:55,070 --> 00:31:58,376 ayrılmış PHP birden ayarlar. 639 00:31:58,376 --> 00:32:02,010 >> Tamam, bu yüzden bir dosya açtım Burada add1.php denir. 640 00:32:02,010 --> 00:32:03,390 Ve burada neler olduğunu fark. 641 00:32:03,390 --> 00:32:08,077 Tıpkı daha önce, ben bir Tek PHP sınırlayıcı ayarlayın. 642 00:32:08,077 --> 00:32:10,660 Ben yazdırmak için gidiyorum mesajı, "Bana bir numara verin." 643 00:32:10,660 --> 00:32:13,394 Sonra bir satır okuyacağım ve değişken $ NUM1 saklayın. 644 00:32:13,394 --> 00:32:14,810 Sonra tekrar yazdırmak için gidiyorum. 645 00:32:14,810 --> 00:32:16,310 Bana ikinci bir sayı verin. 646 00:32:16,310 --> 00:32:20,450 Kullanıcı, mağazasından bir satır okumak onlar $ Num2 içinde yazdığınız ne olursa olsun. 647 00:32:20,450 --> 00:32:23,980 Onları bir arada ekleyin ve saklayın $ toplam adında bir değişken sonuçlanır, 648 00:32:23,980 --> 00:32:26,180 ve ardından ", çıktısını Bu iki sayının toplamı 649 00:32:26,180 --> 00:32:29,254 ise, "ve sonra gensoru Orada değişken $ toplamı. 650 00:32:29,254 --> 00:32:31,170 Yani sadece bu çalışmasına izin tercüman aracılığıyla 651 00:32:31,170 --> 00:32:33,720 Bu bizim ne bekliyoruz olduğunu onaylayın. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Bana bir numara, 3 veriniz. 654 00:32:38,665 --> 00:32:40,410 Bana ikinci bir sayı, 4 veriniz. 655 00:32:40,410 --> 00:32:43,370 Bu iki sayının toplamı 7'dir. 656 00:32:43,370 --> 00:32:45,030 Yani 3 artı 4 var. 657 00:32:45,030 --> 00:32:45,530 Tamam mı? 658 00:32:45,530 --> 00:32:47,770 Orada Yani hiçbir şey korkunç fantezi. 659 00:32:47,770 --> 00:32:51,080 >> Ve şimdi add2.php kadar açalım. 660 00:32:51,080 --> 00:32:54,460 Burada, PHP bir çift var Orada setleri sınırlandırılmış, değil mi? 661 00:32:54,460 --> 00:32:59,107 Çizgiler 1, 3-- hat 1 ve 3 hiçbir PHP sınırlayıcı var. 662 00:32:59,107 --> 00:33:00,940 Peki ne zaman tercüman bu sadece, onları görür 663 00:33:00,940 --> 00:33:03,220 Tam tükürmek olacak ne var yazdığınız. 664 00:33:03,220 --> 00:33:05,011 Ben nereye kadar işte Benim isteyen yapıyor. 665 00:33:05,011 --> 00:33:11,220 Hatları 2 ve 4, gördüğümüz çok Tanıdık $? sınırlayıcı php sort, 666 00:33:11,220 --> 00:33:15,210 böylece bu iki satır vardır PHP gibi idam edecekler. 667 00:33:15,210 --> 00:33:18,270 Ve sonra hat 5, ben bu var Burada garip bir şey, değil mi? 668 00:33:18,270 --> 00:33:20,480 Bu açılı ayraç soru işareti eşittir işareti. 669 00:33:20,480 --> 00:33:22,660 Hatta biraz daha ileri yakınlaştırmak olacak. 670 00:33:22,660 --> 00:33:29,270 Bunu ben ne görebiliyorum Sağ orada yaklaşık bu $ bahsediyoruz? =. 671 00:33:29,270 --> 00:33:33,420 >> O o kadar yaygın olduğunu çıkıyor Biz PHP bir dizi açmak nedeni 672 00:33:33,420 --> 00:33:36,055 sınırlayıcı bir değer yazdırmak olduğunu. 673 00:33:36,055 --> 00:33:37,430 Ve biz yapacağımız bu. 674 00:33:37,430 --> 00:33:39,220 Ama bu bile kestirme var. 675 00:33:39,220 --> 00:33:46,490 $? = Diyerek PHP kısaltmasıdır $ gibi bir şey? php echo toplamı 676 00:33:46,490 --> 00:33:48,350 NUM1 ve Num2 evi. 677 00:33:48,350 --> 00:33:51,900 Yani bu sadece başka bir Bunun için steno. 678 00:33:51,900 --> 00:33:55,550 >> Ben bu programı, php add2.php çalıştırın Yani eğer. 679 00:33:55,550 --> 00:33:57,530 Ben biraz aşağı yakınlaştırın edeceğiz. 680 00:33:57,530 --> 00:33:59,000 Bana bir numara, 4 veriniz. 681 00:33:59,000 --> 00:34:00,350 Bana ikinci bir sayı verin. 682 00:34:00,350 --> 00:34:04,650 Ve ben gerçekten umurumda değil çünkü PHP veri tipleri, ben 4.8 diyebilirim. 683 00:34:04,650 --> 00:34:07,160 Bu iki sayının toplamı 8.8. 684 00:34:07,160 --> 00:34:10,179 Bu fonksiyon oldukça fazla davranır Biz beklediğiniz tam olarak aynı, 685 00:34:10,179 --> 00:34:10,989 de. 686 00:34:10,989 --> 00:34:13,114 Ve ben bir daha açmış Buraya kadar dice.php denir. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Yine bu deneyin. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Ben kimse burada daha denilen var Ayrıca, bakınız dice1.php, 691 00:34:33,280 --> 00:34:37,440 O açılı ayraç soru vardır Orada eşittir işareti gösterimde işaretleyin 692 00:34:37,440 --> 00:34:40,659 ancak bu durumda ben fark Fonksiyon rand, çağırarak hangi senin gibi 693 00:34:40,659 --> 00:34:42,790 Tahmin edebileceğiniz rastgele bir sayı üretir. 694 00:34:42,790 --> 00:34:46,889 "Sen, bir rulo" ve gidiyor + bazı rasgele sayı, mod 6 hesaplamak 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Yani bana numarayı vereceğiz 1 ila 6 aralığındadır. 697 00:34:49,989 --> 00:34:53,040 >> Mod 6 bana vereceğini unutmayın 0 ila 5 arasında değişen bir sayı 698 00:34:53,040 --> 00:34:56,630 ama zar rulo taklit ediyorsam, Hangi Burada ne yapıyorum, 699 00:34:56,630 --> 00:35:00,040 Ben bu zar 0'dan gitmek istemiyorum 5, ben 1 ile 6 arasında gidip zar istiyoruz. 700 00:35:00,040 --> 00:35:02,800 Ve böylece bu almak için bir yoldur 1 ila 6 aralığında ben. 701 00:35:02,800 --> 00:35:04,720 Ben iki kez yapıyorum. 702 00:35:04,720 --> 00:35:08,630 Yani görünüşe göre ben haddeleme ediyorum Bu programda iki zar. 703 00:35:08,630 --> 00:35:15,210 >> Yani benim ekranı temizlemek olacak, ve ben php dice1.php yapacağız. 704 00:35:15,210 --> 00:35:16,640 Sen 4 ve 2 yuvarlandı. 705 00:35:16,640 --> 00:35:19,156 Ve ben programı çalıştırmak durumunda Yine, bir 5 ve 5 yuvarlandı. 706 00:35:19,156 --> 00:35:21,780 Yani programı çalıştırmak her zaman, Ben, farklı numaralar alıyorum 707 00:35:21,780 --> 00:35:24,280 Çünkü yapmak her zaman bu nedenle, bitti başlıyor. 708 00:35:24,280 --> 00:35:27,250 Bu yeni bir oluşturmak için gidiyor Benim için rasgele sayı kümesi. 709 00:35:27,250 --> 00:35:29,790 >> Biz alışık Yani eğer C çalışan programlar, 710 00:35:29,790 --> 00:35:32,520 Biz ./ yazarak alışık Doğru, bir programın adı? 711 00:35:32,520 --> 00:35:35,090 Yani hepimizin yaptık nasıl C programlarımızın ana kadar. 712 00:35:35,090 --> 00:35:37,555 Biz de PHP yapabilirsiniz bir şey ekleyerek denilen 713 00:35:37,555 --> 00:35:40,026 Bizim PHP dosyasının üstüne bir mesele. 714 00:35:40,026 --> 00:35:41,400 Ben aptal bir kelimenin tür olduğunu biliyorum. 715 00:35:41,400 --> 00:35:44,540 Bu karma bang kısa. 716 00:35:44,540 --> 00:35:46,300 Oradaki ilk iki karakter var. 717 00:35:46,300 --> 00:35:50,030 Biz ünlem diyoruz hatırla bilgisayar bilimleri sık patlama. 718 00:35:50,030 --> 00:35:51,690 Aynı zamanda keskin patlama için olabilir. 719 00:35:51,690 --> 00:35:53,273 Yorumlamak için bir kaç yolu var. 720 00:35:53,273 --> 00:35:57,320 Ama temelde özel bir tür olduğunu bir komut olduğu PHP yorumlayıcı 721 00:35:57,320 --> 00:36:00,160 oh, istediğim gibi anlar Bu programı çalıştırmak için, 722 00:36:00,160 --> 00:36:05,250 hangi görünüşte / user / bin / php, hangi nerede PHP yorumlayıcı aslında 723 00:36:05,250 --> 00:36:08,590 Özellikle bizim sistemde yaşıyor. 724 00:36:08,590 --> 00:36:12,530 Bu-- Peki burada olur tercüman, ah, anlar 725 00:36:12,530 --> 00:36:17,270 Ben görünüşte kullanmak gerekiyor Bu programda bu dosyayı çalıştırın. 726 00:36:17,270 --> 00:36:20,010 Ve bu yüzden seni tanır adım üzerinden atlamak için 727 00:36:20,010 --> 00:36:22,979 php something.php söylemek zorunda. 728 00:36:22,979 --> 00:36:25,020 Bir başka yakalamak var Burada, ki bu eğer 729 00:36:25,020 --> 00:36:27,320 Bizim programları istiyorum beklendiği gibi, biz işe 730 00:36:27,320 --> 00:36:30,220 denilen bir şeyler yapmak gerekiyor Bir dosya izin değişikliği. 731 00:36:30,220 --> 00:36:33,380 Ve biz go-- olacak ve biz biraz konuşalım biraz daha ilgili dosya izni değişiklikleri 732 00:36:33,380 --> 00:36:37,550 Bizim MVC video, ancak bunu yeterli Bu yapmanız gereken şey olduğunu söylemek 733 00:36:37,550 --> 00:36:42,760 hale getirmek için kayıt .php dosyaları çalıştırılabilir. 734 00:36:42,760 --> 00:36:49,330 Yani bu bir göz atalım CS50 IDE bizim son örneği üzerinde. 735 00:36:49,330 --> 00:36:53,910 >> Yani burada IDE içinde ben bu iki dosya var Olmamaya görünen PHP dizini 736 00:36:53,910 --> 00:36:55,310 .php olarak adlandırılır. 737 00:36:55,310 --> 00:36:58,170 Ben bir işlevi çağrılır var DİNLEME EKLE Bir dosya adında Add3 var 738 00:36:58,170 --> 00:37:00,650 ve bir dosya dice2 çağırdı. 739 00:37:00,650 --> 00:37:03,680 Yani hızlı atalım bakmak ve Add3 açmak. 740 00:37:03,680 --> 00:37:08,300 Ve başında görebileceğiniz gibi Benim dosyanın doğru, bu shebang var? 741 00:37:08,300 --> 00:37:11,420 Bu karma işareti ünlem. 742 00:37:11,420 --> 00:37:15,115 Şimdi, belki de olacak nedense fark, 743 00:37:15,115 --> 00:37:16,990 Ben herhangi bir sözdizimi yok Artık vurgulayarak, 744 00:37:16,990 --> 00:37:20,198 ve bu, daha önce ima budur hangi Benim dosya adı yoksa o oldu 745 00:37:20,198 --> 00:37:23,040 .php, ben parası yok sözdizimi artık vurgulayarak. 746 00:37:23,040 --> 00:37:26,220 Bu dosya sadece Add3 denir. 747 00:37:26,220 --> 00:37:30,960 Daha sonra bunu çalıştırmak böylece ./ Add3 olup ./ add3.php ile. 748 00:37:30,960 --> 00:37:33,680 >> Yani nedenden hala var İnce, bu hala geçerli PHP değil, 749 00:37:33,680 --> 00:37:37,000 fakat, çünkü vurgulanan sözdizimi değil Bu dosya something.php denir. 750 00:37:37,000 --> 00:37:41,580 Yani tek gerçek fark Burada artı mesele. 751 00:37:41,580 --> 00:37:45,170 Yani ne olur görelim Ben denemek ve bu programı çalıştırın. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, sadece ben C. Bash ile yaptığınız gibi. 753 00:37:50,780 --> 00:37:53,190 ./ Add3 izni reddedildi. 754 00:37:53,190 --> 00:37:55,390 Bu gidiyoruz nedir unutmak görmek için 755 00:37:55,390 --> 00:37:59,280 değiştirmek için chmod komutunu kullanın Dosyanın izinlerini. 756 00:37:59,280 --> 00:38:03,845 >> O düzenli PHP çıkıyor Dosyaları sadece idam edilemez. 757 00:38:03,845 --> 00:38:06,970 Bunlar yorumlanabilir ama konum Burada biraz farklı bir şey yapıyor. 758 00:38:06,970 --> 00:38:07,761 Biz onu infaz ediyoruz. 759 00:38:07,761 --> 00:38:12,970 Ve bu yüzden izin eklemeniz gerekir icra, a + x için Add3 chmod. 760 00:38:12,970 --> 00:38:15,680 Sonra ./ Add3 söyleyebiliriz. 761 00:38:15,680 --> 00:38:16,860 Bana bir numara verin. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Bu iki sayının toplamı 11'dir. 764 00:38:20,490 --> 00:38:26,530 >> Benzer şekilde, ben zaten CHMOD değeri var dice2, bu yüzden sadece, dice2 ./ yazabilirsiniz 765 00:38:26,530 --> 00:38:31,260 Eğer bir 1 ve 1 haddelenmiş, sen böylece bir 5 ve 4, ve devirdi. 766 00:38:31,260 --> 00:38:33,680 >> Yani oldukça fazla PHP sözdizimi fikri, değil mi? 767 00:38:33,680 --> 00:38:35,221 Aracılığıyla almak için bir çok şey var, biliyorum. 768 00:38:35,221 --> 00:38:39,160 Ama umarım bu PHP şimdi gördüm C gerçekten farklı değil 769 00:38:39,160 --> 00:38:43,670 ve gerçekten bize yeteneği verir bir çentik ya da iki şey almak için. 770 00:38:43,670 --> 00:38:48,230 Biz gerçekten endişelenmenize gerek yok biz gerçekten yok about-- çok 771 00:38:48,230 --> 00:38:51,605 hakkında çok fazla endişelenmenize gerek düşük seviyeli ayrıntıları biz 772 00:38:51,605 --> 00:38:52,980 Doğru, C dert etmek zorunda kaldı? 773 00:38:52,980 --> 00:38:56,170 Biz yüksek odaklanabilirsiniz düzey şeyler o PHP 774 00:38:56,170 --> 00:39:01,090 yapmamızı sağlar ve için almak Bizim için çalışacağını verildi. 775 00:39:01,090 --> 00:39:04,350 Yani, şimdi bize yeteneği verir PHP C geçiş, 776 00:39:04,350 --> 00:39:08,280 çok daha programlar yapmak karmaşık ve belki de çok daha sağlam. 777 00:39:08,280 --> 00:39:13,070 >> O yüzden eğlenceli çalışma var umut PHP ile ve Doug Lloyd değilim. 778 00:39:13,070 --> 00:39:15,050 Bu CS50 olduğunu. 779 00:39:15,050 --> 00:39:17,637