1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Więc mamy zrobić dużo pracy w C, 3 00:00:07,370 --> 00:00:09,536 a C jest naprawdę super język, bo to daje 4 00:00:09,536 --> 00:00:12,840 możliwość nurkowania naprawdę niski poziom w swoich programach. 5 00:00:12,840 --> 00:00:16,810 Docieramy do robienia rzeczy, jak Naprawdę minut, jak manipulowanie 6 00:00:16,810 --> 00:00:18,800 Poszczególne bajtów pamięci. 7 00:00:18,800 --> 00:00:21,420 Przypomnijmy, że wskaźnikami naprawdę pozwalają nam, że elastyczność. 8 00:00:21,420 --> 00:00:25,260 >> Ale czy zawsze trzeba mieć że poziom drobnoziarnista szczegółów 9 00:00:25,260 --> 00:00:26,820 w naszych programach? 10 00:00:26,820 --> 00:00:28,210 Chyba nie, prawda? 11 00:00:28,210 --> 00:00:30,376 A jeśli będziemy mieć kompromis między byciem 12 00:00:30,376 --> 00:00:32,911 w stanie zrobić naprawdę minute rzeczy i naprawdę, naprawdę 13 00:00:32,911 --> 00:00:35,910 wielkie rzeczy, że nie mamy do myślenia o, nie mamy do wdrożenia 14 00:00:35,910 --> 00:00:40,290 te naprawdę wielkie idee jeśli oni już wbudowane w nas, 15 00:00:40,290 --> 00:00:43,980 ogólnie do budowy duże programy lub duże projekty, 16 00:00:43,980 --> 00:00:49,130 jesteśmy prawdopodobnie będzie zaważyć na posiadania więcej język rzeczy zbudowany w 17 00:00:49,130 --> 00:00:51,300 nas, zamiast rzeczy na niskim poziomie. 18 00:00:51,300 --> 00:00:53,970 I tam naprawdę jest w PHP. 19 00:00:53,970 --> 00:00:58,200 >> Obecnie, jedna z przyczyn że uczymy PHP w CS50 20 00:00:58,200 --> 00:01:01,020 jest to, że w dużej mierze zainspirowany C. A w rzeczywistości, moim zdaniem, 21 00:01:01,020 --> 00:01:05,140 są naprawdę dwie Języki progenitorowych, że 22 00:01:05,140 --> 00:01:08,200 są bardzo popularne w dzisiejszych czasach. 23 00:01:08,200 --> 00:01:10,110 C i LISP. 24 00:01:10,110 --> 00:01:13,280 I są języki progenitorowych bo każdego innego nowoczesnego programowania 25 00:01:13,280 --> 00:01:17,380 Język, który stworzył od tego czasu jest inspirowany 26 00:01:17,380 --> 00:01:20,330 przez jedną lub drugą składniowo. 27 00:01:20,330 --> 00:01:26,160 PHP jest bardzo podobna składniowo na C, podczas gdy system podobny do języków, 28 00:01:26,160 --> 00:01:27,900 Na przykład, co może słyszeliście, 29 00:01:27,900 --> 00:01:32,070 jest mocno zainspirowana języku nazywa LISP, który jest starszy język. 30 00:01:32,070 --> 00:01:34,220 >> Więc dlatego, uczymy PHP w CS50 jest to, że, 31 00:01:34,220 --> 00:01:37,730 znając C jako zasadniczy jak to zrobić w tym momencie, 32 00:01:37,730 --> 00:01:41,280 zbierając PHP, co daje Państwu zdolność do znacznie wyższych rzeczy poziomu 33 00:01:41,280 --> 00:01:44,710 od C działa nie jest że wiele utrudnień, 34 00:01:44,710 --> 00:01:48,230 bo masz już Podstawowa idea składni. 35 00:01:48,230 --> 00:01:50,590 C jest już od prawie 45 lat w tym momencie. 36 00:01:50,590 --> 00:01:52,780 PHP jest już od około 20 lat. 37 00:01:52,780 --> 00:01:57,080 I w tym 25 lat pomiędzy, programistów 38 00:01:57,080 --> 00:02:01,540 ustalono, że będzie ich znacznie a mają wyższe umiejętności poziomu, 39 00:02:01,540 --> 00:02:04,970 i błędy i walki od 20 lat w okresie 40 00:02:04,970 --> 00:02:08,210 doprowadziły do ​​PHP i innych językach nowożytnych. 41 00:02:08,210 --> 00:02:11,039 >> PHP to świetny wybór język oprogramowania 42 00:02:11,039 --> 00:02:14,042 że allow-- dla Oprogramowanie that-- gdzie 43 00:02:14,042 --> 00:02:16,250 trzeba robić rzeczy, które w C są rzeczywiście skomplikowane. 44 00:02:16,250 --> 00:02:18,480 Tak na przykład, pracę z ciągów znaków w C 45 00:02:18,480 --> 00:02:21,709 jest bardzo skomplikowany, ponieważ jak wiemy, ciągi w C 46 00:02:21,709 --> 00:02:23,250 są naprawdę tylko tablice znaków. 47 00:02:23,250 --> 00:02:25,230 To nie jest wbudowany typ danych. 48 00:02:25,230 --> 00:02:28,220 A może bardziej zasadniczo, coś nie pokrywają nawet w C, 49 00:02:28,220 --> 00:02:30,360 co, jeśli trzeba zrobić niektóre sieci komputerowych? 50 00:02:30,360 --> 00:02:30,860 W porządku? 51 00:02:30,860 --> 00:02:34,920 >> C ma możliwość, aby to zrobić, ale to tak arcane i tak trudne do rzeczywiście zrobić. 52 00:02:34,920 --> 00:02:37,580 Czy nie byłoby miło, gdyby Język miał wbudowany, łatwy sposób 53 00:02:37,580 --> 00:02:38,910 do wdrożenia sieci? 54 00:02:38,910 --> 00:02:43,420 I PHP jest językiem, który sprawia, że lub ułatwia, że ​​nieco więcej. 55 00:02:43,420 --> 00:02:47,740 Jak powiedziałem, PHP jest bardzo mocno inspirowane przez C. Składnia jest bardzo podobna. 56 00:02:47,740 --> 00:02:51,760 I tak powinno miejmy nadzieję uczynić Przejście od jednego do drugiego 57 00:02:51,760 --> 00:02:54,710 trochę bardziej miękkie niż niektóre innych języków może być. 58 00:02:54,710 --> 00:02:58,800 >> Aby zacząć pisać w PHP, wystarczy otworzyć plik z rozszerzeniem .php. 59 00:02:58,800 --> 00:03:00,670 Technicznie nie jest faktycznie wymagane, 60 00:03:00,670 --> 00:03:04,495 ale jeśli chcesz takie rzeczy jak składni podkreślając w IDE, więc tego typu 61 00:03:04,495 --> 00:03:07,620 nazwy lub nazw zmiennych, funkcje, wiesz, słowa kluczowe języka 62 00:03:07,620 --> 00:03:10,090 są podświetlone w sposób specyficzny kolor, na ogół 63 00:03:10,090 --> 00:03:14,020 chcą wymienić swoje pliki dany rozszerzenie pliku. 64 00:03:14,020 --> 00:03:18,430 Tak nazwaliśmy nasz plik z .php rozszerzenie, ale także z PHP, 65 00:03:18,430 --> 00:03:23,310 cały kod PHP piszemy w tym Plik musi być ujęty w tych PHP 66 00:03:23,310 --> 00:03:25,190 ograniczniki, które widzimy tutaj na ekranie. 67 00:03:25,190 --> 00:03:27,910 Kątownik? Php, aby rozpocząć. 68 00:03:27,910 --> 00:03:30,860 Następnie piszemy wszystkie nasze PHP kod, który chcemy pomiędzy. 69 00:03:30,860 --> 00:03:32,260 I wtedy ? 70 00:03:32,260 --> 00:03:34,710 kątownik, aby zamknąć. 71 00:03:34,710 --> 00:03:37,170 >> Jeśli tego nie zrobi, to co się stanie? 72 00:03:37,170 --> 00:03:38,170 To się nie upaść. 73 00:03:38,170 --> 00:03:39,410 To nie będzie naprawdę zrujnować nasz program. 74 00:03:39,410 --> 00:03:41,440 Ale to nie będzie mieć efekt, który chcemy. 75 00:03:41,440 --> 00:03:44,540 Co się stanie, naprawdę, jest że kiedy staramy się uruchomić ten program, 76 00:03:44,540 --> 00:03:50,330 nie wszystko między tymi ogranicznikami zostanie wydrukowany dosłownie. 77 00:03:50,330 --> 00:03:52,210 To nie będzie faktycznie wykonanie kodu, 78 00:03:52,210 --> 00:03:56,010 to będzie po prostu wydrukować go dosłownie. 79 00:03:56,010 --> 00:03:57,320 >> Teraz dlaczego tak jest? 80 00:03:57,320 --> 00:04:00,416 Więc C, co jest znane jako skompilowany języka. 81 00:04:00,416 --> 00:04:03,040 Jesteś prawdopodobnie zna etap wykonywania programów, 82 00:04:03,040 --> 00:04:07,820 obracając .c pliki i pliki .h w jednym pliku wykonywalnym z marki, 83 00:04:07,820 --> 00:04:11,130 W szczególności przy wykorzystaniu Clang jako naszego kompilatora. 84 00:04:11,130 --> 00:04:13,030 PHP, choć nie mieć to odpowiednik. 85 00:04:13,030 --> 00:04:15,600 PHP jest to, co się nazywa interpretowany język. 86 00:04:15,600 --> 00:04:16,760 A co to oznacza? 87 00:04:16,760 --> 00:04:20,680 >> Cóż, oznacza to, że nie mamy do konwersji nasz kod źródłowy do zer i jedynek 88 00:04:20,680 --> 00:04:21,470 uprzednio. 89 00:04:21,470 --> 00:04:23,900 Przeciwnie, jest to program, który jest również nazywany 90 00:04:23,900 --> 00:04:29,771 PHP, że rozumie, PHP i może jakby zrobić to w locie. 91 00:04:29,771 --> 00:04:32,520 To naprawdę nie jest dokładnie to, dokładne, ale jest to całkiem dobra analogia 92 00:04:32,520 --> 00:04:33,760 z tego, co się dzieje. 93 00:04:33,760 --> 00:04:37,230 To interpretacji tych zer i jedynek w locie. 94 00:04:37,230 --> 00:04:40,160 I tak, jeśli nie wie Sposób przetwarzania coś 95 00:04:40,160 --> 00:04:42,800 Jeśli nie wie jak Proces PHP, prawdopodobnie 96 00:04:42,800 --> 00:04:44,680 chciał umieścić ten tekst w środku, prawda? 97 00:04:44,680 --> 00:04:48,960 >> Prawdopodobnie chciał umieścić kod w tam, nawet jeśli nie jest pomiędzy PHP-- 98 00:04:48,960 --> 00:04:50,035 separatory PHP. 99 00:04:50,035 --> 00:04:51,910 Ale-- więc to nie będzie usunąć go dla Ciebie, 100 00:04:51,910 --> 00:04:53,576 to po prostu będzie w zasadzie wyrzucić. 101 00:04:53,576 --> 00:04:55,550 Więc to będzie drukować to się do ekranu. 102 00:04:55,550 --> 00:04:57,150 >> Wydaje się, że to zły rzecz, ale w rzeczywistości jest to 103 00:04:57,150 --> 00:04:58,220 dzieje się naprawdę dobre, jak będziesz 104 00:04:58,220 --> 00:05:00,390 zobacz kiedy mówimy o Tworzenie stron internetowych PHP, 105 00:05:00,390 --> 00:05:04,010 ponieważ oznacza to, możemy przeplatać PHP i HTML. 106 00:05:04,010 --> 00:05:06,640 Możemy wykorzystać je w celu stworzyć bardziej dynamiczną stronę internetową. 107 00:05:06,640 --> 00:05:10,650 Ale o tym w Wideo na tworzenie stron internetowych PHP. 108 00:05:10,650 --> 00:05:12,021 >> Więc co to jest składnia PHP? 109 00:05:12,021 --> 00:05:13,520 To właśnie ten film jest o. 110 00:05:13,520 --> 00:05:14,850 Porozmawiajmy o tym. 111 00:05:14,850 --> 00:05:16,490 >> Tak więc, aby zacząć, zmienne. 112 00:05:16,490 --> 00:05:18,030 Istnieją zmienne PHP. 113 00:05:18,030 --> 00:05:20,067 Istnieją tylko dwa duże Różnice z C 114 00:05:20,067 --> 00:05:21,900 Pierwszym jest to, że nie ma no specyfikacja typu. 115 00:05:21,900 --> 00:05:24,245 Nie mamy powiedzieć int, char, float, wszystkie rzeczy. 116 00:05:24,245 --> 00:05:25,620 Nie musimy tego robić więcej. 117 00:05:25,620 --> 00:05:26,810 PHP jest to nowoczesny język. 118 00:05:26,810 --> 00:05:28,910 To może dowiedzieć się, co masz próbuje zrobić lub zrobić najlepszy 119 00:05:28,910 --> 00:05:30,451 domyślać, co próbujesz zrobić. 120 00:05:30,451 --> 00:05:31,700 Więc to jest bardzo ładne. 121 00:05:31,700 --> 00:05:35,330 >> Inną rzeczą jest to, że wszystkich zmiennej Nazwy muszą zaczynać się znakiem dolara. 122 00:05:35,330 --> 00:05:36,940 To jest po prostu coś się przyzwyczaić. 123 00:05:36,940 --> 00:05:39,496 To trochę dziwne, bo to jest tak, że PHP może zrozumieć 124 00:05:39,496 --> 00:05:40,870 co jest zmienną, a co nie. 125 00:05:40,870 --> 00:05:43,340 Więc każda nazwa zmiennej zaczyna się od znaku dolara. 126 00:05:43,340 --> 00:05:46,884 Więc w C możemy coś powiedzieć tak, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Nie mamy już tego zrobić w PHP. 128 00:05:48,550 --> 00:05:52,540 Możemy tylko powiedzieć, $ x = 54. 129 00:05:52,540 --> 00:05:55,920 I można powiedzieć, na przykład, w języku C, gdybyśmy funt obejmowały .h CS50 130 00:05:55,920 --> 00:06:00,314 nagłówek pliku, można powiedzieć, Zwrot ciąg = "To jest CS50." 131 00:06:00,314 --> 00:06:01,980 Nie musimy to zrobić w PHP, choć. 132 00:06:01,980 --> 00:06:04,865 Możemy tylko powiedzieć, $ frazę = "To jest CS50." 133 00:06:04,865 --> 00:06:08,760 A w rzeczywistości, łańcuch jest teraz wbudowany typ danych w PHP, 134 00:06:08,760 --> 00:06:10,950 czy raczej PHP rozumie co ciąg jest. 135 00:06:10,950 --> 00:06:15,612 Jest to niezależne od tablicy znaków, jak to jest w C 136 00:06:15,612 --> 00:06:17,570 Wszystkie ulubione Instrukcje warunkowe od C 137 00:06:17,570 --> 00:06:19,520 są nadal dostępne do użycia. 138 00:06:19,520 --> 00:06:21,140 Tak więc nie jest duży przejście tam. 139 00:06:21,140 --> 00:06:23,400 Możemy say-- możemy mieć if takich jak ten. 140 00:06:23,400 --> 00:06:28,210 jeśli $ y 43, lub $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Więc to jest bardzo proste. 142 00:06:29,690 --> 00:06:31,980 Możemy mieć wtedy i jeszcze. 143 00:06:31,980 --> 00:06:34,210 Możemy mieć wtedy i else if. 144 00:06:34,210 --> 00:06:36,430 >> I zauważyć coś bardzo ładne tutaj, a to 145 00:06:36,430 --> 00:06:39,620 jest jakby jednym z tych, Zalety PHP kontra C, uprzedzenia 146 00:06:39,620 --> 00:06:41,510 jaką funkcję nie jesteśmy tutaj używając? 147 00:06:41,510 --> 00:06:47,737 Używamy == do porównania zmienna, $ name, na łańcuch. 148 00:06:47,737 --> 00:06:49,070 Nie mogliśmy tego zrobić w C, prawda? 149 00:06:49,070 --> 00:06:53,200 Musieliśmy korzystać z funkcji o nazwie StrComp lub StrEndComp lub jakikolwiek 150 00:06:53,200 --> 00:06:54,840 jej pokrewnych kuzynów. 151 00:06:54,840 --> 00:06:56,980 >> I tak już widzimy te zalety. 152 00:06:56,980 --> 00:07:00,930 Nie musimy coś zrobić jak głupie, a może nieintuicyjne 153 00:07:00,930 --> 00:07:03,540 jak wywołać funkcję o nazwie StrComp jeśli po prostu chcesz przetestować 154 00:07:03,540 --> 00:07:05,237 czy wartość jest równa ciąg. 155 00:07:05,237 --> 00:07:07,820 Może po prostu użyć równa równych, jak mogłem zrobić nic innego. 156 00:07:07,820 --> 00:07:09,560 Więc jest zaletą. 157 00:07:09,560 --> 00:07:13,350 >> Czasami, przy okazji, to polubisz zobacz innego, jeśli jako jedno słowo, elseif. 158 00:07:13,350 --> 00:07:14,910 I to jest OK w PHP, jak również. 159 00:07:14,910 --> 00:07:17,020 Więc czasami można zobaczyć, że. 160 00:07:17,020 --> 00:07:17,790 To nie jest literówka. 161 00:07:17,790 --> 00:07:21,830 PHP rzeczywiście rozumie elseif. 162 00:07:21,830 --> 00:07:23,980 Nie wiem dlaczego zdecydowała się na wdrożenie, że 163 00:07:23,980 --> 00:07:28,220 ale jak widzieliśmy wiele razy całej naszej filmy do tej pory, 164 00:07:28,220 --> 00:07:30,460 my programiści uwielbiają, jeśli szybko możemy robić rzeczy, 165 00:07:30,460 --> 00:07:33,660 więc pozbycie się tej przestrzeni widocznie to duża zaleta. 166 00:07:33,660 --> 00:07:34,800 >> A więc to, czy i elseif. 167 00:07:34,800 --> 00:07:37,540 Mamy także operator trójargumentowy, wycofanie znak zapytania jelita grubego, 168 00:07:37,540 --> 00:07:43,262 na bardzo krótki formularz jeśli inny lub warunkowe rozgałęzienia. 169 00:07:43,262 --> 00:07:45,470 I zdaje się, w tym, co próbujemy zrobić tutaj 170 00:07:45,470 --> 00:07:49,720 jest przypisanie zmiennej $ list albo prawdziwe, albo fałszywe, 171 00:07:49,720 --> 00:07:54,110 w zależności od tego, czy $ var jest znakiem alfabetu. 172 00:07:54,110 --> 00:07:57,320 Więc to jest bardzo podobne do isalpha że jesteśmy zaznajomieni z od C 173 00:07:57,320 --> 00:07:59,010 Jest to swego rodzaju odpowiednik w PHP. 174 00:07:59,010 --> 00:08:01,550 Funkcja ta jest wyraźnie nazywa ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 ale to jak to robimy w PHP. 176 00:08:03,450 --> 00:08:08,560 Więc to wszystko będzie się, jeśli $ var jest list, $ list jest prawdziwy. 177 00:08:08,560 --> 00:08:13,820 Jeśli $ var nie jest literą, $ list jest fałszywy. 178 00:08:13,820 --> 00:08:15,820 >> Mamy również sprawozdania przełącznika nadal. 179 00:08:15,820 --> 00:08:17,870 Pamiętamy te z C, jak również. 180 00:08:17,870 --> 00:08:22,480 Na samej górze tam, to jak to robimy coś get int lub uzyskać ciąg. 181 00:08:22,480 --> 00:08:23,845 Więc PHP, że zbudowany w. 182 00:08:23,845 --> 00:08:25,470 Nie potrzebujemy już bibliotekę CS50. 183 00:08:25,470 --> 00:08:27,237 Możemy po prostu korzystać z readline funkcji. 184 00:08:27,237 --> 00:08:29,820 Co to będzie zrobić, to wydrukować się komunikat: "Twój stan, 185 00:08:29,820 --> 00:08:33,820 proszę ", a następnie miga wiersz czeka na użytkownika do wejścia 186 00:08:33,820 --> 00:08:34,739 trochę informacji. 187 00:08:34,739 --> 00:08:36,530 Teraz zauważyć, co jeszcze możemy to zrobić za pomocą przełącznika. 188 00:08:36,530 --> 00:08:39,105 Jeśli już ją wcześniej, może pamiętacie, że przełącznik 189 00:08:39,105 --> 00:08:44,960 jest ograniczona prawie do liczb całkowitych i znaków, ale teraz możemy używać łańcuchów. 190 00:08:44,960 --> 00:08:50,190 A w rzeczywistości, instrukcja switch w PHP jest trochę bardziej elastyczny 191 00:08:50,190 --> 00:08:54,880 niż jego kuzyn z C 192 00:08:54,880 --> 00:08:55,380 Pętle. 193 00:08:55,380 --> 00:08:58,130 Podobnie jak warunkowych, wszystkie Twoje stare przeboje są nadal. 194 00:08:58,130 --> 00:09:00,740 Mamy while które liczą od 1 do 100 w tym przypadku. 195 00:09:00,740 --> 00:09:03,940 Mamy robić podczas pętli że liczy się od 1 do 100, 196 00:09:03,940 --> 00:09:06,200 a my mamy dla pętli że liczy się od 1 do 100. 197 00:09:06,200 --> 00:09:07,220 Więc nie ma wielki skok tam. 198 00:09:07,220 --> 00:09:09,360 Składnia jest całkiem bardzo dokładnie takie same 199 00:09:09,360 --> 00:09:11,760 chyba teraz używamy Zmienna znak dolara zamiast 200 00:09:11,760 --> 00:09:17,260 deklarowania zmiennych Integer lub coś podobnego do naszych liczników. 201 00:09:17,260 --> 00:09:20,090 >> Oto, gdzie robi się Dużo lepiej niż C, choć. 202 00:09:20,090 --> 00:09:21,020 Tablice. 203 00:09:21,020 --> 00:09:23,020 Więc przypominam sobie, kiedy byliśmy mówić o C, w celu 204 00:09:23,020 --> 00:09:25,560 dla nas, aby rozwijać się i kurczyć zestawy informacji, 205 00:09:25,560 --> 00:09:28,310 musieliśmy uporządkować niewypłacalności do tej idei połączonej listy, 206 00:09:28,310 --> 00:09:30,780 ponieważ tablice C zostały ustalone rozmiary. 207 00:09:30,780 --> 00:09:31,800 Nie mogliśmy ich kurczyć. 208 00:09:31,800 --> 00:09:32,930 Nie mogliśmy je rozwijać. 209 00:09:32,930 --> 00:09:36,074 Musieliśmy realokacji pamięci i robić wszystko to szaleństwo 210 00:09:36,074 --> 00:09:38,490 lub użyj listy, które związane zajmują nieco więcej miejsca. 211 00:09:38,490 --> 00:09:41,590 Ale w PHP, tablice są Nie ustalona w wielkości więcej. 212 00:09:41,590 --> 00:09:43,240 Mogą rosnąć i może się skurczyć. 213 00:09:43,240 --> 00:09:46,660 Więc jeszcze raz, te 20 lat, które istniały między pierwszym wydaniu C 214 00:09:46,660 --> 00:09:49,440 i pierwsza wersja PHP, zdecydowaliśmy, że wiesz, 215 00:09:49,440 --> 00:09:51,670 byłoby naprawdę świetnie czy możemy to zrobić. 216 00:09:51,670 --> 00:09:54,100 I tak realizowane tego. 217 00:09:54,100 --> 00:09:58,040 >> Więc tablice PHP nie są ustalone wielkości, a ponieważ PHP naprawdę nie ma 218 00:09:58,040 --> 00:10:03,090 mają programista przodem Pojęcia typów, 219 00:10:03,090 --> 00:10:05,110 możemy mieszać typów danych w naszych tablicach, też. 220 00:10:05,110 --> 00:10:08,100 Tak więc nie trzeba nawet używać wszystkich całkowite lub wszystkie punkty szyby, 221 00:10:08,100 --> 00:10:12,826 możemy mieć mieszankę wszystkich różne rodzaje w jednej tablicy. 222 00:10:12,826 --> 00:10:14,700 Deklarowanie tablica jest całkiem proste. 223 00:10:14,700 --> 00:10:16,116 To tak, jak każdej innej zmiennej. 224 00:10:16,116 --> 00:10:20,020 $ Nums = array (1, 2, 3, 4), tablica jest funkcją 225 00:10:20,020 --> 00:10:22,760 , który jest wbudowany w PHP, które stworzy tablicę dla Ciebie. 226 00:10:22,760 --> 00:10:28,315 To tworzy tablicę czterech wartości, Liczby w tym przypadku o nazwie $ Nums. 227 00:10:28,315 --> 00:10:29,940 I jest więcej niż jeden sposób, aby to zrobić. 228 00:10:29,940 --> 00:10:32,420 I będziemy zobaczyć wiele w PHP. 229 00:10:32,420 --> 00:10:36,380 PHP został opracowany przez wiele różnych osób i rośnie i rośnie i rośnie. 230 00:10:36,380 --> 00:10:40,050 Jest tam zwykle nie tylko dwa lub trzy sposoby, aby coś zrobić w PHP, 231 00:10:40,050 --> 00:10:42,170 nie ma jak zwykle 10 lub 20. 232 00:10:42,170 --> 00:10:45,300 Tu jest po prostu inny wspólny sposób zadeklarować tablicę. 233 00:10:45,300 --> 00:10:48,310 $ Nums = nawias kwadratowy 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Jest to więc rodzaj podobny do kąta z C. br-- kręcone notacji nawiasów, a. $ - 235 00:10:53,170 --> 00:10:58,525 lub byłoby int Nums kwadratowych wsporniki równa nawias klamrowy 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 W PHP jest to $ Nums = square nawiasy 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Ale oba te przykłady tutaj dać mnie tablica z czterech w tym przypadku liczb całkowitych. 238 00:11:08,920 --> 00:11:10,920 >> Co zrobić, jeśli chcę dołączać coś teraz? 239 00:11:10,920 --> 00:11:14,760 Cóż mogę tylko powiedzieć, $ Nums 4, które znowu, my wciąż licząc od 0 tutaj 240 00:11:14,760 --> 00:11:17,800 w PHP, byłby piąty Element tablicy. 241 00:11:17,800 --> 00:11:18,990 Mogę tylko powiedzieć, że. 242 00:11:18,990 --> 00:11:22,860 Nie będę cierpieć SEG przyczepić, bo moja tablica jest po prostu 243 00:11:22,860 --> 00:11:24,337 będzie się rozwijać, aby pomieścić, że. 244 00:11:24,337 --> 00:11:25,420 To bardzo miłe, prawda? 245 00:11:25,420 --> 00:11:28,400 A w rzeczywistości, nawet nie trzeba określić, gdzie chcę, aby ją umieścić. 246 00:11:28,400 --> 00:11:31,220 Mogę tylko powiedzieć, że to i tak dołączać go w prawo na końcu, 247 00:11:31,220 --> 00:11:34,099 lub nawet tylko mogłem powiedzieć, $ 20 lub Nums 1000. 248 00:11:34,099 --> 00:11:35,140 To naprawdę nie ma znaczenia. 249 00:11:35,140 --> 00:11:38,330 To wciąż tylko będzie dołączać go w prawo na końcu. 250 00:11:38,330 --> 00:11:41,490 >> Więc mogę rozwijać, a as-- jesteśmy nie będzie obejmować go tutaj, 251 00:11:41,490 --> 00:11:45,360 ale mogę splatać lub taśmy elementy spośród tablicy, jak również, 252 00:11:45,360 --> 00:11:50,064 a tablica będzie się kurczyć, aby pomieścić że teraz brakuje lub pusta przestrzeń. 253 00:11:50,064 --> 00:11:52,230 Jest jeszcze jeden sposób, aby dołączać coś na tablicy, 254 00:11:52,230 --> 00:11:54,330 która jest funkcją o nazwie array_push. 255 00:11:54,330 --> 00:11:57,860 Więc jeszcze raz, tylko ten pomysł jest w stanie robić rzeczy, na wiele różnych sposobów. 256 00:11:57,860 --> 00:12:01,950 Tak więc widzieliśmy trzy różne sposoby teraz tack inny element na tablicy. 257 00:12:01,950 --> 00:12:06,900 Więc to dodaje kolejny element na koniec tablicy $ Nums. 258 00:12:06,900 --> 00:12:08,340 I możemy mieszać nasze typy danych. 259 00:12:08,340 --> 00:12:13,110 Więc mogę mieć tablicę nie 1, 2, 3, 4, a 1, to prawda, 3, 4, 260 00:12:13,110 --> 00:12:16,420 gdzie prawda jest logiczna, a następnie jeśli chcę dołączać innego elementu 261 00:12:16,420 --> 00:12:20,860 tej tablicy, być ciągiem znaków, ciąg "pięć", może to zrobić. 262 00:12:20,860 --> 00:12:26,110 A teraz moja tablica będzie za 1, to prawda, 3, 4, pięć. 263 00:12:26,110 --> 00:12:28,640 Słowo pięć, a nie całkowita 5. 264 00:12:28,640 --> 00:12:31,270 Tak dużo elastyczności istnieje. 265 00:12:31,270 --> 00:12:33,290 >> Elastyczność dostaje jeszcze lepiej, choć, 266 00:12:33,290 --> 00:12:37,530 ponieważ PHP ma wsparcia dla czegoś zwana tablicą asocjacyjną. 267 00:12:37,530 --> 00:12:40,660 A my jakby niewyraźnie mówił o tablice asocjacyjne w C 268 00:12:40,660 --> 00:12:44,740 W związku z tabel mieszania, ponieważ Tablice asocjacyjne to, co naprawdę wszystko 269 00:12:44,740 --> 00:12:48,950 o czynią klucz mapowania parę wartości. 270 00:12:48,950 --> 00:12:53,410 I w tym przypadku, jeśli keys-- jesteśmy zaznajomieni z tablicami z C, 271 00:12:53,410 --> 00:12:55,440 klawisze są numery indeksu. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 A wartości są tym, co widzimy, że Tablica 0, tablica 1, matryca 2 i tak dalej. 274 00:13:03,070 --> 00:13:06,310 Więc klawisze są indeksy, i wartości 275 00:13:06,310 --> 00:13:10,060 co jest w tym miejscu tablicy, określonej przez ten indeks. 276 00:13:10,060 --> 00:13:15,130 >> Ale w PHP, nie musimy tego robić Pojęcie tablicy 0, tablica 1, tablica 2 277 00:13:15,130 --> 00:13:15,830 więcej. 278 00:13:15,830 --> 00:13:21,025 Możemy teraz wykorzystać rzeczywiste słowa do mapowania klawiszy na wartości. 279 00:13:21,025 --> 00:13:22,650 I tak mógłbym powiedzieć coś takiego. 280 00:13:22,650 --> 00:13:26,710 Można utworzyć tablicę używając nawias kwadratowy składni w następujący sposób. 281 00:13:26,710 --> 00:13:30,685 $ pizze = Uchwyt kwadratowy "ser", a następnie 282 00:13:30,685 --> 00:13:37,210 ten rodzaj notacji strzałki podwójne, 8.99 ", pepperoni," strzałka 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 i tak dalej. 284 00:13:37,880 --> 00:13:39,060 A więc to, co się tutaj dzieje? 285 00:13:39,060 --> 00:13:41,040 Co ja właściwie robię? 286 00:13:41,040 --> 00:13:43,990 Tworzę kluczowych mapowania parę wartości. 287 00:13:43,990 --> 00:13:49,060 Więc zamiast mówić, na przykład, kawałki pizzy 0, 1, 2, pizze 288 00:13:49,060 --> 00:13:52,350 Teraz mogę powiedzieć, pizze ser, pizza pepperoni, 289 00:13:52,350 --> 00:13:55,120 i odnoszą się do wartości z nimi. 290 00:13:55,120 --> 00:13:56,970 >> Tak oto nasze klucze w kolorze zielonym. 291 00:13:56,970 --> 00:13:59,870 Ser, pepperoni, warzyw, bawole kurczaka. 292 00:13:59,870 --> 00:14:04,200 Oto strzałka, która sprawia, to mapowanie para wartości. 293 00:14:04,200 --> 00:14:07,420 I to tutaj są wartości w tym miejscu tablicy. 294 00:14:07,420 --> 00:14:10,330 Więc to tak, jakby powiedzieć tablica 0 równa się 8,99. 295 00:14:10,330 --> 00:14:11,720 Kluczem jest 0. 296 00:14:11,720 --> 00:14:13,600 Wartość wynosi 8.99. 297 00:14:13,600 --> 00:14:19,370 Teraz mogę powiedzieć, ser tablicy lub w tym Sprawa pizze ser, ser jest kluczem, 298 00:14:19,370 --> 00:14:23,340 i co znajdę na pizze ser jest 8.99. 299 00:14:23,340 --> 00:14:25,540 To wartość, że tam znajdę. 300 00:14:25,540 --> 00:14:28,124 >> Więc mogę mówić takich rzeczy. $ ser do pizzy = 7,99. 301 00:14:28,124 --> 00:14:29,040 Powiedz, mam do sprzedaży. 302 00:14:29,040 --> 00:14:31,750 Chcę dis-- chcę spadać cena pizzy serem. 303 00:14:31,750 --> 00:14:35,620 Czy mogę skorzystać z warzyw pizzy jako część warunkiem 304 00:14:35,620 --> 00:14:39,990 czy mogę dodać nowy element do mojego tablica, tak jak mogłem zrobić wcześniej. 305 00:14:39,990 --> 00:14:44,680 Mogę dodać nowy element do tego asocjacyjna z kluczem "boczek" 306 00:14:44,680 --> 00:14:49,250 a wartość 13,49. 307 00:14:49,250 --> 00:14:53,820 >> Ale tego rodzaju wprowadza problem, jeśli myślisz o tym za chwilę. 308 00:14:53,820 --> 00:14:55,721 Jak byśmy iterację tej tablicy? 309 00:14:55,721 --> 00:14:56,220 Dobrze? 310 00:14:56,220 --> 00:14:59,820 W C, to po prostu mieć pętli, na ogół, że 311 00:14:59,820 --> 00:15:03,650 Byłoby to od 0 do rozmiar tablicy minus 1. 312 00:15:03,650 --> 00:15:08,060 Tablica ma n elementów w co, ważne indeksy są 0 do n minus 1. 313 00:15:08,060 --> 00:15:11,530 Tak więc możemy użyć pętli for do krok po kroku każdego elementu. 314 00:15:11,530 --> 00:15:13,530 >> Ale to naprawdę nie jest sprawa już, prawda? 315 00:15:13,530 --> 00:15:17,360 Teraz, gdy mamy parę kluczy wartości mapowania, gdzie klawisze są słowa, 316 00:15:17,360 --> 00:15:19,970 w jaki sposób iteracyjne nad wszystkimi słowami? 317 00:15:19,970 --> 00:15:22,420 Cóż, na szczęście, PHP sposób, aby poradzić sobie z tym zbyt, 318 00:15:22,420 --> 00:15:24,580 i tak będziemy wrócić do pętli na sekundę 319 00:15:24,580 --> 00:15:30,780 wprowadzić czwarty rodzaj pętli, która istnieje w PHP o nazwie pętli foreach. 320 00:15:30,780 --> 00:15:34,430 A co robi pętlę foreach jest to w zasadzie ten sam pomysł. 321 00:15:34,430 --> 00:15:36,060 Można go używać do każdego rodzaju tablicy. 322 00:15:36,060 --> 00:15:38,100 Ale to jest w zasadzie sam pomysł, jak dla pętli, 323 00:15:38,100 --> 00:15:40,750 wyjątkiem zamiast używania Liczby indeksu, po prostu 324 00:15:40,750 --> 00:15:45,830 mają tę dziwną składnię gdzie zadzwonić każdy pojedynczy element 325 00:15:45,830 --> 00:15:47,550 nazwa dla celów tej pętli. 326 00:15:47,550 --> 00:15:49,258 >> Tak więc w tym przypadku foreach ($ array jako klucz $). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Zasadniczo, jako że komentarz notatek, wewnątrz tej pętli foreach, 329 00:15:56,450 --> 00:16:00,466 to będzie przejść przez każdy element tablicy $, które typowo 330 00:16:00,466 --> 00:16:03,340 będzie tablica asocjacyjna ale naprawdę może być każdy rodzaj tablicy 331 00:16:03,340 --> 00:16:05,419 że chcesz w PHP. 332 00:16:05,419 --> 00:16:07,210 I za każdym razem, że w pętli for to polubisz 333 00:16:07,210 --> 00:16:13,780 powiedział $ array nawiasy kwadratowe $ i, można tylko powiedzieć, $ key. 334 00:16:13,780 --> 00:16:22,340 Tak, że kluczem $ staje się aliasem każdego Indeks swojej tablicy asocjacyjnej PHP, 335 00:16:22,340 --> 00:16:23,710 i tak można go używać tak. 336 00:16:23,710 --> 00:16:25,897 >> Tak na przykład, mamy teraz dostaliśmy naszą tablicę pizze. 337 00:16:25,897 --> 00:16:27,730 Mam trochę schowany go w kącie tam 338 00:16:27,730 --> 00:16:31,080 więc można używać go zrobić szybki przykład. 339 00:16:31,080 --> 00:16:36,420 Jeśli powiem, foreach ($ pizze jak $ pizza), dobrze, co się dzieje? 340 00:16:36,420 --> 00:16:42,400 Cóż, mam zamiar iterację każdego Pojedynczy element tablicy $ pizzy, 341 00:16:42,400 --> 00:16:46,670 i dzięki temu, mam zamiar zadzwonić każdy element, kiedy jestem w środku 342 00:16:46,670 --> 00:16:49,400 z ciała, które dla pętli $ pizzę. 343 00:16:49,400 --> 00:16:52,440 >> Więc to jest coś w rodzaju stand-in, przypomnijmy, że $ pizzy 344 00:16:52,440 --> 00:16:59,140 jest w gotowości za powiedzenie $ pizze nawiasy kwadratowe $ i 345 00:16:59,140 --> 00:17:03,370 jakbyśmy za pomocą pętli for, gdzie może pójść z $ i = 0, aby w tym przypadku, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Jeśli nie mieliśmy pary wartość klucza o, będzie to elementem 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 i chcemy użyć pętli for, aby przejść $ pizze 0, $ 1, $ pizze 2, pizze 349 00:17:16,390 --> 00:17:17,750 $ pizze 3. 350 00:17:17,750 --> 00:17:23,130 Więc teraz tylko $ pizzy jest zastąpienie dla tego indywidualnego klucza. 351 00:17:23,130 --> 00:17:25,630 >> Więc co to jest zamiar wydrukować? 352 00:17:25,630 --> 00:17:29,030 Jestem drukowania $ pizzę. 353 00:17:29,030 --> 00:17:35,270 Co ja mam znaleźć at-- jeśli wydrukować $ pizze, $ i? 354 00:17:35,270 --> 00:17:35,770 Dobrze? 355 00:17:35,770 --> 00:17:38,680 Jeśli mam do wydrukowania -ty element pizzy, 356 00:17:38,680 --> 00:17:40,070 co mam zamiar drukować? 357 00:17:40,070 --> 00:17:42,580 Idę do wydrukowania Wartości w tym miejscu, prawda? 358 00:17:42,580 --> 00:17:45,370 Podobnie jak w przypadku robimy W tym kontekście C 359 00:17:45,370 --> 00:17:49,786 zwykle nie skorzystać z naszego iterator zmienna int i = 0, i jest mniejsza niż 3, 360 00:17:49,786 --> 00:17:52,900 i ++, wydrukować 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Jesteśmy drukowanie tablicy 0, tablica 1, tablica 2, tablica 3. 362 00:17:57,500 --> 00:17:59,580 A więc to, co wypisuje to jest. 363 00:17:59,580 --> 00:18:01,150 Jest to lista cen. 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 >> Teraz krótka notatka tutaj. 366 00:18:06,900 --> 00:18:10,900 Pętli foreach niekoniecznie wydrukować rzeczy w porządku. 367 00:18:10,900 --> 00:18:12,770 To nie jest gwarantowana. 368 00:18:12,770 --> 00:18:13,550 Zwykle. 369 00:18:13,550 --> 00:18:17,667 To zwykle na podstawie kolejności w elementy, które są dodawane do tablicy 370 00:18:17,667 --> 00:18:18,750 więc po prostu o tym pamiętać. 371 00:18:18,750 --> 00:18:20,830 Może nie jest to w porządku. 372 00:18:20,830 --> 00:18:23,930 Ale pętla foreach będzie iteracji poprzek każdego elementu 373 00:18:23,930 --> 00:18:25,060 tablicy mowa. 374 00:18:25,060 --> 00:18:27,980 W tym przypadku znowu że tablica jest $ pizze. 375 00:18:27,980 --> 00:18:32,920 >> Mogę zmienić składnię, choć, jeśli Chcę zarówno klucz i wartość. 376 00:18:32,920 --> 00:18:37,179 Zamiast mówić $ pizze jako $ pizzy, mogę to powiedzieć. 377 00:18:37,179 --> 00:18:39,470 A jeśli spojrzeć na to, co mam podświetlone na zielono tutaj, 378 00:18:39,470 --> 00:18:42,130 wygląda na to kluczowy mapowania parę wartości. 379 00:18:42,130 --> 00:18:45,980 I tak, jeśli you--, nawet jeśli nie są do końca pewien, co zamierza zrobić, 380 00:18:45,980 --> 00:18:49,300 można się domyślić że $ polewa będzie 381 00:18:49,300 --> 00:18:53,800 być kluczem w tej sprawie i $ cena będzie wartość. 382 00:18:53,800 --> 00:18:59,200 Więc jestem zastępując teraz każdy element od $ pizze jak parę kluczowych wartości, 383 00:18:59,200 --> 00:19:03,900 a teraz mogę odnieść się do klucza i wartość, która może się przydać, 384 00:19:03,900 --> 00:19:05,590 Na przykład, w następujący sposób. 385 00:19:05,590 --> 00:19:10,170 >> "Cały" - to dużo Druk dzieje here-- "całości" 386 00:19:10,170 --> 00:19:17,300 byczy "pizza kosztuje $" cenę, a następnie I wydrukować Kropka i ukośnik n. 387 00:19:17,300 --> 00:19:23,420 Więc teraz, uwaga znów mam dostęp do klucz, $ polewa, a wartość, $ cena. 388 00:19:23,420 --> 00:19:26,647 Więc można się domyślić, co to będzie drukować? 389 00:19:26,647 --> 00:19:29,480 Istnieje wiele instrukcji print, ale jest tylko jeden odwrotny ukośnik n, 390 00:19:29,480 --> 00:19:33,410 więc to będzie coś wydrukować na entire-- na jednej linii kodu. 391 00:19:33,410 --> 00:19:36,965 >> Jeśli uda mi się odnieść do klucza i wartość, to teraz, 392 00:19:36,965 --> 00:19:39,090 a nie tylko jest w stanie wydrukować cen, 393 00:19:39,090 --> 00:19:41,330 Mogę wydrukować coś takiego. 394 00:19:41,330 --> 00:19:43,780 "Cały pizza z serem kosztuje $ 8.99." 395 00:19:43,780 --> 00:19:47,150 A teraz używam wszystkich keys-- ser, pepperoni, warzyw, 396 00:19:47,150 --> 00:19:49,640 Bawół chicken-- i wartości. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 Tak to jest po prostu inny sposób 398 00:19:53,980 --> 00:19:57,840 zrobić pętli foreach, że zamiast tylko daje dostęp do wartości, 399 00:19:57,840 --> 00:20:02,950 to po prostu daje you-- to daje dostęp do kluczy i wartości. 400 00:20:02,950 --> 00:20:04,411 >> Więc drukowanie informacji. 401 00:20:04,411 --> 00:20:07,410 Już to zrobiłem to kilka różne sposoby, można zauważyć. 402 00:20:07,410 --> 00:20:11,080 Dwie funkcje mamy przede wszystkim postrzegane są druku i echo. 403 00:20:11,080 --> 00:20:14,380 I przez prawie wszystkie zamiary i cele, są dokładnie takie same. 404 00:20:14,380 --> 00:20:17,130 They're-- istnieje bardzo subtelne Różnica to nawet nie warto 405 00:20:17,130 --> 00:20:21,130 dostania się, ale w zasadzie wszędzie można użyć print prawdopodobnie można używać 406 00:20:21,130 --> 00:20:22,370 echo, jak również. 407 00:20:22,370 --> 00:20:23,610 >> I to nie jest tylko dwóch. 408 00:20:23,610 --> 00:20:26,970 PHP ma wiele różnych sposoby drukowania rzeczy, 409 00:20:26,970 --> 00:20:30,520 i ma też sposoby integracji zmienne w środku łańcucha. 410 00:20:30,520 --> 00:20:32,860 Więc pamiętam z C, prawda Pamiętasz, co funkcja 411 00:20:32,860 --> 00:20:37,580 możemy użyć do zastąpienia zmiennych do rzeczy, które chcesz wydrukować? 412 00:20:37,580 --> 00:20:40,160 Prawdopodobnie to wykorzystać funkcjonować całkiem sporo. 413 00:20:40,160 --> 00:20:42,290 printf, prawda? 414 00:20:42,290 --> 00:20:45,290 Więc to jest to, co mieliśmy przed wewnątrz w kontekście naszej pętli foreach. 415 00:20:45,290 --> 00:20:48,000 Mieliśmy tych pięciu Jednostkowe sprawozdanie druku, 416 00:20:48,000 --> 00:20:50,330 bo to był jedyny tak naprawdę wiedział w chwili 417 00:20:50,330 --> 00:20:52,450 jak wydrukować wiadomości. 418 00:20:52,450 --> 00:20:59,560 Nie wiedziałem, jak zintegrować Zmienna $ polewa do mojego kodu PHP. 419 00:20:59,560 --> 00:21:03,700 Dobrze, jeśli po prostu wziąć i zgadnij, printf, to faktycznie będzie pracował. 420 00:21:03,700 --> 00:21:08,980 printf jest funkcją, że można używać w PHP, tak jak można go używać w C 421 00:21:08,980 --> 00:21:11,880 >> A więc coś takiego, printf, ponownie, jesteśmy zaznajomieni z tym. 422 00:21:11,880 --> 00:21:16,420 Pierwszy% s otrzymuje o wartości $ polewa. 423 00:21:16,420 --> 00:21:19,700 Drugi% s otrzymuje z wartością $ cenie. 424 00:21:19,700 --> 00:21:22,630 A więc jestem interpellating, który jest tylko fantazyjny sposób 425 00:21:22,630 --> 00:21:25,400 powiedzenia Jestem przyklejania zmienne do tej lokalizacji. 426 00:21:25,400 --> 00:21:31,000 Więc jestem podłączając $ polewa gdzie % s jest czerwony i $ cena gdzie niebieskie% s 427 00:21:31,000 --> 00:21:36,060 jest, i wtedy pojawia się komunikat, "Cały pizza z serem kosztuje $ 8.99." 428 00:21:36,060 --> 00:21:37,750 >> Nie tylko w ten sposób mogę to zrobić, choć. 429 00:21:37,750 --> 00:21:39,760 Może nie chcę korzystać z tej metody. 430 00:21:39,760 --> 00:21:44,890 To jest rzeczywiście, co jest najczęściej zwana zmienna interpelacji. 431 00:21:44,890 --> 00:21:45,690 Można użyć echo. 432 00:21:45,690 --> 00:21:47,737 Przydałby mi się drukiem też, jak zobaczymy. 433 00:21:47,737 --> 00:21:48,820 Ale co tu się dzieje? 434 00:21:48,820 --> 00:21:51,520 >> Przede wszystkim muszę uciec znak dolara. 435 00:21:51,520 --> 00:21:55,140 Bo pamiętam, kiedy byliśmy w rzeczywistości drukowanie ceny pizzy, 436 00:21:55,140 --> 00:21:59,370 I faktycznie formatowania ich jako Dane pieniężne ze znakiem dolara. 437 00:21:59,370 --> 00:22:05,635 Ale używamy znaków dolara także do reprezentowania nazw zmiennych w PHP, 438 00:22:05,635 --> 00:22:08,010 w szczególności, gdy jestem Korzystając z tej metody z kręconymi 439 00:22:08,010 --> 00:22:10,040 Zmienna klamra Metoda interpelacja, muszę 440 00:22:10,040 --> 00:22:13,490 uciec mój znak dolara, więc nie robi myślę Mówię o zmiennej. 441 00:22:13,490 --> 00:22:16,920 To będzie naprawdę, dosłownie wydrukować znak dolara. 442 00:22:16,920 --> 00:22:19,530 >> Tak jakby analogizować go to, co widzisz na koniec. 443 00:22:19,530 --> 00:22:22,832 Faktycznie nie drukuj odwrotny ukośnik n, prawda? 444 00:22:22,832 --> 00:22:24,290 To wypisuje znak nowego wiersza. 445 00:22:24,290 --> 00:22:26,750 To jest-- nie będzie drukuj backslash znak dolara, 446 00:22:26,750 --> 00:22:30,130 to będzie drukować tylko znak znak dolara. 447 00:22:30,130 --> 00:22:30,640 Sam pomysł. 448 00:22:30,640 --> 00:22:32,760 Sekwencje, co te rzeczy są nazywane. 449 00:22:32,760 --> 00:22:37,080 >> Ale zauważ, że nie robię każdy rodzaj substytucji% s, 450 00:22:37,080 --> 00:22:40,050 Jestem po prostu dosłownie podłączając W tych zmiennych. 451 00:22:40,050 --> 00:22:45,110 I tak w this-- co by się stało tutaj jest to, że wartość $ topping-- ponownie 452 00:22:45,110 --> 00:22:48,390 tylko utrzymanie tego, co byliśmy mówisz tak far-- sera dostanie 453 00:22:48,390 --> 00:22:49,720 podłączony tam. 454 00:22:49,720 --> 00:22:54,780 A $ cena byłaby cokolwiek wartość jest na pizze, nawiasy kwadratowe, ser, 455 00:22:54,780 --> 00:22:56,270 który był 8,99. 456 00:22:56,270 --> 00:23:01,860 I tak to również wydrukować "Cały pizza z serem kosztuje $ 8.99." 457 00:23:01,860 --> 00:23:05,160 I tak jak powiedziałem, można używać wydrukować tutaj zamiast echo, 458 00:23:05,160 --> 00:23:08,040 a funkcjonalność jest prawie dokładnie to samo. 459 00:23:08,040 --> 00:23:09,660 To wydrukować to samo. 460 00:23:09,660 --> 00:23:12,680 >> Jest jeszcze jeden sposób na to, i jest kolejną zaletą 461 00:23:12,680 --> 00:23:14,710 PHP pracy z tekstem. 462 00:23:14,710 --> 00:23:17,130 Możemy zrobić konkatenacji. 463 00:23:17,130 --> 00:23:19,660 Możemy to zrobić w C też przy użyciu funkcji o nazwie strcat, 464 00:23:19,660 --> 00:23:21,180 ale znowu musieliśmy zadzwoń odrębne funkcje. 465 00:23:21,180 --> 00:23:22,640 To był ten cały bałagan zrobić. 466 00:23:22,640 --> 00:23:24,590 Musieliśmy funt-to string.h. 467 00:23:24,590 --> 00:23:25,780 Była to produkcja, prawda? 468 00:23:25,780 --> 00:23:30,070 Ale teraz mogę tylko korzystać z tego dot operatora Łączenie ciągów razem. 469 00:23:30,070 --> 00:23:34,910 >> Więc jestem złączenie "całości" i to bez względu na wartość $ polewa jest, 470 00:23:34,910 --> 00:23:38,860 a potem jeszcze Ciąg "koszty pizzy $" 471 00:23:38,860 --> 00:23:42,340 a następnie łączenie co wartość $ cenie jest, 472 00:23:42,340 --> 00:23:45,670 a następnie na samym końcu jestem sklejaniu na okres backslash n. 473 00:23:45,670 --> 00:23:47,926 I tak to również wydrukować "całości" - znowu, 474 00:23:47,926 --> 00:23:50,550 jeśli mówimy o pierwszym elementem tej pizzy array-- 475 00:23:50,550 --> 00:23:54,710 "Cały pizza z serem kosztuje $ 8.99." 476 00:23:54,710 --> 00:24:01,260 Okres, odwrotny ukośnik n, znowu, z $ i $ polewa cena podstawiający 477 00:24:01,260 --> 00:24:06,580 za to, co mieliśmy podane w naszym foreach Pętla jako kluczowy mapowania parę wartości. 478 00:24:06,580 --> 00:24:08,050 >> PHP może obsługiwać funkcje. 479 00:24:08,050 --> 00:24:11,250 Funkcje były rodzajem integralną C, jak widzieliśmy. 480 00:24:11,250 --> 00:24:14,870 Jak zmienne, nie musimy się określić typ zwracany przez funkcję, 481 00:24:14,870 --> 00:24:16,350 bo to naprawdę nie ma znaczenia. 482 00:24:16,350 --> 00:24:18,660 A my nie określić Typy danych żadnych parametrów, 483 00:24:18,660 --> 00:24:21,410 dlatego, że tak naprawdę nie względu na to, jak widzieliśmy w PHP. 484 00:24:21,410 --> 00:24:24,510 Każda funkcja jest wprowadzana z kluczowych funkcji. 485 00:24:24,510 --> 00:24:27,920 W ten sposób wskazujemy do PHP, które to, co mówimy, jest funkcją. 486 00:24:27,920 --> 00:24:29,720 >> A my nie mamy do czynienia z głównym na wszystkich, 487 00:24:29,720 --> 00:24:33,690 dlatego, tłumacza, PHP tłumacz, pracuje od góry do dołu, 488 00:24:33,690 --> 00:24:34,190 bez względu. 489 00:24:34,190 --> 00:24:35,640 Jeżeli będzie to można zrobić wywołanie funkcji, to będzie 490 00:24:35,640 --> 00:24:37,850 znajdź wywołanie funkcji, nawet jeśli przychodzi później. 491 00:24:37,850 --> 00:24:40,360 Ale to będzie czytać od góry do dolny, więc nie ma potrzeby, aby określić, 492 00:24:40,360 --> 00:24:41,500 oto gdzie zacząć. 493 00:24:41,500 --> 00:24:46,700 Zaczynasz na linii 1 twój PHP i działać stamtąd. 494 00:24:46,700 --> 00:24:49,690 >> Więc tutaj jest jak można utworzyć funkcja nazywa hard_square. 495 00:24:49,690 --> 00:24:54,100 To podobno ma jedną Parametr, który Dzwonię $ x. 496 00:24:54,100 --> 00:24:58,424 Funkcja ta jest skomplikowana prostu ilustrować różne rzeczy. 497 00:24:58,424 --> 00:24:59,590 Mamy jeszcze wartości zwracanych. 498 00:24:59,590 --> 00:25:00,870 Używam pętli for tutaj. 499 00:25:00,870 --> 00:25:04,970 Ale to w zasadzie tylko, co to wynosi zaledwie $ x razy $ x. 500 00:25:04,970 --> 00:25:10,520 Co faktycznie robimy jest po prostu dodawanie x 0 x razy lub $ x $ do zera razy x. 501 00:25:10,520 --> 00:25:15,850 Ale to skutecznie dokładnie same jak pomnożenie $ x razy $ x. 502 00:25:15,850 --> 00:25:18,700 Wciąż mogę zwrócić wartość, w tym przypadku $ rezultacie 503 00:25:18,700 --> 00:25:22,060 i zrobiłem funkcję w PHP. 504 00:25:22,060 --> 00:25:24,160 >> Oto jak można użyć go w kontekście. 505 00:25:24,160 --> 00:25:26,020 Więc może jestem w środku jakiegoś pliku PHP. 506 00:25:26,020 --> 00:25:29,240 Zauważ, że tam niebieski Użyłem moje ograniczniki PHP, 507 00:25:29,240 --> 00:25:31,010 kątownik znak zapytania php. 508 00:25:31,010 --> 00:25:35,180 Pomiędzy tymi są od PHP, że chcę napisać. 509 00:25:35,180 --> 00:25:37,840 Więc jestem podobno zamiar get-- Mam zamiar skłonić użytkownika 510 00:25:37,840 --> 00:25:41,550 dać mi numer, sklep, który zmienne, w tym sklep zmiennej $ x, 511 00:25:41,550 --> 00:25:43,320 co mi dali. 512 00:25:43,320 --> 00:25:48,590 Potem idę do echo hard_square tej wartości, 513 00:25:48,590 --> 00:25:50,370 i najwyraźniej zamierza ma być dodany w nowej linii 514 00:25:50,370 --> 00:25:53,590 jak również, a następnie później będę zdefiniować funkcję hard_square tak 515 00:25:53,590 --> 00:25:55,550 że kiedy robię zadzwonić do hard_square, 516 00:25:55,550 --> 00:25:58,160 nie wie, co mam na myśli. 517 00:25:58,160 --> 00:26:00,705 >> Teraz, mogę również zrobić coś takiego. 518 00:26:00,705 --> 00:26:02,050 To jest nieco inny. 519 00:26:02,050 --> 00:26:04,190 To niemal dokładnie samo, jak to, co widzieliśmy wcześniej, 520 00:26:04,190 --> 00:26:08,400 chyba zamiast mówić tylko $ x tam jako parametr do hard_square, 521 00:26:08,400 --> 00:26:11,730 Mówię $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Jest to więc Przykład programowanie defensywne, 523 00:26:14,330 --> 00:26:17,070 strzeże swoje programy przed złośliwymi użytkownikami. 524 00:26:17,070 --> 00:26:20,020 >> To jeden ze sposobów, aby zrobić kilka błędów sprawdzeniu, że tak naprawdę nie 525 00:26:20,020 --> 00:26:24,670 mają jako opcja w C Moglibyśmy nigdy określić wartość domyślną coś. 526 00:26:24,670 --> 00:26:27,010 Zawsze mieliśmy do sprawdzenia czy, na przykład, 527 00:26:27,010 --> 00:26:30,820 gdy zadzwoniliśmy do getString, było najbardziej właściwe, jeśli natychmiast po 528 00:26:30,820 --> 00:26:33,300 zaznaczone, że sprawdziliśmy czy ciąg 529 00:26:33,300 --> 00:26:35,504 że użytkownik dał nam nie jest równa null, 530 00:26:35,504 --> 00:26:37,920 ponieważ nie chcemy, aby rozpocząć pracy z łańcuchem pustym. 531 00:26:37,920 --> 00:26:39,670 >> Tutaj jest to droga w celu ochrony przed tym. 532 00:26:39,670 --> 00:26:43,480 Jeśli użytkownik nie zapewnia nam coś jakoś, co my teraz zrobimy? 533 00:26:43,480 --> 00:26:46,080 Cóż, po prostu powiedzieć, co oni nie nam, 534 00:26:46,080 --> 00:26:47,705 jesteśmy po prostu zamiar podłączyć 10 zamiast. 535 00:26:47,705 --> 00:26:52,030 Więc jeśli nie da nam wartość, wystarczy użyć 10 domyślnie. I tak oto, 536 00:26:52,030 --> 00:26:53,940 zauważyć, że robię wezwanie do hard_square, 537 00:26:53,940 --> 00:26:55,980 ale nie ma zachęty dla użytkownika, tak? 538 00:26:55,980 --> 00:26:57,540 Mówię tylko, co pusty połączenie. 539 00:26:57,540 --> 00:27:00,860 >> Ale moja funkcja hard_square oczekuje parametru. 540 00:27:00,860 --> 00:27:02,222 Co to jeszcze wydrukować? 541 00:27:02,222 --> 00:27:03,680 To będzie wydrukować 100, prawda? 542 00:27:03,680 --> 00:27:05,720 Ponieważ użytkownik nie daj mi coś. 543 00:27:05,720 --> 00:27:08,970 I tak jestem po prostu założyć, że 10-- 10 jest wartością domyślną. 544 00:27:08,970 --> 00:27:13,760 I tak będzie to wydrukować z 100 w oddzielnym wierszu. 545 00:27:13,760 --> 00:27:16,390 >> Pliki PHP nie muszą być tylko jeden plik. 546 00:27:16,390 --> 00:27:19,480 Można łączyć kilka plików razem, tak jak można w C Sposób 547 00:27:19,480 --> 00:27:24,330 zrobiliśmy to w C był zazwyczaj zrobić #include uzyskać pliki nagłówkowe wciągnięta. 548 00:27:24,330 --> 00:27:26,180 Nie rób tego w PHP. 549 00:27:26,180 --> 00:27:29,110 Mamy coś, co nazywa require_once zrobić. 550 00:27:29,110 --> 00:27:33,360 A jeszcze ta cała rzecz, co to jest __dir__? 551 00:27:33,360 --> 00:27:36,510 To tylko specjalny zmienna, stała lub specjalnego, 552 00:27:36,510 --> 00:27:39,030 Naprawdę, która określa, co aktualny katalog jest. 553 00:27:39,030 --> 00:27:41,320 I tak to będzie wyglądać w bieżącym katalogu 554 00:27:41,320 --> 00:27:44,900 pliku o nazwie cs50.php W tym przykładzie tutaj 555 00:27:44,900 --> 00:27:50,490 i to będzie trzymać ten plik na początku programu PHP, 556 00:27:50,490 --> 00:27:56,980 przy założeniu, że można umieścić wymagają po linii na górze pliku PHP. 557 00:27:56,980 --> 00:28:01,474 >> Więc PHP jest wykorzystywany przede wszystkim, ale nie wyłącznie stosowane, 558 00:28:01,474 --> 00:28:03,140 jako język programowania internetowego. 559 00:28:03,140 --> 00:28:05,270 To naprawdę, jak doszło do tego. 560 00:28:05,270 --> 00:28:06,980 Ale to jest w pełni język, jak widzieliśmy. 561 00:28:06,980 --> 00:28:10,105 Widzieliśmy już dość dużo wszystko, co że może to zrobić, są podobne do C, 562 00:28:10,105 --> 00:28:13,290 i może to zrobić kawał o wiele więcej niż to. 563 00:28:13,290 --> 00:28:16,950 >> Ale ponieważ jest to pełna język i może zrobić programowanie wiersza poleceń w nim. 564 00:28:16,950 --> 00:28:18,630 Możemy uruchamiać programy wiersza polecenia. 565 00:28:18,630 --> 00:28:22,580 Wszystko, co niezbędne, aby uruchomić polecenie Program wiersza, który jest napisany w PHP 566 00:28:22,580 --> 00:28:24,260 jest to, że masz interpreter PHP. 567 00:28:24,260 --> 00:28:27,460 Więc jest to rodzaj analogiczne do o kompilator w systemie 568 00:28:27,460 --> 00:28:31,100 jeśli chcesz skompilować kod C aby włączyć go do plików wykonywalnych. 569 00:28:31,100 --> 00:28:33,810 Musisz mieć interpreter PHP która istnieje w systemie 570 00:28:33,810 --> 00:28:37,330 tak, że można interpretować pliki PHP. 571 00:28:37,330 --> 00:28:40,370 >> Zakładając, że nie, i zazwyczaj to interpreter nazywany jest PHP, 572 00:28:40,370 --> 00:28:44,300 i to zwykle w pakiecie z najbardziej pliki do pobrania lub instalacji PHP 573 00:28:44,300 --> 00:28:47,430 , które można uzyskać w Internecie, a na pewno nazwa interpretera PHP 574 00:28:47,430 --> 00:28:49,550 mamy w CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Wszystko co musisz zrobić to typ pliku php. 576 00:28:51,819 --> 00:28:53,610 A co Twój program zamiar zrobić, to jest to 577 00:28:53,610 --> 00:28:55,360 będzie przebiegać przez interpreter, to 578 00:28:55,360 --> 00:28:58,040 będzie ignorować wszystko, co jest nie pomiędzy pytanie mark-- 579 00:28:58,040 --> 00:29:03,160 lub, kąt wspornika znak zapytania php, separatory PHP i wydrukować go, 580 00:29:03,160 --> 00:29:07,660 i będzie interpretować i wykonywać Kod wewnątrz swoich ograniczniki PHP. 581 00:29:07,660 --> 00:29:12,850 >> Więc pop nad do CS50 IDE i rzucić okiem na kilka plików PHP, 582 00:29:12,850 --> 00:29:19,850 działa kilka plików PHP, w interfejs wiersza poleceń CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Więc jesteśmy w CS50 IDE, a ja pozwoliłem sobie 584 00:29:22,100 --> 00:29:25,800 otwarcia pliku o nazwie hello1.php. 585 00:29:25,800 --> 00:29:29,920 I najwyraźniej zawartość tego plik są tylko ograniczniki PHP tam, 586 00:29:29,920 --> 00:29:32,220 i pomiędzy, echo ("Witaj, świecie"). 587 00:29:32,220 --> 00:29:34,710 Jest to dość prosty program PHP. 588 00:29:34,710 --> 00:29:37,670 Idę, aby przewinąć w dół moim oknie terminala tutaj, 589 00:29:37,670 --> 00:29:44,320 i mam zamiar wpisać php hello1.php, wciśnij enter. 590 00:29:44,320 --> 00:29:44,950 Witaj świecie. 591 00:29:44,950 --> 00:29:48,110 To jest chyba to, co my spodziewałem się zrobić, prawda? 592 00:29:48,110 --> 00:29:51,140 >> Chodźmy się i podjąć kolejny spojrzeć na program. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Prawie to samo, nie wiele się tu dzieje. 595 00:29:55,090 --> 00:29:57,190 Tym razem jednak, mam zamiar skłonić użytkownik dać mi swoje imiona. 596 00:29:57,190 --> 00:29:59,290 Jestem ponownie przy użyciu tej funkcji readline. 597 00:29:59,290 --> 00:30:01,340 $ name = readline. 598 00:30:01,340 --> 00:30:03,070 To jest szybka, "Jak masz na imię?" 599 00:30:03,070 --> 00:30:04,880 >> Widocznie jestem drukowanie to z własnej linii. 600 00:30:04,880 --> 00:30:07,220 A potem, więc linia poniżej że będzie szybka 601 00:30:07,220 --> 00:30:08,750 w którym użytkownik może wpisać swoje nazwisko. 602 00:30:08,750 --> 00:30:12,030 A potem używam trochę Zmienna interpelacja tu na linii 3 603 00:30:12,030 --> 00:30:14,780 wydrukować "Hello" i co użytkownik wpisze. 604 00:30:14,780 --> 00:30:22,040 Więc to jest analogiczne do mówiąc: Witaj, przecinek,% s, jeśli używaliśmy printf w C 605 00:30:22,040 --> 00:30:24,910 >> Więc chodźmy i interpretować ten program. 606 00:30:24,910 --> 00:30:27,400 Więc jeszcze raz, będę przewijać moim oknie terminala. 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 Jak masz na imię? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Witaj, Doug. 612 00:30:36,526 --> 00:30:39,440 Mam też inny plik o nazwie hello3.php. 613 00:30:39,440 --> 00:30:42,850 Mam zamiar oczyścić Ekran ze sterowania L, 614 00:30:42,850 --> 00:30:46,210 i mam zamiar wykonać to. 615 00:30:46,210 --> 00:30:47,640 Jak masz na imię? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Witaj, Doug. 618 00:30:49,780 --> 00:30:56,540 Tak więc działanie jest identyczne hello2.php, ale dlaczego jest hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> No i tu jest różnica. 620 00:30:58,040 --> 00:31:00,620 W tym przypadku, informacja że tu na linii 1, 621 00:31:00,620 --> 00:31:04,270 Mam coś, co nie jest w między ogranicznikami PHP. 622 00:31:04,270 --> 00:31:07,760 Ja tylko drukowanie out-- albo ja wystarczy wpisać: "Jak masz na imię?" 623 00:31:07,760 --> 00:31:12,060 Gdy interpreter języka PHP to zobaczy, to nie ma pojęcia, jak interpretować to jako PHP, 624 00:31:12,060 --> 00:31:15,060 i tak, a nie braku, to po prostu będzie wypluć. 625 00:31:15,060 --> 00:31:19,010 >> Więc zauważyć na linii 3 teraz, moje wezwanie do readline, nie ma już żadnego polecenia. 626 00:31:19,010 --> 00:31:21,750 Ja tylko rzeczywiście będzie to-- kiedy interpreter języka PHP widzi to, 627 00:31:21,750 --> 00:31:23,400 to będzie wydrukować "Jak masz na imię?" 628 00:31:23,400 --> 00:31:25,941 Wtedy widzi, no, OK, here's-- wszystko inne będzie 629 00:31:25,941 --> 00:31:29,970 interpretować jako PHP, więc to dlaczego to działa. 630 00:31:29,970 --> 00:31:34,990 Nie muszę koniecznie skłonić to-- użytkownika wewnątrz readline, 631 00:31:34,990 --> 00:31:37,490 Mogę tylko mieć ją na zewnątrz z ogranicznikami PHP 632 00:31:37,490 --> 00:31:41,490 i pozwalają na tłumacza po prostu wydrukować go dla mnie. 633 00:31:41,490 --> 00:31:45,364 >> Tak więc w rzeczywistości nie tylko mieć jeden zestaw ograniczników PHP 634 00:31:45,364 --> 00:31:46,030 w programie. 635 00:31:46,030 --> 00:31:49,887 Rzeczywiście można mieć kilka z nich, otwieranie i zamykanie ich w razie potrzeby. 636 00:31:49,887 --> 00:31:51,720 Warto więc spojrzeć w kilku programach 637 00:31:51,720 --> 00:31:55,070 w CS50 IDE, gdzie zilustrować tę ideę konieczności 638 00:31:55,070 --> 00:31:58,376 wiele zestawów ograniczonego PHP. 639 00:31:58,376 --> 00:32:02,010 >> OK, więc już otwarty plik tutaj nazywa add1.php. 640 00:32:02,010 --> 00:32:03,390 I zauważyć, co się tutaj dzieje. 641 00:32:03,390 --> 00:32:08,077 Podobnie jak wcześniej, mam Pojedynczy PHP zestaw ograniczników. 642 00:32:08,077 --> 00:32:10,660 Idę do wydrukowania Komunikat: "Proszę, daj mi numer." 643 00:32:10,660 --> 00:32:13,394 Potem mam zamiar przeczytać wiersz i przechowywać go w zmiennej $ num1. 644 00:32:13,394 --> 00:32:14,810 Potem mam zamiar wydrukować ponownie. 645 00:32:14,810 --> 00:32:16,310 Daj mi drugą liczbę. 646 00:32:16,310 --> 00:32:20,450 Czytaj linię od użytkownika, sklepie cokolwiek wpisane w $ num2. 647 00:32:20,450 --> 00:32:23,980 Dodaj je razem i zapisać, że prowadzić w zmiennej o nazwie $ suma, 648 00:32:23,980 --> 00:32:26,180 a następnie wydrukować "The Suma tych dwóch liczb 649 00:32:26,180 --> 00:32:29,254 jest ", a następnie interpelacji istnieje zmienna $ suma. 650 00:32:29,254 --> 00:32:31,170 Więc po prostu uruchomić to przez tłumacza 651 00:32:31,170 --> 00:32:33,720 aby potwierdzić, że jest to, czego oczekujemy. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Proszę daj mi numer, 3. 654 00:32:38,665 --> 00:32:40,410 Proszę dać mi drugą liczbę, 4. 655 00:32:40,410 --> 00:32:43,370 Suma tych dwóch liczb jest 7. 656 00:32:43,370 --> 00:32:45,030 To 3 oraz 4. 657 00:32:45,030 --> 00:32:45,530 OK? 658 00:32:45,530 --> 00:32:47,770 Więc nic strasznie ochotę tam. 659 00:32:47,770 --> 00:32:51,080 >> A teraz otwórzmy się add2.php. 660 00:32:51,080 --> 00:32:54,460 Tutaj, mam kilka PHP ograniczone zestawy tam, prawda? 661 00:32:54,460 --> 00:32:59,107 Linie 1, 3-- linie 1 i 3 nie mają ograniczniki PHP. 662 00:32:59,107 --> 00:33:00,940 Więc kiedy tłumacz widzi je, to tylko 663 00:33:00,940 --> 00:33:03,220 będzie wypluć dokładnie co mam wpisane tam. 664 00:33:03,220 --> 00:33:05,011 Więc to, gdzie jestem robi wszystkie moje pytania. 665 00:33:05,011 --> 00:33:11,220 Na liniach 2 i 4, widzimy bardzo zaznajomieni $? php rodzaju separatorów, 666 00:33:11,220 --> 00:33:15,210 więc te dwie linie są zamierza uruchomić w PHP. 667 00:33:15,210 --> 00:33:18,270 A następnie na linii 5, mam to Dziwne jest tutaj, prawda? 668 00:33:18,270 --> 00:33:20,480 Ten kątownik Znak zapytania znak równości. 669 00:33:20,480 --> 00:33:22,660 Ja nawet powiększyć trochę dalej. 670 00:33:22,660 --> 00:33:29,270 Możesz zobaczyć to co ja mówić o tam, to $? =. 671 00:33:29,270 --> 00:33:33,420 >> Okazuje się, że to jest tak powszechne, że dlatego, że otwieramy zestaw PHP 672 00:33:33,420 --> 00:33:36,055 ograniczniki jest do wydrukowania wartości. 673 00:33:36,055 --> 00:33:37,430 I to jest wszystko, co zamierzamy zrobić. 674 00:33:37,430 --> 00:33:39,220 Ale jest jeszcze skrótem, że. 675 00:33:39,220 --> 00:33:46,490 $ = Jest PHP skrótem mówiąc coś jak $? php echo suma 676 00:33:46,490 --> 00:33:48,350 z num1 i num2. 677 00:33:48,350 --> 00:33:51,900 Więc jest to tylko kolejny skrót do tego. 678 00:33:51,900 --> 00:33:55,550 >> Więc jeśli mogę uruchomić ten program, PHP add2.php. 679 00:33:55,550 --> 00:33:57,530 Będę przybliżyć się trochę. 680 00:33:57,530 --> 00:33:59,000 Proszę daj mi numer, 4. 681 00:33:59,000 --> 00:34:00,350 Proszę dać mi drugą liczbę. 682 00:34:00,350 --> 00:34:04,650 A ponieważ tak naprawdę nie obchodzi Typy danych w PHP, mogę powiedzieć, 4.8. 683 00:34:04,650 --> 00:34:07,160 Suma tych dwóch liczb jest 8,8. 684 00:34:07,160 --> 00:34:10,179 Ta funkcja zachowuje się dość dużo dokładnie tak samo, jak się spodziewaliśmy, 685 00:34:10,179 --> 00:34:10,989 równie dobrze. 686 00:34:10,989 --> 00:34:13,114 I mam jeszcze jedno otwarte tutaj nazywa dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Spróbuj tego ponownie. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Mam jeszcze jeden nazywany tutaj dice1.php, które również można znaleźć, 691 00:34:33,280 --> 00:34:37,440 ma ten kątownik pytanie zaznaczyć równe notacji Zaloguj się tam, 692 00:34:37,440 --> 00:34:40,659 ale zauważ, że w tym przypadku jestem wywołanie funkcji rand, który jak ty 693 00:34:40,659 --> 00:34:42,790 może spodziewać generuje liczbę losową. 694 00:34:42,790 --> 00:34:46,889 "Ty walcowane a", i to będzie obliczyć pewną liczbę losową, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Tak, że da mi numer w zakresie od 1 do 6. 697 00:34:49,989 --> 00:34:53,040 >> Pamiętaj, że mod 6 dałoby mnie liczbę w zakresie od 0 do 5, 698 00:34:53,040 --> 00:34:56,630 ale jeśli mam symulacji rolki kości, co jest, co tu robię, 699 00:34:56,630 --> 00:35:00,040 Nie chcę, żeby te kości, aby przejść od 0 do 5, chcę kości, które go od 1 do 6. 700 00:35:00,040 --> 00:35:02,800 A więc jest to sposób, aby uzyskać me mieści się w zakresie od 1 do 6. 701 00:35:02,800 --> 00:35:04,720 Robię to dwa razy. 702 00:35:04,720 --> 00:35:08,630 Więc widocznie jestem toczenia dwie kości w tym programie. 703 00:35:08,630 --> 00:35:15,210 >> Więc wyczyścić ekran, i zrobię php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Ci przywalił 4 i 2. 705 00:35:16,640 --> 00:35:19,156 A jeśli uruchomić program Ponownie, walcowane 5 i 5. 706 00:35:19,156 --> 00:35:21,780 Więc za każdym razem uruchomić program, Dostaję różne numery, 707 00:35:21,780 --> 00:35:24,280 bo za każdym razem robię tak, to zaczyna się. 708 00:35:24,280 --> 00:35:27,250 To będzie generować nowy zestaw liczb losowych dla mnie. 709 00:35:27,250 --> 00:35:29,790 >> Jeśli więc jesteśmy przyzwyczajeni do uruchamianie programów z C, 710 00:35:29,790 --> 00:35:32,520 jesteśmy przyzwyczajeni do pisania ./ nazwa programu, prawda? 711 00:35:32,520 --> 00:35:35,090 Tak właśnie zrobiliśmy wszystko z naszych programów w C tak daleko. 712 00:35:35,090 --> 00:35:37,555 Możemy to zrobić w PHP, jak również dodając coś, co nazywa 713 00:35:37,555 --> 00:35:40,026 shebang do szczytu naszego pliku PHP. 714 00:35:40,026 --> 00:35:41,400 Wiem, że to trochę głupie słowa. 715 00:35:41,400 --> 00:35:44,540 Jest to skrót od skrótu hukiem. 716 00:35:44,540 --> 00:35:46,300 To dwa pierwsze znaki nie. 717 00:35:46,300 --> 00:35:50,030 Pamiętaj nazywamy wykrzyknik często huk w informatyce. 718 00:35:50,030 --> 00:35:51,690 To również może być dla ostrym hukiem. 719 00:35:51,690 --> 00:35:53,273 Istnieje kilka sposobów, aby go interpretują. 720 00:35:53,273 --> 00:35:57,320 Ale to w zasadzie specjalnego rodzaju dowodzenia, że ​​interpreter języka PHP 721 00:35:57,320 --> 00:36:00,160 rozumie się, oh, chcę można wykonać ten program, 722 00:36:00,160 --> 00:36:05,250 które jest najwyraźniej / user / bin / php, który jest w rzeczywistości, gdzie interpreter PHP 723 00:36:05,250 --> 00:36:08,590 specjalnie mieszka w naszym systemie. 724 00:36:08,590 --> 00:36:12,530 Więc co się dzieje tutaj it's-- jest interpreter rozumie, oh, 725 00:36:12,530 --> 00:36:17,270 Ja najwyraźniej powinien używać w tym programie, aby uruchomić ten plik. 726 00:36:17,270 --> 00:36:20,010 I tak to pozwala pominąć kroku 727 00:36:20,010 --> 00:36:22,979 posiadania powiedzieć php something.php. 728 00:36:22,979 --> 00:36:25,020 Jest jeszcze jeden haczyk Tutaj, która jest taka, że ​​jeśli 729 00:36:25,020 --> 00:36:27,320 chcemy nasze programy do działa zgodnie z oczekiwaniami, my 730 00:36:27,320 --> 00:36:30,220 trzeba zrobić coś, co nazywa zmiana dostępu do pliku. 731 00:36:30,220 --> 00:36:33,380 A my go-- i porozmawiać trochę bitowe więcej zmian uprawnień o pliku 732 00:36:33,380 --> 00:36:37,550 w naszym wideo na MVC, ale wystarczy powiedzieć, że to jest to, co trzeba zrobić, 733 00:36:37,550 --> 00:36:42,760 aby uczynić swoje .php pliki wykonywalne. 734 00:36:42,760 --> 00:36:49,330 Warto więc spojrzeć na to jako nasz ostatni przykład nad w CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Więc tutaj w IDE Mam dwa pliki w tym Katalog PHP, które nie wydają się być 736 00:36:53,910 --> 00:36:55,310 nazywa .php. 737 00:36:55,310 --> 00:36:58,170 Mam funkcja nazywa add-- Mam plik o nazwie ADD3 738 00:36:58,170 --> 00:37:00,650 oraz plik o nazwie dice2. 739 00:37:00,650 --> 00:37:03,680 Więc weźmy szybkie wyglądać i otworzyć ADD3. 740 00:37:03,680 --> 00:37:08,300 I jak widać, na początku mojego pliku mam ten shebang, prawda? 741 00:37:08,300 --> 00:37:11,420 Ten punkt hash wykrzyknik. 742 00:37:11,420 --> 00:37:15,115 Teraz będziesz także może zauważyć, że z jakiegoś powodu, 743 00:37:15,115 --> 00:37:16,990 Nie mam żadnej składni podkreślając więcej, 744 00:37:16,990 --> 00:37:20,198 i to jest to, co wspomniałem wcześniej, co było, że jeśli nie nazwać mój plik 745 00:37:20,198 --> 00:37:23,040 .php, nie mam korzyści podświetlanie składni już. 746 00:37:23,040 --> 00:37:26,220 Plik ten jest nazywany po prostu ADD3. 747 00:37:26,220 --> 00:37:30,960 Tak, że można go uruchomić później z ./ ADD3 i nie ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Więc reason-- to jeszcze dobrze, że to nadal aktualne PHP, 749 00:37:33,680 --> 00:37:37,000 ale to nie Składnia podkreślił, ponieważ ten plik nie jest nazywany something.php. 750 00:37:37,000 --> 00:37:41,580 To jedyna prawdziwa różnica tutaj, plus shebang. 751 00:37:41,580 --> 00:37:45,170 Zobaczmy więc, co się dzieje, gdy Staram się uruchomić ten program. 752 00:37:45,170 --> 00:37:50,780 ./ ADD3, tak jak bym C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Zgody ADD3 zaprzeczył. 754 00:37:53,190 --> 00:37:55,390 To jest to, co masz zamiar aby sprawdzić, czy można zapomnieć 755 00:37:55,390 --> 00:37:59,280 użyć polecenia chmod, aby zmienić uprawnienia do tego pliku. 756 00:37:59,280 --> 00:38:03,845 >> Jak się okazuje, regularne PHP pliki nie mogą po prostu być wykonane. 757 00:38:03,845 --> 00:38:06,970 Można je interpretować, ale jesteśmy robi coś innego tutaj. 758 00:38:06,970 --> 00:38:07,761 Mamy je wykonuje. 759 00:38:07,761 --> 00:38:12,970 I tak trzeba dodać uprawnienia egzekucji, chmod a + x do ADD3. 760 00:38:12,970 --> 00:38:15,680 Wtedy można powiedzieć ./ ADD3. 761 00:38:15,680 --> 00:38:16,860 Proszę dać mi numer. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Suma tych dwóch liczb jest 11. 764 00:38:20,490 --> 00:38:26,530 >> Podobnie, już CHMOD dice2, więc mogę po prostu wpisz ./ dice2, 765 00:38:26,530 --> 00:38:31,260 ci przywalił 1 i 1, to walcowane 5 i 4, i tak dalej. 766 00:38:31,260 --> 00:38:33,680 >> Więc to jest dość dużo Pomysł składni PHP, prawda? 767 00:38:33,680 --> 00:38:35,221 Jest wiele, aby przejść, wiem. 768 00:38:35,221 --> 00:38:39,160 Ale mam nadzieję, że widziałeś już, że PHP Nie jest to, że różni się od C 769 00:38:39,160 --> 00:38:43,670 i naprawdę daje nam możliwość wziąć się w garść lub dwie. 770 00:38:43,670 --> 00:38:48,230 Naprawdę nie musisz się martwić zbyt wiele about-- naprawdę nie 771 00:38:48,230 --> 00:38:51,605 trzeba martwić się zbytnio o szczegóły niskopoziomowe my 772 00:38:51,605 --> 00:38:52,980 musiał martwić o C, prawda? 773 00:38:52,980 --> 00:38:56,170 Możemy skupić się na wyższe Poziom rzeczy, że PHP 774 00:38:56,170 --> 00:39:01,090 pozwala nam zrobić i wziąć na pewnik, że będzie pracować dla nas. 775 00:39:01,090 --> 00:39:04,350 Więc to daje nam możliwość teraz, przejście z C do PHP, 776 00:39:04,350 --> 00:39:08,280 do programów, które są o wiele bardziej skomplikowane i być może o wiele bardziej wytrzymałe. 777 00:39:08,280 --> 00:39:13,070 >> Więc mam nadzieję, że dobrze się bawić pracy PHP i jestem Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 To CS50. 779 00:39:15,050 --> 00:39:17,637