1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Rozdział 8] [mniej wygodne] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [To jest CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Witamy na naszej sekundy do ostatniego rozdziału. 5 00:00:11,000 --> 00:00:13,000 W tym tygodniu będziemy rozmawiać o PHP, a następnie w przyszłym tygodniu 6 00:00:13,000 --> 00:00:17,000 zrobimy trochę opinię o Quiz 1. 7 00:00:17,000 --> 00:00:20,000 Mamy zamiar rozpocząć na stronie 3 tego problemu przedstawia opakowanie, 8 00:00:20,000 --> 00:00:28,000 i będziemy pracować przez sekcję pytań dość szybko. 9 00:00:28,000 --> 00:00:34,000 Na stronie 3, zaczynamy mówić o tej różnicy pomiędzy C i PHP 10 00:00:34,000 --> 00:00:38,000 w tym sensie, że PHP jest językiem dynamicznie typowanym, 11 00:00:38,000 --> 00:00:42,000 natomiast C jest statycznie wpisane, 12 00:00:42,000 --> 00:00:46,000 i ktoś naprawdę szybko zrobić jakieś kodowanie w czymś PHP 13 00:00:46,000 --> 00:00:51,000 lub Python lub Ruby przed, w JavaScript? 14 00:00:51,000 --> 00:00:53,000 Całkowicie nowy? Okay. 15 00:00:53,000 --> 00:00:56,000 >> Wszystkie z tych języków, które już wspomniałem 16 00:00:56,000 --> 00:01:01,000 są bardzo różne od języków takich jak C i C + + i Java 17 00:01:01,000 --> 00:01:04,000 w tym sensie, że jeśli zadeklarować zmienną nie musisz deklarować 18 00:01:04,000 --> 00:01:09,000 jakie zmienną jest, więc w C utknęliśmy konieczności zawsze mówią 19 00:01:09,000 --> 00:01:13,000 to będzie int zmienna, albo to będzie zmienna char *, 20 00:01:13,000 --> 00:01:16,000 natomiast z PHP, Python, ze z Ruby, 21 00:01:16,000 --> 00:01:20,000 z wieloma z tych języków bardziej nowoczesne nie trzeba tego robić w ogóle. 22 00:01:20,000 --> 00:01:24,000 Wystarczy zadeklarować zmienną, a w przypadku PHP 23 00:01:24,000 --> 00:01:28,000 zadeklarować, że jest to zmienna poprzedzając go znakiem $, 24 00:01:28,000 --> 00:01:35,000 i rodzaj zależy od zmiennej wartości, co trzyma się, 25 00:01:35,000 --> 00:01:38,000 co jest raczej chłodny. 26 00:01:38,000 --> 00:01:44,000 Się bawić z tym trochę mało, mamy przykładowy kod PHP tutaj 27 00:01:44,000 --> 00:01:47,000 pomiędzy początkiem i końcem znaczników. 28 00:01:47,000 --> 00:01:53,000 Używamy tego rodzaju jak HTML, w tym sensie, że 29 00:01:53,000 --> 00:01:56,000 mamy tych kątowników tutaj, aby otworzyć i zamknąć. 30 00:01:56,000 --> 00:01:58,000 Zobaczysz to z HTML. 31 00:01:58,000 --> 00:02:03,000 Zobaczysz sam rodzaj składni z XML też. 32 00:02:03,000 --> 00:02:06,000 >> To wskazuje na początek bloku PHP. 33 00:02:06,000 --> 00:02:09,000 This? Php jest specyficzny dla PHP. 34 00:02:09,000 --> 00:02:16,000 Zamykamy wszystko z>, jak również. 35 00:02:16,000 --> 00:02:22,000 Powiedzmy otwarcie pliku w naszym urządzeniu wykorzystując chcesz. 36 00:02:22,000 --> 00:02:25,000 W tym pakiecie jest napisane, aby zadzwonić dynamic.php. 37 00:02:25,000 --> 00:02:29,000 W rzeczywistości, można nazwać to, co chcesz, ale nazwa pliku pojawi się 38 00:02:29,000 --> 00:02:34,000 i być ważne później, więc po prostu pamiętać, cokolwiek to nazwać. 39 00:02:34,000 --> 00:02:36,000 Idę do przełączenia się na urządzenia, 40 00:02:36,000 --> 00:02:43,000 i mam zamiar stworzyć katalog dla 41 00:02:43,000 --> 00:02:48,000 Sekcja 9 Uważam, że jesteśmy w teraz. 42 00:02:48,000 --> 00:02:51,000 I idziemy w rozdziale 9, 43 00:02:51,000 --> 00:02:54,000 i mam zamiar użyć gedit. 44 00:02:54,000 --> 00:02:59,000 Zobaczmy, gedit, a ja zadzwonię do kopalni dynamic.php. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 W ciągu dynamic.php, ponieważ jest to plik PHP 47 00:03:06,000 --> 00:03:09,000 i chcę, aby uruchomić to przez interpreter PHP 48 00:03:09,000 --> 00:03:12,000 Muszę zacząć wszystko od tych otwartych znaczników, 49 00:03:12,000 --> 00:03:17,000 więc mam zamiar zacząć te od razu, 50 00:03:17,000 --> 00:03:23,000 dać sobie trochę miejsca w między tagami, 51 00:03:23,000 --> 00:03:26,000 a następnie punkt tego ćwiczenia było się bawić z 52 00:03:26,000 --> 00:03:34,000 Funkcja ta nazywa gettype, więc gettype funkcja ta tutaj. 53 00:03:34,000 --> 00:03:38,000 >> Zauważ, że nie ma podkreślenia lub spacji lub myślnika lub coś podobnego 54 00:03:38,000 --> 00:03:42,000 oddzielającej 2 słów, dostać i wpisz, tylko jedno słowo w ogóle. 55 00:03:42,000 --> 00:03:46,000 Ale co to będzie zrobić to, jeśli przechodzą w zmiennej gettype, 56 00:03:46,000 --> 00:03:51,000 powiedzieć, $ zmienna lub $ x, 57 00:03:51,000 --> 00:03:55,000 to powiedz mi rodzaju w formacie debugowania 58 00:03:55,000 --> 00:03:59,000 jaka jest nazwa tego typu jest. 59 00:03:59,000 --> 00:04:03,000 Będziemy eksperymentować tutaj. 60 00:04:03,000 --> 00:04:07,000 W szczególności, jeśli spojrzymy na specyfikację Pset 61 00:04:07,000 --> 00:04:11,000 mamy kilka różnych linii kodu tutaj. 62 00:04:11,000 --> 00:04:16,000 W pierwszym wierszu kodu zainicjować tej zmiennej, $ var, 63 00:04:16,000 --> 00:04:21,000 jest równa 7, a następnie mamy tę linię printf 64 00:04:21,000 --> 00:04:25,000 mówi, że hej, printf var jest pusta. 65 00:04:25,000 --> 00:04:29,000 Printf jest jednym z wielu sposobów, możemy drukować rzeczy w PHP. 66 00:04:29,000 --> 00:04:33,000 Często zobaczysz funkcję echa stosowany zamiast printf, 67 00:04:33,000 --> 00:04:40,000 ale printf wszyscy jesteśmy zaznajomieni z ustaniu kodowania w C na chwilę. 68 00:04:40,000 --> 00:04:42,000 Co możesz zrobić, to faktycznie zobaczymy, czy kopiuj i wklej działa. 69 00:04:42,000 --> 00:04:46,000 Mam zamiar dać to spróbować. 70 00:04:46,000 --> 00:04:52,000 Idziemy z powrotem na urządzenie. 71 00:04:52,000 --> 00:05:00,000 Dobra, i tam idziemy. 72 00:05:00,000 --> 00:05:05,000 I rozstaw jest trochę funky, ale jedziemy. 73 00:05:05,000 --> 00:05:08,000 Mamy ten kod tutaj. 74 00:05:08,000 --> 00:05:11,000 >> [Student] Czy nie jest dobry styl zakładka to? 75 00:05:11,000 --> 00:05:13,000 Przepraszam? 76 00:05:13,000 --> 00:05:15,000 [Student] Czy konwencjonalnego na karcie jest? 77 00:05:15,000 --> 00:05:21,000 Dobra, więc Sam pyta, czy to umowy na kartę, czy nie. 78 00:05:21,000 --> 00:05:23,000 Zazwyczaj tak. 79 00:05:23,000 --> 00:05:26,000 W tym przypadku wybrałem nie. 80 00:05:26,000 --> 00:05:33,000 Szczerze mówiąc, można zobaczyć różne rzeczy u różnych programistów. 81 00:05:33,000 --> 00:05:40,000 PHP jest zwykle używany często w połączeniu z HTML 82 00:05:40,000 --> 00:05:45,000 i inne języki, a więc czasami drukowanie będzie wyglądać trochę funky 83 00:05:45,000 --> 00:05:50,000 jeśli tiret terminie rozpoczęcia PHP i tagów końcowych. 84 00:05:50,000 --> 00:05:53,000 To naprawdę zależy. 85 00:05:53,000 --> 00:05:56,000 W tym przypadku kopiowania i wklejania nie wkleić karty w dla mnie, 86 00:05:56,000 --> 00:06:02,000 ale na pewno nie, jak pan powiedział, uczynić go bardziej zrozumiałym. 87 00:06:02,000 --> 00:06:06,000 Dobrze, jeśli zapisać ten kod w dynamic.php 88 00:06:06,000 --> 00:06:10,000 to co można zrobić, to przyjść do okna terminala, gdzie jestem aż tutaj 89 00:06:10,000 --> 00:06:17,000 w gedit i zrobić odpowiednik kompilacji 90 00:06:17,000 --> 00:06:20,000 stosując się, a następnie uruchomienie kodu w C 91 00:06:20,000 --> 00:06:25,000 wszystko co musisz zrobić z plikiem PHP jest uruchomienie interpretera PHP, 92 00:06:25,000 --> 00:06:30,000 który jest mały program o nazwie PHP, 93 00:06:30,000 --> 00:06:35,000 i argument dać do tłumacza jest plik, który chcesz do interpretacji. 94 00:06:35,000 --> 00:06:40,000 W tym przypadku, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Ups, skąd to powiedzieć? 96 00:06:43,000 --> 00:06:52,000 Oh, I umieścić go w sekcji 9, i oto jestem. Dlatego. 97 00:06:52,000 --> 00:06:57,000 >> Teraz, jeśli mogę uruchomić jeszcze raz 98 00:06:57,000 --> 00:07:02,000 widzimy, że w moim pierwszym wywołaniu funkcji gettype 99 00:07:02,000 --> 00:07:04,000 var jest liczbą całkowitą. 100 00:07:04,000 --> 00:07:12,000 W następnym var jest ciągiem znaków, a następnie w trzecim var jest boolean. 101 00:07:12,000 --> 00:07:15,000 Co ciekawe w tym jest, jeśli przewijania w górę, widzimy, że 102 00:07:15,000 --> 00:07:18,000 Są to typy podobne do tych, które mieliśmy w C. 103 00:07:18,000 --> 00:07:22,000 Mieliśmy wskazówki w C. 104 00:07:22,000 --> 00:07:26,000 W pewnym sensie miał ciągów w C, 105 00:07:26,000 --> 00:07:31,000 więc łańcuchy nie były całkowicie legit wpisz w tym sensie, że 106 00:07:31,000 --> 00:07:37,000 nasza CS50 ciąg był naprawdę co? 107 00:07:37,000 --> 00:07:39,000 Przepraszam? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Tak, było to char * użyliśmy. 110 00:07:43,000 --> 00:07:47,000 Na samym początku semestru używaliśmy typ łańcucha, 111 00:07:47,000 --> 00:07:52,000 ale to było naprawdę char * pod maską. 112 00:07:52,000 --> 00:07:58,000 Właśnie typu określone go, natomiast w PHP te ciągi są rzeczywiste typu. 113 00:07:58,000 --> 00:08:07,000 Nie ma więcej tego typu rzeczy, char *. 114 00:08:07,000 --> 00:08:10,000 >> Zobaczysz, że nie możemy zrobić o wiele więcej rzeczy z ciągów 115 00:08:10,000 --> 00:08:14,000 łatwiej w PHP niż moglibyśmy w C, 116 00:08:14,000 --> 00:08:17,000 i wreszcie, mamy tego typu Boolean, a duża różnica jest to, że 117 00:08:17,000 --> 00:08:21,000 jeśli będziemy przesuwać się w tył widać, że nazwa tego typu 118 00:08:21,000 --> 00:08:28,000 Teraz integer, string, boolean i zamiast int i bool, 119 00:08:28,000 --> 00:08:31,000 i jak można odebrać w różnych językach programowania, 120 00:08:31,000 --> 00:08:36,000 zakładając, że w pewnym momencie w swoim życiu będzie stykać się z 121 00:08:36,000 --> 00:08:40,000 różne z nich można zauważyć małe dziwactwa takie jak to 122 00:08:40,000 --> 00:08:44,000 gdzie C zwraca liczby całkowite wskazówki. 123 00:08:44,000 --> 00:08:46,000 Niektórzy nazywają to liczby całkowite. 124 00:08:46,000 --> 00:08:51,000 Są też inne warunki, które będziesz napotkasz. 125 00:08:51,000 --> 00:08:55,000 Big int widzieliśmy dzisiaj w SQL. 126 00:08:55,000 --> 00:08:59,000 Istnieją również liczba i bool, boolean, 127 00:08:59,000 --> 00:09:03,000 wszelkiego rodzaju różnice tam. 128 00:09:03,000 --> 00:09:07,000 >> To nie jest strasznie ciekawe, ale teraz mam zamiar dać ci trochę czasu- 129 00:09:07,000 --> 00:09:13,000 ksz jeśli z do wykonywania tej pracy przez w dolnej strony 3 130 00:09:13,000 --> 00:09:20,000 gdzie pytanie, jakie typy tych wartości odpowiadają tutaj na dole. 131 00:09:20,000 --> 00:09:24,000 Mamy 3,50. 132 00:09:24,000 --> 00:09:28,000 Mamy to coś tu, co jest interesujące. 133 00:09:28,000 --> 00:09:32,000 Nie widziałem tego wcześniej, ale jeśli już po wzdłuż w wykładzie 134 00:09:32,000 --> 00:09:35,000 prawdopodobnie już wiesz, co to jest. 135 00:09:35,000 --> 00:09:40,000 Następnie mamy to, co jest to rodzaj funky. 136 00:09:40,000 --> 00:09:42,000 Można to rozpoznać. 137 00:09:42,000 --> 00:09:46,000 Co to jest w C? 138 00:09:46,000 --> 00:09:50,000 Sam? Co to daje w C? 139 00:09:50,000 --> 00:09:54,000 To otwórz plik o nazwie dynamic.php i sprawiają, że czytelny. 140 00:09:54,000 --> 00:09:58,000 Tak, i co będzie typ zmiennej, które możemy przypisać to do gwiazdy? >> Plik. 141 00:09:58,000 --> 00:10:02,000 Dokładnie, to możemy przypisać to do gwiazdy pliku. 142 00:10:02,000 --> 00:10:08,000 To jest legalne PHP zbyt. 143 00:10:08,000 --> 00:10:12,000 Uruchom to. Zobacz, co się dzieje, kiedy przekazać, że do gettype. 144 00:10:12,000 --> 00:10:19,000 A następnie także sprawdzić, co jest null, co to może być w PHP. 145 00:10:19,000 --> 00:10:21,000 Dam ci kilka minut. 146 00:10:21,000 --> 00:10:24,000 Można dosłownie skopiować i wkleić te wartości w, 147 00:10:24,000 --> 00:10:29,000 a potem zrobimy trochę losowy rozmowę na ciebie 148 00:10:29,000 --> 00:10:34,000 i zobaczyć, co tam masz. 149 00:10:34,000 --> 00:10:36,000 >> [Student] Mam pytanie. << Tak. 150 00:10:36,000 --> 00:10:40,000 W jednym z wykładów David powiedział, że coś można umieścić na początku pliku 151 00:10:40,000 --> 00:10:43,000 tak, że nie trzeba wpisywać w PHP za każdym razem. 152 00:10:43,000 --> 00:10:45,000 Co to było? 153 00:10:45,000 --> 00:10:50,000 Pewnie mówi o wybuchu funt, Wybuchu hash. 154 00:10:50,000 --> 00:10:57,000 Jest to dyrektywa, że ​​jeśli oznaczyć plik jako wykonywalny 155 00:10:57,000 --> 00:11:01,000 to co robi to podczas wykonywania pliku 156 00:11:01,000 --> 00:11:06,000 powie to program powłoki 157 00:11:06,000 --> 00:11:12,000 w użyciu interpreter PHP zinterpretować zawartość pliku. 158 00:11:12,000 --> 00:11:16,000 Pytanie jest, co było to specjalna linia 159 00:11:16,000 --> 00:11:20,000 to, że można było na czubku PHP plików nie musi zawierać 160 00:11:20,000 --> 00:11:26,000 ta linia PHP lub PHP to polecenie, gdy chcemy wykonać plik? 161 00:11:26,000 --> 00:11:31,000 I rzeczywiście można to zrobić w kilka różnych plików. 162 00:11:31,000 --> 00:11:37,000 Uważam, że zależy gdzie binary PHP jest przechowywany, 163 00:11:37,000 --> 00:11:43,000 ale często usr / bin / php jest dobrym miejscem, aby rozpocząć. 164 00:11:43,000 --> 00:11:45,000 Można dowiedzieć się dokładnie, to przechodząc z powrotem do pralki 165 00:11:45,000 --> 00:11:50,000 i wpisując się, które php. 166 00:11:50,000 --> 00:11:55,000 Które polecenie wymyśli kiedy wykonujący binarny 167 00:11:55,000 --> 00:12:01,000 lub komenda gdzie odpowiedni plik jest. 168 00:12:01,000 --> 00:12:06,000 To mówi mi, że PHP jest naprawdę aliasing to plik binarny 169 00:12:06,000 --> 00:12:13,000 która jest przechowywana w usr / bin, czyli tam, gdzie wiele plików binarnych systemu są zainstalowane. 170 00:12:13,000 --> 00:12:21,000 Na przykład, jeśli przewijać się do góry, a teraz, że mam umieścić to: #! line in here 171 00:12:21,000 --> 00:12:27,000 Można przewijać w dół, a ja mogę spróbować uruchomić 172 00:12:27,000 --> 00:12:35,000 dynamic.php, ale pojawia się ten błąd, o pozwolenie odmowy przyjęcia 173 00:12:35,000 --> 00:12:42,000 i co to oznacza to, że ten plik nie jest obecnie dając wykonywalne uprawnienia. 174 00:12:42,000 --> 00:12:46,000 To nie jest oznaczony jako plik, że ktoś może być zasilany. 175 00:12:46,000 --> 00:12:52,000 >> Kiedy zabrakło wykonywać lub brzęk i masz plik wykonywalny z niego 176 00:12:52,000 --> 00:12:56,000 kompilator był wystarczająco inteligentny, aby wiedzieć, że hej, buduję plik wykonywalny. 177 00:12:56,000 --> 00:13:00,000 Prawdopodobnie chcesz go wykonać, więc to automatycznie skonfigurować 178 00:13:00,000 --> 00:13:02,000 uprawnienia dla Ciebie. 179 00:13:02,000 --> 00:13:06,000 To nie jest przypadek, ale podczas tworzenia zwykły plik od podstaw, 180 00:13:06,000 --> 00:13:13,000 Powodem jest zazwyczaj nie chcesz mieć dowolny plik na komputerze jest wykonywalny, 181 00:13:13,000 --> 00:13:15,000 więc trzeba rzeczywiście iść i zrobić to ręcznie. 182 00:13:15,000 --> 00:13:22,000 Najprostszym sposobem na to jest za pomocą polecenia chmod, 183 00:13:22,000 --> 00:13:28,000 i chmod + x mówi dodać trochę wykonywalny 184 00:13:28,000 --> 00:13:31,000 bo nie ma odczytu bit, bit zapisu i bit wykonywalny, 185 00:13:31,000 --> 00:13:35,000 R, W, X, 186 00:13:35,000 --> 00:13:39,000 i mówiąc: chmod + x włączy bit wykonywalny 187 00:13:39,000 --> 00:13:46,000 Następnie do pliku, które określają, które w tym przypadku będzie dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Student] Czy to jest włączone na wszystkich? 189 00:13:49,000 --> 00:13:52,000 Chodźmy to sprawdzić, tak jak byłoby sprawdzić uprawnienia? 190 00:13:52,000 --> 00:13:54,000 Czy wiesz, jak ja sprawdzić uprawnienia pliku? 191 00:13:54,000 --> 00:13:56,000 [Niesłyszalne odpowiedź uczeń] 192 00:13:56,000 --> 00:13:58,000 Przepraszam? >> [Student] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD daje nam plik w hacków. 194 00:14:03,000 --> 00:14:09,000 Wykaz wszystkich plików,-l pokaże mi wszystkie pliki w moim katalogu 195 00:14:09,000 --> 00:14:13,000 rodzaju w ich długiej liście informacji pełnej, a więc tutaj widzimy, że 196 00:14:13,000 --> 00:14:17,000 Plik ten dynamic.php 197 00:14:17,000 --> 00:14:23,000 ostatnio zmodyfikowano 05 listopada o 16:21. 198 00:14:23,000 --> 00:14:26,000 Właściciel tego pliku jest jharvard. 199 00:14:26,000 --> 00:14:28,000 To użytkownik jest zalogowany 200 00:14:28,000 --> 00:14:31,000 To użytkownik Pracuję jak 201 00:14:31,000 --> 00:14:36,000 a jeśli jesteś również w urządzeniu masz również pracuje jako jharvard użytkownika. 202 00:14:36,000 --> 00:14:38,000 Jesteś w grupie studentów, 203 00:14:38,000 --> 00:14:44,000 i to są rzeczy, które zobaczysz wystarczająco często. 204 00:14:44,000 --> 00:14:47,000 >> Możemy pójść na wiele szczegółów tutaj 205 00:14:47,000 --> 00:14:50,000 ale w większości to, co chcesz patrzeć, jeśli szukasz, aby zobaczyć 206 00:14:50,000 --> 00:14:55,000 czy plik jest wykonywalny jest przede wszystkim 207 00:14:55,000 --> 00:14:58,000 użytkownik, który jest właścicielem pliku, właściciel, 208 00:14:58,000 --> 00:15:03,000 więc jharvard, a następnie mamy 209 00:15:03,000 --> 00:15:07,000 uprawnienia bity tu na lewo, 210 00:15:07,000 --> 00:15:13,000 i sposobem, aby przeczytać to, że ostatni bit 211 00:15:13,000 --> 00:15:18,000 zazwyczaj stosuje się do oznaczania, czy nie, co najmniej w tym przypadku, 212 00:15:18,000 --> 00:15:21,000 ten ostatni bit często będzie ustawiony na reklamy, aby wskazać 213 00:15:21,000 --> 00:15:24,000 że plik jest katalogiem, a nie tylko zwykły plik. 214 00:15:24,000 --> 00:15:28,000 Następnie dodaje się 3 bity właśnie tutaj 215 00:15:28,000 --> 00:15:34,000 określenia uprawnień, które właściciel pliku ma, 216 00:15:34,000 --> 00:15:38,000 więc w tym jharvard przypadku, jako właściciel pliku, może odczytywać i zapisywać ten plik, 217 00:15:38,000 --> 00:15:42,000 ale jest powiedzenie, że jharvard kreska nie może wykonać ten plik. 218 00:15:42,000 --> 00:15:46,000 Kolejne 3 bity są w grupie, więc jest to grupa studentów, 219 00:15:46,000 --> 00:15:49,000 więc jeśli nie było wielu użytkowników na moim urządzeniu, 220 00:15:49,000 --> 00:15:52,000 i mieliśmy wielu użytkowników jako część grupy studenckiej, 221 00:15:52,000 --> 00:15:55,000 następnie można je wszystkie odczytać ten plik, ale nie mogą napisać, 222 00:15:55,000 --> 00:15:59,000 i podobnie, ktoś inny, świat 223 00:15:59,000 --> 00:16:01,000 może odczytać ten plik, jak również. 224 00:16:01,000 --> 00:16:03,000 Jest dobry, długi writeup o tym, 225 00:16:03,000 --> 00:16:05,000 dzięki czemu można przeczytać online. 226 00:16:05,000 --> 00:16:10,000 W specyfikacji zadanej problemu idziemy do tego bardziej szczegółowo. 227 00:16:10,000 --> 00:16:12,000 >> [Student] Czy 218 powołując się na świecie? 228 00:16:12,000 --> 00:16:17,000 218-off jest w mojej głowie Jestem zapominając 229 00:16:17,000 --> 00:16:20,000 ale nie. 230 00:16:20,000 --> 00:16:29,000 Zobaczmy. Jestem wygaszania tego teraz. 231 00:16:29,000 --> 00:16:32,000 Powrót do tego, co mieliśmy zamiar zrobić z tym chmod + x 232 00:16:32,000 --> 00:16:37,000 gdzie chcieliśmy dać dynamic.php uprawnienia wykonywalne 233 00:16:37,000 --> 00:16:40,000 i pytanie czy to da uprawnienia wykonywalne dla wszystkich 234 00:16:40,000 --> 00:16:44,000 lub po prostu jharvard, a my możemy zobaczyć przez 235 00:16:44,000 --> 00:16:48,000 uruchamianie poleceń i wpisując ls-l, 236 00:16:48,000 --> 00:16:51,000 i teraz widzimy, że jest to atrybut wykonywalności. 237 00:16:51,000 --> 00:16:54,000 Widać, że nastąpiła zmiana koloru. 238 00:16:54,000 --> 00:16:57,000 Teraz dynamic.php jest wymieniony w kolorze zielonym, 239 00:16:57,000 --> 00:17:01,000 i wygląda na to odpowiedź na pytanie, co, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Tylko jharvard. >> Tylko jharvard, yeah. 241 00:17:04,000 --> 00:17:08,000 >> Jeśli chcemy włączyć bit wykonywalny dla wszystkich 242 00:17:08,000 --> 00:17:10,000 w jaki sposób możemy to zrobić? 243 00:17:10,000 --> 00:17:13,000 Wszelkie myśli? >> + X? 244 00:17:13,000 --> 00:17:15,000 Tak, dokładnie. 245 00:17:15,000 --> 00:17:23,000 Charlotte mówi możemy zrobić chmod o + x dynamic.php, 246 00:17:23,000 --> 00:17:26,000 a teraz, gdy uruchomimy ls-l widzimy, że bity wykonywalności 247 00:17:26,000 --> 00:17:30,000 rzeczywiście są włączone dla każdego. 248 00:17:30,000 --> 00:17:37,000 I rzeczywiście można zrobić przeciwieństwo tego, więc możesz wyłączyć go dla każdego 249 00:17:37,000 --> 00:17:41,000 przy minus. 250 00:17:41,000 --> 00:17:46,000 Teraz jest wyłączony, a teraz możemy go włączyć do jharvard 251 00:17:46,000 --> 00:17:52,000 tak, że rzeczywiście możemy uruchomić go teraz, 252 00:17:52,000 --> 00:17:58,000 i teraz widzisz, kiedy uruchomić kod ten specjalny #! linia na górze, 253 00:17:58,000 --> 00:18:04,000 #! line, powiedział powłoki, 254 00:18:04,000 --> 00:18:08,000 powiedział nasz terminal hej, gdy plik ten jest uruchamiany, 255 00:18:08,000 --> 00:18:14,000 używać / usr / bin / php interpretować ten plik 256 00:18:14,000 --> 00:18:20,000 a następnie wydrukować wynik. 257 00:18:20,000 --> 00:18:22,000 [Niesłyszalne pytanie uczeń] 258 00:18:22,000 --> 00:18:25,000 Jasne, pozwól mi przejść z powrotem. Właśnie tak. 259 00:18:25,000 --> 00:18:36,000 Zobaczysz wszystkich tych dyrektyw zacząć z tym funta i wykrzyknik, 260 00:18:36,000 --> 00:18:39,000 czasem nazywany shebang, hash huk. 261 00:18:39,000 --> 00:18:48,000 >> [Animacja] Jak można uruchomić go z dynamic.php php zanim uczynić go wykonywalnym? 262 00:18:48,000 --> 00:18:55,000 Pytanie było jak można uruchomić to używając binariów PHP 263 00:18:55,000 --> 00:18:58,000 podczas dynamic.php nie jest wykonywalny? 264 00:18:58,000 --> 00:19:01,000 To jest super ważne, ponieważ jest to dokładnie tak, jak 265 00:19:01,000 --> 00:19:06,000 to będzie działać, gdy piszesz zestaw problemów 7. 266 00:19:06,000 --> 00:19:09,000 Większość plików PHP czasu nie są bezpośrednio wykonywalny. 267 00:19:09,000 --> 00:19:14,000 Sposób, że działa to, ponieważ jest to PHP binarny to plik wykonywalny. 268 00:19:14,000 --> 00:19:16,000 Interpreter jest rzecz, która jest wykonywana, 269 00:19:16,000 --> 00:19:20,000 i tak to, co robi jest dosłownie slurping w całej zawartości 270 00:19:20,000 --> 00:19:25,000 naszego dynamic.php pliku i kontynuacji linia po linii 271 00:19:25,000 --> 00:19:29,000 i wykonanie tych poleceń, więc to za pomocą naszego pliku PHP 272 00:19:29,000 --> 00:19:31,000 w liście instrukcji. 273 00:19:31,000 --> 00:19:36,000 To nie jest bezpośrednio jej wykonywania. 274 00:19:36,000 --> 00:19:40,000 To miejsce, gdzie możemy powiedzieć, że te pliki są interpretowane w czasie wykonywania. 275 00:19:40,000 --> 00:19:46,000 Jest prowadzony język razem zamiast coś, co określona w czasie kompilacji, 276 00:19:46,000 --> 00:19:49,000 nie opracowano język jak C 277 00:19:49,000 --> 00:19:54,000 >> Czy istnieje sposób, aby dostać się języka czasie wykonywania działać tak, jakby to język czasu kompilacji 278 00:19:54,000 --> 00:19:58,000 podoba, jeśli masz cały bieg odbywa się na serwerze 279 00:19:58,000 --> 00:20:00,000 zamiast-wiesz co mam na myśli? 280 00:20:00,000 --> 00:20:04,000 Tak, więc pytanie jest 281 00:20:04,000 --> 00:20:11,000 czy jest jakiś sposób, aby uruchomić języków czas działać bardziej jak kompilacji typów czasowych językach? 282 00:20:11,000 --> 00:20:18,000 I tam są, to znaczy, że jest aktywnym obszarem badań dla wielu z tych firm. 283 00:20:18,000 --> 00:20:22,000 Wierzę Facebook zrobił dużo pracy z PHP 284 00:20:22,000 --> 00:20:25,000 i opracowywania go w dół, dzięki czemu jest szybszy, optymalizując go 285 00:20:25,000 --> 00:20:29,000 ponieważ ich strona jest zbudowana na PHP. 286 00:20:29,000 --> 00:20:34,000 Jeśli już po node.js w ogóle, 287 00:20:34,000 --> 00:20:40,000 który jest rodzajem tłumacza JavaScriptu 288 00:20:40,000 --> 00:20:44,000 aby móc uruchomić JavaScript poza przeglądarką, poza swojej przeglądarce internetowej, 289 00:20:44,000 --> 00:20:47,000 bo tradycyjnie JavaScript po prostu uruchomić wewnątrz Firefox lub Chrome, 290 00:20:47,000 --> 00:20:52,000 i to zostać wykorzystane do fajne animacje się na stronie internetowej 291 00:20:52,000 --> 00:20:55,000 i dokonać strona dynamiczna. 292 00:20:55,000 --> 00:20:59,000 , Które zostało zbudowane na dużo pracy, że Google zrobił 293 00:20:59,000 --> 00:21:03,000 do JavaScript i C + + 294 00:21:03,000 --> 00:21:09,000 powiązać ze sobą, więc nie ma dużo aktywnych badań do 295 00:21:09,000 --> 00:21:13,000 dostać te języki do interakcji i ich optymalizacji, 296 00:21:13,000 --> 00:21:17,000 przede wszystkim dlatego, że tak wiele osób może kodować w PHP i JavaScript 297 00:21:17,000 --> 00:21:19,000 ponieważ jest to o wiele łatwiejsze. 298 00:21:19,000 --> 00:21:21,000 Jest o wiele ładniejszy. Nie masz wskaźniki. 299 00:21:21,000 --> 00:21:27,000 Nie masz rodzajów pływających wokół. 300 00:21:27,000 --> 00:21:31,000 Chcieli uzyskać korzyści z tych języków w czasie kompilacji 301 00:21:31,000 --> 00:21:36,000 wszelkich kontroli typu oraz prędkość i mniejsze zużycie pamięci, a wszystko to 302 00:21:36,000 --> 00:21:42,000 przy jednoczesnym zachowaniu elastyczności i łatwości korzystania z tych nowszych. 303 00:21:42,000 --> 00:21:46,000 >> Powrót do naszego pierwotnego planu ataku. 304 00:21:46,000 --> 00:21:50,000 Mamy kilka z tych pytań w naszym specyfikacji zestaw problemów. 305 00:21:50,000 --> 00:21:54,000 Przejdźmy przez nich bardzo szybko, a my go po całym pokoju. 306 00:21:54,000 --> 00:21:59,000 Charlotte, jakiego typu jest 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] To podwójnie. >> To jest podwójne. 308 00:22:01,000 --> 00:22:03,000 Jimmy, co to jest następny? >> Tablicy. 309 00:22:03,000 --> 00:22:09,000 Array, niesamowite, a Jared, co jest fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] To źródło. >> To jest zasób. 311 00:22:11,000 --> 00:22:15,000 To dość nowy, a nie gwiazdy pliku, a nie pliku. 312 00:22:15,000 --> 00:22:19,000 To źródło jest typ w PHP, 313 00:22:19,000 --> 00:22:24,000 i przepraszam, Ella, ostatnio null jest co? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, jak to jest napisane w PHP? >> Ten sam sposób. 316 00:22:28,000 --> 00:22:30,000 Sam sposób, stolice? >> Tak. 317 00:22:30,000 --> 00:22:33,000 Tak, wszystko w porządku. 318 00:22:33,000 --> 00:22:35,000 Tutaj idziemy, mamy podwójne, mamy tablicę, 319 00:22:35,000 --> 00:22:41,000 mamy do zasobu, a następnie mamy null. 320 00:22:41,000 --> 00:22:48,000 Zobaczmy teraz Widziałeś- 321 00:22:48,000 --> 00:22:51,000 Zobaczmy, więc teraz myślę, co ja też chcę zrobić, to wyciągnąć 322 00:22:51,000 --> 00:22:56,000 strona ta tutaj, to php.net / manual, 323 00:22:56,000 --> 00:23:01,000 więc jeśli chłopaki kopią i otworzyć przeglądarkę internetową. 324 00:23:01,000 --> 00:23:07,000 Zamierzam wyciągnąć Chrome, umieścić, że widok 325 00:23:07,000 --> 00:23:10,000 Chcę pokazać wam to nie tylko dlatego, 326 00:23:10,000 --> 00:23:13,000 możemy rozmawiać przez cały dzień o typach i wszystkie rzeczy zabawa 327 00:23:13,000 --> 00:23:19,000 ale ponieważ jest to podręcznik PHP, 328 00:23:19,000 --> 00:23:23,000 i istnieje wiele programistów PHP tam. 329 00:23:23,000 --> 00:23:26,000 Istnieje wiele stron internetowych PHP, tam, 330 00:23:26,000 --> 00:23:31,000 i w rezultacie, jest dużo dokumentacji na PHP, 331 00:23:31,000 --> 00:23:36,000 i obsługi, to php.net, jest naprawdę dobre miejsce 332 00:23:36,000 --> 00:23:43,000 gdy masz pytania dotyczące tego, co jest najlepszym sposobem, aby zrobić X w PHP 333 00:23:43,000 --> 00:23:45,000 lub co robi funkcja wygląda? 334 00:23:45,000 --> 00:23:49,000 Tylko rodzaj poznania, jak to wygląda, bo 335 00:23:49,000 --> 00:23:54,000 będziesz tak tu często, bit problemu ustawić 7. 336 00:23:54,000 --> 00:23:57,000 >> Jeśli kończy się robi ostateczny projekt, który wykorzystuje PHP 337 00:23:57,000 --> 00:24:04,000 będzie to miejsce, będziesz się bardzo dobrze zna. 338 00:24:04,000 --> 00:24:09,000 Często sposób ludzie to wykorzystują Google do wyszukiwania w witrynie, 339 00:24:09,000 --> 00:24:16,000 i nie użyć pola wyszukiwania, które znajduje się tutaj, w prawym górnym rogu, który jest swego rodzaju małe. 340 00:24:16,000 --> 00:24:19,000 Jeśli Googling wokół czegoś zrobić z PHP i widzisz 341 00:24:19,000 --> 00:24:24,000 jeden z ręcznych łączy pop zazwyczaj można liczyć na, że 342 00:24:24,000 --> 00:24:31,000 jako zasób dość dobrym stanie. 343 00:24:31,000 --> 00:24:34,000 Niesamowite, tak z tych typów, tak z ciekawości, 344 00:24:34,000 --> 00:24:37,000 które z nich nie widzieliśmy? 345 00:24:37,000 --> 00:24:40,000 Wszystko, czego nie widzieliśmy tutaj? 346 00:24:40,000 --> 00:24:44,000 [Student] zasobów. >> Widzieliśmy zasób zaproszenia fopen. 347 00:24:44,000 --> 00:24:48,000 [Student] obiektów. Obiekty >> nie widzieliśmy na pewno. 348 00:24:48,000 --> 00:24:51,000 Callbacki nie widzieliśmy. 349 00:24:51,000 --> 00:24:54,000 Istnieje kilka typów tych pseudo. 350 00:24:54,000 --> 00:24:57,000 Na pewno widziałem tylko całkowitą i dwuosobowych. 351 00:24:57,000 --> 00:25:01,000 Nie widzieliśmy kilka innych, jeśli więc kliknij na liczby całkowite 352 00:25:01,000 --> 00:25:08,000 możemy zobaczyć, czy są jakieś inne liczby całkowite, że tu mamy? 353 00:25:08,000 --> 00:25:11,000 Czy wszystkie są-tak integer, integer, integer. 354 00:25:11,000 --> 00:25:14,000 Niektóre języki mają większe całkowite typy, 355 00:25:14,000 --> 00:25:23,000 jak widzieliśmy na MySQL dzisiaj było int a następnie big int. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Więc obsługi PHP. 358 00:25:28,000 --> 00:25:37,000 Wróćmy do naszego zbioru specyfikacji problemu, a my teraz przejść do strony 4. 359 00:25:37,000 --> 00:25:41,000 Jedną z rzeczy, które się dzieje, gdy masz te języki 360 00:25:41,000 --> 00:25:49,000 , że nie ma tego statycznego typowania, więc te języki, gdzie trzeba zadeklarować 361 00:25:49,000 --> 00:25:52,000 Rodzaj zmiennej przodu aż 362 00:25:52,000 --> 00:26:00,000 jest dostać przypadki można rozpocząć o zmiennych różnych typów 363 00:26:00,000 --> 00:26:04,000 współdziałających ze sobą, 364 00:26:04,000 --> 00:26:09,000 PHP i robi to coś, gdzie stara się zrobić 365 00:26:09,000 --> 00:26:13,000 to, co uważa za najbardziej rozsądną rzeczą 366 00:26:13,000 --> 00:26:18,000 gdy są 2 różne rodzaje współdziałania z sobą. 367 00:26:18,000 --> 00:26:24,000 Na przykład, jeśli spojrzeć na te linie kodu tutaj 368 00:26:24,000 --> 00:26:29,000 widać, że mamy to, co się dzieje, gdy 369 00:26:29,000 --> 00:26:38,000 spróbować i dodać ciąg 1 do całkowitej 2. 370 00:26:38,000 --> 00:26:41,000 Co się stanie, jeśli spróbujemy dodać ciąg, który nie jest wartością liczbową 371 00:26:41,000 --> 00:26:48,000 ale rzeczywiste znaków, CS w ilości 50? 372 00:26:48,000 --> 00:26:51,000 Wtedy zobaczymy, czy jest coś, co dzieje się, gdy inna 373 00:26:51,000 --> 00:26:56,000 zamiast dodawać ciąg znaków na liczbę dodajemy liczbę na ciąg znaków, 374 00:26:56,000 --> 00:27:00,000 i tak dalej i tak dalej do punktu, w którym jesteśmy coraz 375 00:27:00,000 --> 00:27:05,000 jakieś dziwne rzeczy tu, gdzie mamy 7 + true. 376 00:27:05,000 --> 00:27:09,000 Co do cholery ma znaczyć? 377 00:27:09,000 --> 00:27:19,000 >> Jeśli faceci śmiało i wklej część tego kodu do twojego urządzenia. 378 00:27:19,000 --> 00:27:27,000 Można przechowywać go w dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Zobaczymy, co się wydarzy. 380 00:27:41,000 --> 00:27:43,000 [Student] Wystarczy użyć wydruku nie, printf? 381 00:27:43,000 --> 00:27:52,000 Tak, tak, przekonasz się, że druk jest także ważna funkcja drukowania w PHP. 382 00:27:52,000 --> 00:27:54,000 Istnieje wiele różnych sposobów na to zrobić. 383 00:27:54,000 --> 00:27:58,000 Zobaczymy z kilka przykładów później raz zaczniemy mówić 384 00:27:58,000 --> 00:28:02,000 o unikalnej problemu, który mamy zamiar napisać 385 00:28:02,000 --> 00:28:06,000 i wtedy problem stężenia, że ​​będziemy pisać 386 00:28:06,000 --> 00:28:09,000 że nawet jeśli mamy fopen i fclose 387 00:28:09,000 --> 00:28:15,000 że nie jest często najprostszym sposobem, aby przeczytać w treści pliku. 388 00:28:15,000 --> 00:28:21,000 PHP ma wiele tych holdovers C-podobnych. 389 00:28:21,000 --> 00:28:28,000 [Student] Kiedy mogę umieścić we wszystkich 6 z tych rzeczy, tylko jeden numer jako wyjście. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Kiedy można umieścić we wszystkich 6 z tych rzeczy. 391 00:28:36,000 --> 00:28:39,000 Zobaczmy, czy to dlatego, że jest możliwe, 392 00:28:39,000 --> 00:28:46,000 jedną rzeczą jest to, że takie rozmowy drukujące nie są zakończone na koniec z nowych linii. 393 00:28:46,000 --> 00:28:49,000 Nie ma nowa linia dzieląca każdego zaproszenia do drukowania 394 00:28:49,000 --> 00:28:51,000 więc może dostajesz jeden duży numer, 395 00:28:51,000 --> 00:28:58,000 i to jest tak naprawdę połączeniem nowych postaci linii. 396 00:28:58,000 --> 00:29:00,000 [Student] Dobra, jak mam się upewnić, 397 00:29:00,000 --> 00:29:03,000 Cóż, jest kilka różnych sposobów. 398 00:29:03,000 --> 00:29:06,000 Można ręcznie umieścić w druk znaku nowego wiersza, 399 00:29:06,000 --> 00:29:09,000 echo znaku nowego wiersza, 400 00:29:09,000 --> 00:29:12,000 wydrukować z nowej linii. 401 00:29:12,000 --> 00:29:16,000 [Student] Więc echo jest to samo co printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf jest jak C printf 403 00:29:21,000 --> 00:29:24,000 gdzie jesteś drukowania sformatowany ciąg. 404 00:29:24,000 --> 00:29:32,000 Jesteś dostarczanie mu ciąg formatu, a następnie wszystkich zmiennych zastępczych. 405 00:29:32,000 --> 00:29:39,000 Często coś, co nie jest używane, 406 00:29:39,000 --> 00:29:42,000 Zobaczmy, jak zrzeczenie się, 407 00:29:42,000 --> 00:29:48,000 Nie znam z PHP, niż ja z innych języków internetowych, 408 00:29:48,000 --> 00:29:53,000 i kiedy zostały zaprogramowane w PHP I zwykle nie używać printf 409 00:29:53,000 --> 00:29:59,000 ponieważ uważam, że szybciej się wykorzystać możliwości interpolacji ciąg znaków, który ma, 410 00:29:59,000 --> 00:30:04,000 które będziemy wchodzić, a ja pokażę ci tylko sekundy, 411 00:30:04,000 --> 00:30:08,000 natomiast w C mamy rodzaj tego robić hacky rzeczy, aby ją wydrukować poprawnie. 412 00:30:08,000 --> 00:30:16,000 Faktycznie możesz umieścić zmienne bezpośrednio do ciągów w PHP. 413 00:30:16,000 --> 00:30:22,000 Printf jest trochę zbyt długi na to, co zwykle. Tak, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] Generalnie jeśli masz błąd parse znaczy- 415 00:30:25,000 --> 00:30:30,000 jak na C nie powiedzieć dokładnie, gdzie błąd jest i co to jest, 416 00:30:30,000 --> 00:30:34,000 tak to znaczy patrzeć przez całego kodu i zrozumieć to? 417 00:30:34,000 --> 00:30:39,000 Jest to zwykle bardziej ukierunkowane niż. 418 00:30:39,000 --> 00:30:48,000 Myślę, że w tym przypadku było trochę off, 419 00:30:48,000 --> 00:30:51,000 więc myślę, że w tym przypadku nam brakowało średnika. 420 00:30:51,000 --> 00:30:54,000 To stara się zrozumieć wszystkiego, 421 00:30:54,000 --> 00:30:57,000 tak jak tych języków tłumaczeń, tłumacz będzie spróbować 422 00:30:57,000 --> 00:31:01,000 i zrobić wszystko, by uczynić wszystko działa prawidłowo. 423 00:31:01,000 --> 00:31:04,000 >> Zobaczysz, na przykład, w JavaScript 424 00:31:04,000 --> 00:31:10,000 będziesz często-line wypowiedzi kończyć się średnikiem, tak jak robią w PHP, 425 00:31:10,000 --> 00:31:13,000 tak, jak w C. 426 00:31:13,000 --> 00:31:15,000 W JavaScript niektórych interpretatorów JavaScript 427 00:31:15,000 --> 00:31:20,000 w wielu przeglądarkach wprowadzi średnikami dla Ciebie 428 00:31:20,000 --> 00:31:23,000 jeśli zdarzy się, że brakuje im. 429 00:31:23,000 --> 00:31:29,000 Będą próbować zmieścić jakiegoś niechlujstwa ze strony użytkownika. 430 00:31:29,000 --> 00:31:34,000 To miejsce, gdzie może to być stara i próbuje i próbuje dokonać rzeczy praca, 431 00:31:34,000 --> 00:31:36,000 i wreszcie będzie dostać się do punktu, w którym jest napisane w porządku, 432 00:31:36,000 --> 00:31:38,000 Nie mogę zrobić to wszystko działa na ratowanie, i tam dostaniesz numer linii 433 00:31:38,000 --> 00:31:44,000 To może wydawać się trochę off od dokładnego miejsca. 434 00:31:44,000 --> 00:31:47,000 Ok, więc chodźmy przez to bardzo szybko. 435 00:31:47,000 --> 00:31:50,000 Skończyliśmy z Ellą, więc niech idą do Missy, 436 00:31:50,000 --> 00:31:54,000 i Missy, co to print ciąg 1 powiększonej o liczbę 2 dać? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Czy to ma sens? Tak jakby? 439 00:31:59,000 --> 00:32:02,000 Czy to daje numer? Czy to daje ciąg? 440 00:32:02,000 --> 00:32:05,000 [Missy] numer. >> To jest liczba. 441 00:32:05,000 --> 00:32:09,000 Ale to jego drukowania, więc to będzie Ci jakiś ciąg. 442 00:32:09,000 --> 00:32:12,000 >> Jedną rzeczą, którą możemy zrobić, aby to sprawdzić 443 00:32:12,000 --> 00:32:21,000 jest, jeśli mamy $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 i wtedy mówimy echo gettype, 445 00:32:28,000 --> 00:32:33,000 więc używamy trzeci rodzaj drukowania tutaj. 446 00:32:33,000 --> 00:32:39,000 Teraz możemy zobaczyć, co się tutaj dzieje. 447 00:32:39,000 --> 00:32:42,000 Oto co mamy to mamy liczbę całkowitą z tego. 448 00:32:42,000 --> 00:32:45,000 Mimo, że byliśmy dodając ten ciąg na liczbę, 449 00:32:45,000 --> 00:32:48,000 nie mieliśmy ciąg z tym, tak jak Missy powiedział. 450 00:32:48,000 --> 00:32:52,000 Byliśmy coraz liczbę całkowitą. 451 00:32:52,000 --> 00:32:57,000 Okay, więc zobaczymy, obok up, Kevina. 452 00:32:57,000 --> 00:32:59,000 CS + 50? >> [Kevin] 50. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Czy to ma sens? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Tak. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Dlaczego? Dlaczego to dla ciebie sens? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Bo to tylko o ciąg, mając zero numeryczny. 457 00:33:11,000 --> 00:33:16,000 Tak, świetnie. 458 00:33:16,000 --> 00:33:20,000 Rodzaj dwuznacznych sytuacjach, ale dobrze jest wiedzieć, co się dzieje. 459 00:33:20,000 --> 00:33:25,000 Stella, co dzieje się dalej z numerem 1 + łańcuch 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3. >> 3 ponownie. 461 00:33:27,000 --> 00:33:30,000 I w tym przypadku, nie mamy ciąg lub numer? 462 00:33:30,000 --> 00:33:36,000 >> Dajmy to spróbować. 463 00:33:36,000 --> 00:33:43,000 Szybciej niż ktokolwiek mi uzyskać odpowiedź? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, Ja nie, dobra, zobaczymy, mamy zamiar zrobić to samo coś takiego 465 00:33:46,000 --> 00:33:49,000 gdzie mamy szereg plus łańcuch i będziemy echo rodzaj, 466 00:33:49,000 --> 00:33:51,000 zobacz, co mamy. 467 00:33:51,000 --> 00:33:55,000 Również uzyskać liczbę całkowitą. 468 00:33:55,000 --> 00:33:58,000 Nie ma znaczenia, który z nich jest łańcuch, który z nich jest liczba. 469 00:33:58,000 --> 00:34:00,000 Wciąż dostanie liczbę całkowitą. 470 00:34:00,000 --> 00:34:04,000 To nadal będziemy robić, co możemy oczekiwać. 471 00:34:04,000 --> 00:34:09,000 W porządku, więc Sam, co o 90 + 9 butelek piwa na ścianie? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Brak butelki piwa na ścianie, choć. 474 00:34:15,000 --> 00:34:17,000 To daje nam trochę więcej informacji o tym, co się dzieje. 475 00:34:17,000 --> 00:34:21,000 [Sam] Jeśli napisał 9 literami 476 00:34:21,000 --> 00:34:23,000 wtedy masz 90, prawda? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Tak. 478 00:34:26,000 --> 00:34:30,000 Pytanie było, gdybyśmy napisana 9 się jako N-I-N-E 479 00:34:30,000 --> 00:34:34,000 możemy dostać 99 lub 90? 480 00:34:34,000 --> 00:34:38,000 Chcemy zdobyć 90. 481 00:34:38,000 --> 00:34:42,000 Jest to dosłownie po prostu patrząc na cyfrowych znaków. 482 00:34:42,000 --> 00:34:46,000 To nie jest wystarczająco inteligentny, aby rozpoznawać słowa numerycznych i takie rzeczy. Tak. 483 00:34:46,000 --> 00:34:48,000 >> [Student] Czy istnieje coś takiego jak Rzutowanie w PHP? 484 00:34:48,000 --> 00:34:54,000 Jest, i to dokładnie tak, jak chcesz to zrobić w C. 485 00:34:54,000 --> 00:34:56,000 Co 10/7, Charlotte? 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1,4285. 487 00:34:58,000 --> 00:35:01,000 [Nate H.] Tak, tak, co może być zaskakujące, o tym? 488 00:35:01,000 --> 00:35:04,000 Co by się stało, jeśli nie tego samego rodzaju rzeczy w C, 489 00:35:04,000 --> 00:35:06,000 jeśli nie 10/7 w C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Trzeba tylko dać you-w zależności od sposobu typecasted myślę 491 00:35:08,000 --> 00:35:12,000 to daje tylko ograniczoną liczbę cyfr po przecinku. 492 00:35:12,000 --> 00:35:16,000 Tak, więc ograniczona liczba cyfr po przecinku. 493 00:35:16,000 --> 00:35:21,000 Co jeszcze może być-to daje żadnych cyfr po przecinku? 494 00:35:21,000 --> 00:35:28,000 Często nie, więc ponownie, w zależności od tego, jak jesteś Rzutowanie to 495 00:35:28,000 --> 00:35:31,000 może lub nie może przekonwertować go na liczbę zmiennoprzecinkową. 496 00:35:31,000 --> 00:35:35,000 Tutaj było to miłe, że tak się stało. 497 00:35:35,000 --> 00:35:40,000 Gdybyśmy Pokazałem wam to z powrotem, kiedy zaczęliśmy robić takie rzeczy w C 498 00:35:40,000 --> 00:35:44,000 prawdopodobnie zrobiłby trochę więcej sensu 499 00:35:44,000 --> 00:35:48,000 że nie po prostu pójść do 1. 500 00:35:48,000 --> 00:35:51,000 I w końcu, Jamie, co 7 + prawda? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Co to znaczy? 503 00:35:56,000 --> 00:35:58,000 Myślę, że to po prostu daje prawdziwą wartość 1. 504 00:35:58,000 --> 00:36:01,000 Tak. Co się stanie, jeśli to zmienić na false? 505 00:36:01,000 --> 00:36:04,000 [Student] 7. 506 00:36:04,000 --> 00:36:09,000 Tak, tak, pamiętam, gdzie mówimy o tych wartościach binarnych, 507 00:36:09,000 --> 00:36:12,000 1 jest włączony, 0 jest off? 508 00:36:12,000 --> 00:36:17,000 Teraz mamy prawdziwy jest 1, 0 jest fałszywa, 509 00:36:17,000 --> 00:36:21,000 i może nie widziałem tego w przykładach C, które zrobiliśmy w ostatni semestr, 510 00:36:21,000 --> 00:36:27,000 ale historycznie typ bool w C nie jest prawdziwy typ, 511 00:36:27,000 --> 00:36:32,000 więc ludzie używali 0 i 1 w miejsce prawdy i fałszu. 512 00:36:32,000 --> 00:36:35,000 Jest to przejaw tego. 513 00:36:35,000 --> 00:36:39,000 >> Ok, więc jeden ważny element w tym wszystkim 514 00:36:39,000 --> 00:36:41,000 jest to, że mamy te różne typy. 515 00:36:41,000 --> 00:36:43,000 Mogą komunikować się ze sobą. 516 00:36:43,000 --> 00:36:49,000 Często mogą komunikować się ze sobą w sposób, który jest miły, jak widzieliśmy tutaj. 517 00:36:49,000 --> 00:36:53,000 Miło jest móc mieć ciąg 1 i numer 2, dodaj je razem i 3. 518 00:36:53,000 --> 00:36:55,000 To ma sens. 519 00:36:55,000 --> 00:36:59,000 Jednak, kiedy piszesz stron internetowych, a zwłaszcza, gdy jesteś przetwarzania 520 00:36:59,000 --> 00:37:04,000 wprowadzania danych przez użytkownika, więc powiedzieć, że napisałem formularz internetowy 521 00:37:04,000 --> 00:37:09,000 , że zbiera informacji od użytkownika, a następnie przechodzi do przetwarzać 522 00:37:09,000 --> 00:37:13,000 na tylnym końcu, po stronie serwera, w kodzie PHP 523 00:37:13,000 --> 00:37:18,000 jeśli spodziewasz się, że wartości, które użytkownik wpisze w i przedłożone 524 00:37:18,000 --> 00:37:23,000 do formularza być liczbą całkowitą lub być liczbą zmiennoprzecinkową czy coś takiego 525 00:37:23,000 --> 00:37:29,000 trzeba jawnie oddanych 526 00:37:29,000 --> 00:37:34,000 a następnie zrób sprawdzanie typu. 527 00:37:34,000 --> 00:37:41,000 >> Nie chcesz, aby po prostu polegać na tym systemie żonglerki typu do rzeczy wyszło, 528 00:37:41,000 --> 00:37:48,000 zwłaszcza ze względu na bezpieczeństwo i po prostu solidnie swojej stronie. 529 00:37:48,000 --> 00:37:51,000 Po prostu coś, aby pamiętać, że kiedy jesteś obsługi danych z formularzy 530 00:37:51,000 --> 00:37:57,000 coś, co jest w poście lub superglobals get 531 00:37:57,000 --> 00:38:01,000 upewnij się, że zawsze potwierdzić go i przekształci i typecast go. 532 00:38:01,000 --> 00:38:04,000 I tak jak rozmawialiśmy przed chwilą, że Rzutowanie 533 00:38:04,000 --> 00:38:08,000 w PHP jest dokładnie taki sam jak w C, gdzie masz nawiasy 534 00:38:08,000 --> 00:38:14,000 i typu. 535 00:38:14,000 --> 00:38:16,000 Miej to na uwadze. 536 00:38:16,000 --> 00:38:19,000 Jedną z funkcji, która będzie przydatna, gdy robisz to 537 00:38:19,000 --> 00:38:22,000 jest używaliśmy i jest to rodzaj w bok- 538 00:38:22,000 --> 00:38:27,000 używaliśmy tej funkcji GetType tutaj 539 00:38:27,000 --> 00:38:30,000 dowiedzieć się typ zmiennej, 540 00:38:30,000 --> 00:38:37,000 i podczas gdy jest to przydatne do debugowania i zobaczyć, co Typ zmiennej jest 541 00:38:37,000 --> 00:38:42,000 nie ma ich używać, na przykład, w stanie, w którym 542 00:38:42,000 --> 00:38:57,000 pan sprawdzając czy gettype z $ var = INTEGER coś zrobić. 543 00:38:57,000 --> 00:39:01,000 To jest złe, złe, złe. 544 00:39:01,000 --> 00:39:09,000 Zamiast tego są te funkcje wywoływane jest liczbą całkowitą, to ciąg znaków, 545 00:39:09,000 --> 00:39:14,000 jest tablica, że ​​chcesz używać zamiast, tak więc w tym przypadku 546 00:39:14,000 --> 00:39:18,000 co chcę zrobić, a nie tego faceta tutaj 547 00:39:18,000 --> 00:39:31,000 jest używać jest liczbą całkowitą var. 548 00:39:31,000 --> 00:39:37,000 I są one często określane jest * is_ w tym sensie, że można zastąpić * z liczby całkowitej, 549 00:39:37,000 --> 00:39:43,000 string, et cetera, i po prostu upewnić się, naprawdę szybkie 550 00:39:43,000 --> 00:39:50,000 jest to int php. 551 00:39:50,000 --> 00:39:59,000 Wygląda tak, jak można to zrobić albo jest int lub jest liczbą całkowitą, jak również? 552 00:39:59,000 --> 00:40:06,000 Tak, alias, tak INT Całkowita pseudonimy. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Jak nam idzie? 555 00:40:17,000 --> 00:40:20,000 Miejmy przyspieszyć trochę. 556 00:40:20,000 --> 00:40:24,000 Teraz będziemy mówić o tablicach, więc jak widać 557 00:40:24,000 --> 00:40:28,000 w dalszej części specyfikacji mówimy o tym, jak tablice w PHP 558 00:40:28,000 --> 00:40:31,000 są nieco inne niż w C. 559 00:40:31,000 --> 00:40:34,000 W rzeczywistości są one rodzaju amalgamatem 560 00:40:34,000 --> 00:40:36,000 tablice, że trafiłeś do poznania i miłowania w C 561 00:40:36,000 --> 00:40:40,000 gdzie co jest tego samego typu 562 00:40:40,000 --> 00:40:43,000 zapisywane kolejno i ciągły w pamięci, 563 00:40:43,000 --> 00:40:46,000 i masz te liczbowe indeksy. 564 00:40:46,000 --> 00:40:49,000 Masz indeksu 0, indeks 1, indeks 2, 565 00:40:49,000 --> 00:40:53,000 i przechowywać wartości w tych indeksów. 566 00:40:53,000 --> 00:40:57,000 Również w C, gdy napisał Speller, wiele z was 567 00:40:57,000 --> 00:41:00,000 A hash tabeli podejście, i zobaczyłem, że tam mieliśmy 568 00:41:00,000 --> 00:41:03,000 inny rodzaj pamięci, gdzie byliśmy mapowanie 569 00:41:03,000 --> 00:41:07,000 Klucz do wartości, więc kiedy próbowałem zapisać coś w tabeli mieszania 570 00:41:07,000 --> 00:41:11,000 trzeba było określić, że chcesz przechowywać go z określonego klucza, 571 00:41:11,000 --> 00:41:17,000 i że klucz określa położenie wartości i gdzie go przechowywać. 572 00:41:17,000 --> 00:41:22,000 Ty niby masz obu tych pojęć się w tym samym czasie w tablicy PHP 573 00:41:22,000 --> 00:41:27,000 iw efekcie, często nazywają te tablice asocjacyjne 574 00:41:27,000 --> 00:41:33,000 gdzie jesteśmy kojarząc klucz wartości. 575 00:41:33,000 --> 00:41:39,000 W tej kolejnej części mówimy o prostej tablicy PHP 576 00:41:39,000 --> 00:41:45,000 gdzie mamy klawiszy A, B i C, 577 00:41:45,000 --> 00:41:53,000 wszystkie ciągi, mapowanie do liczb 1, 2 i 3. 578 00:41:53,000 --> 00:41:57,000 I można mieć klucze różnych typów. 579 00:41:57,000 --> 00:42:00,000 >> Może masz jakieś klucze, które są ciągi znaków, niektóre klawisze, które są liczbami całkowitymi. 580 00:42:00,000 --> 00:42:03,000 Możesz mieć wartości różnych typów. 581 00:42:03,000 --> 00:42:06,000 Możesz mieć wartość, która jest ciągiem znaków, wartość to liczba całkowita, 582 00:42:06,000 --> 00:42:11,000 wartość jest tablica lub inny obiekt, na przykład 583 00:42:11,000 --> 00:42:16,000 wszystkie w tym samym obiektu tablicy, co jest dziwne. 584 00:42:16,000 --> 00:42:20,000 Nie musisz mieć tablicę, która jest po prostu jeszcze jedną typ elementu w nim. 585 00:42:20,000 --> 00:42:26,000 Można mieć wiele różnych rzeczy dzieje się w środku. 586 00:42:26,000 --> 00:42:33,000 Inną rzeczą, aby pamiętać, że kiedy widzą coś takiego w kodzie, 587 00:42:33,000 --> 00:42:38,000 który jest ważny PHP zadeklarowania tablicy tylko jak ta, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 które deklarują zainicjowany $ arr jest ta tablica. 589 00:42:43,000 --> 00:42:48,000 Ale co pan właściwie coraz pod maską jest tego rodzaju niejawna 590 00:42:48,000 --> 00:42:55,000 generowania kluczy, gdzie mamy 0 do 0, 1 do 1, 2 do 2, 3 do 3. 591 00:42:55,000 --> 00:42:59,000 I okazuje się, że nawet jeśli masz tablicę, jak ten facet się tutaj 592 00:42:59,000 --> 00:43:03,000 gdzie masz, b i c, jako klucz 593 00:43:03,000 --> 00:43:09,000 a następnie uruchomić metodą Push tablicy zacząć używać tej tablicy jak stos, 594 00:43:09,000 --> 00:43:12,000 dzięki czemu można zobaczyć, że ten obiekt array, tablica ta jest naprawdę staje się przeciążony. 595 00:43:12,000 --> 00:43:15,000 Możemy użyć go jako tablicę. Możemy używać go jako tabeli mieszania. 596 00:43:15,000 --> 00:43:19,000 Możemy użyć go jako stos. 597 00:43:19,000 --> 00:43:22,000 Po uruchomieniu popychanie rzeczy na tej tablicy 598 00:43:22,000 --> 00:43:30,000 Pierwszą rzeczą, którą naciskać na to będzie indeks 0, a następnie indeksu 1 i indeks 2. 599 00:43:30,000 --> 00:43:33,000 Możesz uzyskać ten rodzaj ukrytego generacji kluczy 600 00:43:33,000 --> 00:43:38,000 dopóki nie zostaną określone jawnie. 601 00:43:38,000 --> 00:43:43,000 Sposób określić klucze jawnie, oczywiście, za pomocą tej notacji wspornika, 602 00:43:43,000 --> 00:43:48,000 który jest podobny do tablic z wyjątkiem, a nie tylko pozwalając 603 00:43:48,000 --> 00:43:54,000 całkowitoliczbowe indeksy w tutaj, teraz pozwalają niczego. 604 00:43:54,000 --> 00:43:57,000 Jeśli chcesz aby twój klucz jest ciągiem, można określić to tak. 605 00:43:57,000 --> 00:44:06,000 Jeśli ma to być int, można określić go z int, którego chcesz użyć. 606 00:44:06,000 --> 00:44:13,000 >> Pytania na które do tej pory? 607 00:44:13,000 --> 00:44:18,000 Jedną z miłych rzeczy na temat tego pomysłu 608 00:44:18,000 --> 00:44:26,000 to, że można zawsze tylko jeden wartość przechowywaną z danego klawisza. 609 00:44:26,000 --> 00:44:32,000 Jeśli wrócimy do naszego urządzenia, chciałbym usunąć niektóre z tych rzeczy. 610 00:44:32,000 --> 00:44:47,000 I powiedzmy, zainicjować tablicę być 0, 1, 2, zrobione. 611 00:44:47,000 --> 00:44:55,000 Jeśli teraz wiem, że, na przykład, jeśli echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Mam zamiar dostać 0 wartość drukowane, 613 00:44:59,000 --> 00:45:05,000 oraz ponieważ nie może być zawsze tylko jedną wartość dla danego przechowywany klucz 614 00:45:05,000 --> 00:45:11,000 jeśli przechowywać coś w $ tab [0], mówią, 615 00:45:11,000 --> 00:45:16,000 wtedy wiem, kiedy echo $ arr [0] ponownie 616 00:45:16,000 --> 00:45:19,000 I nie zamierzam się 0 wydrukowany jak wcześniej. 617 00:45:19,000 --> 00:45:24,000 Ja tylko dostanie. 618 00:45:24,000 --> 00:45:30,000 Więc to jest w zasadzie powiedzieć, że nie mogę mieć $ arr [0] przechowywanie 2 różne wartości. 619 00:45:30,000 --> 00:45:34,000 Nie można przechowywać zarówno 0 i ciąg a, jak to dosłownie zamienia 620 00:45:34,000 --> 00:45:38,000 co było w $ arr [0] wcześniej. 621 00:45:38,000 --> 00:45:43,000 Powodem Wspominam o tym, to uruchomić go, zobaczyć, co się dzieje. 622 00:45:43,000 --> 00:45:47,000 Zobacz tutaj, że mam 0 wydrukować i następnie tutaj. 623 00:45:47,000 --> 00:45:51,000 Nie ma nowej linii tam, bo jestem leniwy i nie umieścić, że widok 624 00:45:51,000 --> 00:45:54,000 Co jest fajnego to możemy to wykorzystać jako sposób 625 00:45:54,000 --> 00:46:00,000 uchwycić ideę zestawu 626 00:46:00,000 --> 00:46:07,000 gdzie nie możemy mieć wielu kluczy w tablicy. 627 00:46:07,000 --> 00:46:10,000 Nie możemy mieć identyczne klucze w tablicy. 628 00:46:10,000 --> 00:46:17,000 Nie mogę mieć klucz 0 i wartość 1 i klucz i wartość 0 w 629 00:46:17,000 --> 00:46:21,000 lub klawisz 0 i wartość true. 630 00:46:21,000 --> 00:46:27,000 Klawisze są wszystko jest tylko 1 klucz w tablicy. 631 00:46:27,000 --> 00:46:32,000 Mimo, że można mieć taką samą wartość przechowywaną 632 00:46:32,000 --> 00:46:35,000 kilka razy w tablicy pod różnymi kluczami 633 00:46:35,000 --> 00:46:42,000 to nie jest możliwe, aby identyczne klucze wiele razy w tablicy PHP. 634 00:46:42,000 --> 00:46:47,000 >> Jeśli przyjrzymy się tym następnym problemem unique.php, 635 00:46:47,000 --> 00:46:51,000 gdzie chcemy otworzyć plik PHP 636 00:46:51,000 --> 00:46:54,000 zawierający listę ciągów, jeden ciąg znaków na linię, 637 00:46:54,000 --> 00:47:01,000 i chcemy znaleźć wszystkie unikalne ciągi w tym pliku 638 00:47:01,000 --> 00:47:06,000 wszystko, co musimy zrobić, to użyć jednej z tych tablic PHP 639 00:47:06,000 --> 00:47:12,000 i użyć ciągi znaków w pliku, jako klucz do tej tablicy 640 00:47:12,000 --> 00:47:17,000 i zachować aktualizacji naszej tablicy jak przechowywać te nowe klucze. 641 00:47:17,000 --> 00:47:22,000 Jak czytamy każdą linię z pliku możemy zapisać go w tablicy, 642 00:47:22,000 --> 00:47:28,000 i na koniec w musimy naszych kluczy w tablicy 643 00:47:28,000 --> 00:47:34,000 wszystkie unikalne ciągi w pliku. 644 00:47:34,000 --> 00:47:37,000 Czy to ma sens? 645 00:47:37,000 --> 00:47:41,000 Zobaczmy, jak to działa. 646 00:47:41,000 --> 00:47:49,000 Zamierzamy otworzyć, według specyfikacji, nowy plik o nazwie unique.php. 647 00:47:49,000 --> 00:47:58,000 Otwórz. Ups, przepraszam, nowy plik. 648 00:47:58,000 --> 00:48:03,000 Zamierzamy uruchomić go z samego startu i końca znaczników. 649 00:48:03,000 --> 00:48:17,000 Mamy zamiar zapisać go w sekcji 9, i będziemy go nazywać unique.php. 650 00:48:17,000 --> 00:48:25,000 Dobra, teraz powiększyć 651 00:48:25,000 --> 00:48:32,000 Chodzi o to, otworzyć plik, 652 00:48:32,000 --> 00:48:38,000 czytać plik linia po linii. 653 00:48:38,000 --> 00:48:46,000 Dla każdej linii w pliku 654 00:48:46,000 --> 00:48:51,000 będziemy mieć tablicę, gdzie mamy 655 00:48:51,000 --> 00:49:03,000  linia jak nasz klucz. 656 00:49:03,000 --> 00:49:09,000 I wtedy, gdy mamy do końca tutaj 657 00:49:09,000 --> 00:49:17,000 $ Arr na klucze są unikatowe linie 658 00:49:17,000 --> 00:49:25,000 z pliku, ponieważ wiemy, że jeśli mogę umieścić linię do tej tablicy 659 00:49:25,000 --> 00:49:33,000 wiele razy, to po prostu zachować nadrzędnymi starą wartość 660 00:49:33,000 --> 00:49:46,000 i możemy rzeczywiście umieścić wiersz tablicy w jak sam tak po prostu. 661 00:49:46,000 --> 00:49:48,000 >> To jest dziwne. 662 00:49:48,000 --> 00:49:52,000 Jesteśmy przechowywania tej samej pary kluczy i wartości w kółko, 663 00:49:52,000 --> 00:50:00,000 ale skoro mamy zagwarantowane, że będzie tylko 1 klucz o nazwie linia 664 00:50:00,000 --> 00:50:05,000 więc jeśli mamy plik, który mówi-a plik z odgłosów zwierząt i ma Hau, Hau, 665 00:50:05,000 --> 00:50:11,000 meow, meow, moo, moo, i za każdym razem czytać hałas zwierzęcego, 666 00:50:11,000 --> 00:50:15,000 jak Hau i przechowywać go w naszej tablicy mamy Hau, a następnie po raz drugi 667 00:50:15,000 --> 00:50:20,000 przechowujemy Hau nadpisze ona po raz pierwszy, że zapisane to. 668 00:50:20,000 --> 00:50:25,000 W końcu będziemy mieć tylko jeden wpis w tablicy 669 00:50:25,000 --> 00:50:33,000 dla każdego z dźwięków zwierząt w naszym pliku odgłosy zwierząt. 670 00:50:33,000 --> 00:50:41,000 Czy faceci pewni, że można rozwiązać na otwarcie pliku w PHP? 671 00:50:41,000 --> 00:50:45,000 Jednym ze sposobów, aby to zrobić, chodźmy nad tym szybko-jeden sposób, aby to zrobić 672 00:50:45,000 --> 00:50:50,000 jest z fopen, jak widzieliśmy wcześniej. 673 00:50:50,000 --> 00:50:55,000 Możesz fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Można go otworzyć w trybie do odczytu, tak jak w C. 675 00:50:59,000 --> 00:51:02,000 To jeden całkiem dobry sposób to zrobić. 676 00:51:02,000 --> 00:51:05,000 Również wtedy odczytać z pliku linia po linii 677 00:51:05,000 --> 00:51:12,000 mają takie same funkcje, wielu z nich, które miało miejsce w C. 678 00:51:12,000 --> 00:51:14,000 Masz fgets. 679 00:51:14,000 --> 00:51:17,000 Masz feof, choć nie lubię używać, że 680 00:51:17,000 --> 00:51:22,000 bo pamiętam, że nie było super w C. 681 00:51:22,000 --> 00:51:25,000 Można to zrobić w ten sam sposób, 682 00:51:25,000 --> 00:51:34,000 ale tutaj jest naprawdę fajne. 683 00:51:34,000 --> 00:51:41,000 Przepraszam, ale nie chcę tego robić $ plik, ale nie ma funkcji o nazwie pliku w PHP, 684 00:51:41,000 --> 00:51:47,000 i ta funkcja tutaj jest fajne, bo odczytuje całą zawartość 685 00:51:47,000 --> 00:51:52,000 z pliku określonego przez użytkownika, więc some_file.txt, 686 00:51:52,000 --> 00:51:56,000 odczytuje całą zawartość tego pliku do tablicy 687 00:51:56,000 --> 00:52:03,000 a następnie umożliwia iteracyjne nad nim, który jest całkiem fajny. 688 00:52:03,000 --> 00:52:07,000 >> Jeśli się go, na przykład, w naszym przeglądarki 689 00:52:07,000 --> 00:52:14,000 i patrzymy na Google dla pliku PHP 690 00:52:14,000 --> 00:52:23,000 widać tutaj, że nasz podręcznik mówi, że plik odczytuje całą zawartość pliku do tablicy, 691 00:52:23,000 --> 00:52:27,000 i możemy file_get_contents zwrócić zawartość pliku jako ciąg znaków, 692 00:52:27,000 --> 00:52:30,000 ale zazwyczaj dopiero się go jako tablicy jest bardzo miłe, bo to, co robi 693 00:52:30,000 --> 00:52:33,000 jest to łamie to tak, że każdy element 694 00:52:33,000 --> 00:52:37,000 w tablicy jest jedna linia pliku, 695 00:52:37,000 --> 00:52:41,000 więc jeśli spojrzymy na sprawy 0, to pierwszy wiersz w pliku. 696 00:52:41,000 --> 00:52:46,000 Plik 1, druga linia, plik 2, wiersz trzeci, i tak dalej i tak dalej. 697 00:52:46,000 --> 00:52:50,000 Czy nie byłoby miło, gdyby to było wszystko, co musiałem zrobić w C? 698 00:52:50,000 --> 00:52:53,000 Całkiem sprytne. 699 00:52:53,000 --> 00:52:59,000 David pokazał to w wykładzie i idiom pokazał było 700 00:52:59,000 --> 00:53:03,000 że oprócz naszego standardu dla pętli w PHP, że mieliśmy 701 00:53:03,000 --> 00:53:09,000 for (i = 0 $, i <10, i + +), 702 00:53:09,000 --> 00:53:16,000 i można zrobić to w PHP też samo- 703 00:53:16,000 --> 00:53:27,000 mamy też fajny konstrukt zwany foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach jest naprawdę przydatne, gdy iteracja tablic lub tych strukturach 705 00:53:32,000 --> 00:53:36,000 ponieważ pozwala wyciągnąć każdy element tablicy 706 00:53:36,000 --> 00:53:42,000 bez konieczności ręcznego indeksowania zrobić samodzielnie, 707 00:53:42,000 --> 00:53:46,000 bez konieczności ręcznego tworzenia indeks zmiennej zwiększamy go, 708 00:53:46,000 --> 00:53:51,000 wyciągnij wartość w tablicy w tym miejscu, bo to bardzo powszechna rzecz. 709 00:53:51,000 --> 00:53:54,000 >> Prawdopodobnie tego robić ton czasach kiedy robisz rzeczy C 710 00:53:54,000 --> 00:54:00,000 w ciągu semestru, więc z tym foreach 711 00:54:00,000 --> 00:54:06,000 możemy w pętli nad tej tablicy plików, 712 00:54:06,000 --> 00:54:12,000 i składnia jest, że chcemy teraz w pętli, tej tablicy 713 00:54:12,000 --> 00:54:18,000 i określić, że zmienna będziemy używać do przechowywania 714 00:54:18,000 --> 00:54:27,000 elementem tej tablicy lokalnie, lokalny do zakresu tej pętli foreach 715 00:54:27,000 --> 00:54:32,000 jest będziemy nazywać line. 716 00:54:32,000 --> 00:54:38,000 Jeśli jest to plik tylko słowa i nie jedno słowo w linii 717 00:54:38,000 --> 00:54:43,000 moglibyśmy nazwać to słowo, a także, tak naprawdę możesz dać to nazwę, 718 00:54:43,000 --> 00:54:49,000 cokolwiek chcesz to nazwać, 719 00:54:49,000 --> 00:55:02,000 , a następnie w pętli możesz zrobić co chcesz z tej zmiennej linii. 720 00:55:02,000 --> 00:55:08,000 Jeśli to nie wystarczy, aby uzyskać wartość tablicy i chcesz również otrzymać 721 00:55:08,000 --> 00:55:17,000 Indeks wraz z nim można określić nazwę dla indeksu 722 00:55:17,000 --> 00:55:22,000 jak również wartość, a teraz masz dostęp do 2 zmiennych. 723 00:55:22,000 --> 00:55:26,000 Masz $ i oraz linia 724 00:55:26,000 --> 00:55:30,000 gdzie $ i jest indeksem w tablicy, 725 00:55:30,000 --> 00:55:38,000 i linia jest linia, że ​​pobierane z pliku. 726 00:55:38,000 --> 00:55:49,000 Na przykład, jeśli chcemy wydrukować echa linii 0 do pliku, jak to, 727 00:55:49,000 --> 00:55:57,000 możemy to zrobić tak jak ten, "Linia $ i tego pliku jest $ line" 728 00:55:57,000 --> 00:56:02,000 i tutaj jest coś, czego również nie widziałem jeszcze ani 729 00:56:02,000 --> 00:56:13,000 gdzie byłem po prostu całkowicie pomijane cała ta% s% d biznesu 730 00:56:13,000 --> 00:56:16,000 to, że mieliśmy do czynienia w C, a zamiast Poszedłem prosto do 731 00:56:16,000 --> 00:56:19,000 zapisu zmiennych w wierszu w moim ciąg. 732 00:56:19,000 --> 00:56:23,000 >> To się nazywa zmienna interpolacja, string interpolacji 733 00:56:23,000 --> 00:56:26,000 gdzie jesteś farszu zmienne prawo, i interpreter PHP 734 00:56:26,000 --> 00:56:31,000 jest na tyle sprytny, kiedy to czytając ciąg zaczynający się cudzysłów- 735 00:56:31,000 --> 00:56:34,000 nie pojedyncze cudzysłowy, z pojedynczymi cudzysłowami nie możesz to zrobić- 736 00:56:34,000 --> 00:56:38,000 ale z podwójnymi cudzysłowami, gdyż czyta ona szuka zmiennych. 737 00:56:38,000 --> 00:56:42,000 To polowania na nich, a jeśli widzi zmiennych zajmie wartość zmiennej 738 00:56:42,000 --> 00:56:47,000 i takie tam to w ciąg czy może przekształcić go w reprezentacji strun 739 00:56:47,000 --> 00:56:51,000 który jest całkiem fajny. 740 00:56:51,000 --> 00:56:56,000 Na razie niech komentarz z resztą wszystko, 741 00:56:56,000 --> 00:57:00,000 zapisać to, i to, co możemy teraz zrobić, to możemy otworzyć plik 742 00:57:00,000 --> 00:57:06,000 że możemy wywołać some_file.txt-Utwórzmy nowy plik- 743 00:57:06,000 --> 00:57:15,000 i możemy umieścić w kilka bezsensownych rzeczy się tutaj tylko do testowania wszystkiego, 744 00:57:15,000 --> 00:57:25,000 zapisać, nazwać some_file.txt, jak robię tu na górze, 745 00:57:25,000 --> 00:57:33,000 i teraz, jeśli pomniejszyć tylko upewnić, że wszystko jest w tym samym katalogu, 746 00:57:33,000 --> 00:57:36,000 wygląda na to, mam unique.php i some_file.txt w tym samym katalogu. 747 00:57:36,000 --> 00:57:42,000 Jeśli uruchomić unique.php php 748 00:57:42,000 --> 00:57:51,000 zobaczyć jak to wypisuje każdy wiersz w moim pliku i co linia jest? 749 00:57:51,000 --> 00:57:56,000 >> To dość silny, prawda? 750 00:57:56,000 --> 00:58:03,000 Spójrz, zajęło 3 linie kodu do otwarcia pliku. 751 00:58:03,000 --> 00:58:08,000 Cóż, 4 linie kodu. I nie można liczyć dziś wyraźnie. 752 00:58:08,000 --> 00:58:13,000 Ale tak naprawdę tylko 2 ciekawe linie kodu, bo pozostałe 2 były nawiasy klamrowe, 753 00:58:13,000 --> 00:58:17,000 ale w tym dużo kodu udało się otworzyć plik, iterację niej 754 00:58:17,000 --> 00:58:20,000 wyciągnij numer wiersza i samej linii 755 00:58:20,000 --> 00:58:24,000 i wydrukować. 756 00:58:24,000 --> 00:58:26,000 Fajnych rzeczy. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Mam pytanie na temat składni. 758 00:58:28,000 --> 00:58:33,000 Więc foreach oferty z każdej linii pliku otwieranego, 759 00:58:33,000 --> 00:58:37,000 i wtedy, gdy chcesz zrobić rzeczy z każdej linii po prostu zrobić to jako 760 00:58:37,000 --> 00:58:39,000 a następnie skojarzyć wartość. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Co można zrobić tu-pytanie 762 00:58:41,000 --> 00:58:46,000 foreach ma do czynienia z tablicy, więc foreach składnia 763 00:58:46,000 --> 00:58:51,000 naprawdę foreach i zauważ, że nie ma miejsca 764 00:58:51,000 --> 00:58:53,000 lub coś pomiędzy za i każdy. 765 00:58:53,000 --> 00:58:56,000 Mają iść obok siebie, 766 00:58:56,000 --> 00:59:00,000 , a następnie odbywa się w tablicy, 767 00:59:00,000 --> 00:59:05,000 i wtedy masz to inne słowo o nazwie, jak ma być tam, 768 00:59:05,000 --> 00:59:11,000 a po co możesz umieścić jedną nazwę zmiennej, 769 00:59:11,000 --> 00:59:14,000 w takim przypadku będziesz się wyciągając wartości z tablicy, 770 00:59:14,000 --> 00:59:20,000 nie wskaźniki, lub jeśli robisz to jak napisałem poniżej 771 00:59:20,000 --> 00:59:24,000 dostajesz klucze i wartości. 772 00:59:24,000 --> 00:59:33,000 Masz foreach element tablicy lub parze tablicy jak wprowadzisz do wartości 773 00:59:33,000 --> 00:59:38,000 czy tylko wartość. 774 00:59:38,000 --> 00:59:40,000 W zależności od tego, czego potrzebujesz, jeśli nie potrzebujesz kluczy 775 00:59:40,000 --> 00:59:42,000 można przejść z wartością. 776 00:59:42,000 --> 00:59:45,000 Jeśli chcesz z klawiszy można przejść z nich. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Ja też sobie sprawę, że nigdy nie uznał i lub linii. 778 00:59:48,000 --> 00:59:51,000 Jak to w ogóle wiesz co one są? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Co masz na myśli przez stwierdzenie,? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Nigdy nie powiedział im, co ja lub linia oznacza. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] nigdy nie powiedzieliśmy komputer co ja lub linia oznacza w kategoriach- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] To oni zindeksowane lub że Oni są- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Nigdy nie powiedział jej, że to ma być indeks lub klucz i wartość, 784 01:00:09,000 --> 01:00:13,000 a to dlatego, że to PHP interpreter. 785 01:00:13,000 --> 01:00:17,000 To służy jako zgłoszenie i mówi dobrze, klucz będzie 786 01:00:17,000 --> 01:00:20,000 zmienną i przechowywane i zmienną. 787 01:00:20,000 --> 01:00:24,000 Wartość ma być przechowywana w zmiennej linii zwanej, 788 01:00:24,000 --> 01:00:28,000 więc ta służy jako deklaracji tych zmiennych 789 01:00:28,000 --> 01:00:35,000 i mówi, że $ i jest kluczem, a $ jest wartością. 790 01:00:35,000 --> 01:00:37,000 Tak, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Jeśli przyciski nie są dokonywane numerycznie 792 01:00:41,000 --> 01:00:44,000 jak to, aby zdecydować, co to będzie drukować wszystko? 793 01:00:44,000 --> 01:00:47,000 Czy to jest tak, jak rozkaz to wpisane? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Dajmy mu szansę. 795 01:00:51,000 --> 01:00:57,000 Stwórzmy zmienną o nazwie arr, 796 01:00:57,000 --> 01:01:06,000 i możemy zrobić idzie do 7. 797 01:01:06,000 --> 01:01:19,000 Powiedzmy 0 idzie do innej tablicy z 1, 2, lub jabłka. 798 01:01:19,000 --> 01:01:30,000 Załóżmy, że 7 przechodzi do 1, B przechodzi do 2, 799 01:01:30,000 --> 01:01:39,000 i 3 do 4 przechodzi. 800 01:01:39,000 --> 01:01:44,000 Jest to rodzaj szalonej przykład patrząc ponieważ jesteśmy mieszania 801 01:01:44,000 --> 01:01:47,000 smyczki i liczb całkowitych w każdym miejscu. 802 01:01:47,000 --> 01:01:50,000 Nie ma prawdziwego celu tej tablicy. 803 01:01:50,000 --> 01:01:55,000 To znaczy, możemy zamówić wszystko w porządku alfabetycznym według kluczy. 804 01:01:55,000 --> 01:01:57,000 Możemy zamówić wszystko alfabetycznie według wartości. 805 01:01:57,000 --> 01:02:00,000 >> Możemy próbować i brać pod uwagę, że niektóre są ciągi, niektóre są wskazówki, 806 01:02:00,000 --> 01:02:03,000 i mogliśmy spróbować i konwertować je wszystkie do tego samego typu i zobaczyć, co się dzieje, 807 01:02:03,000 --> 01:02:09,000 albo możemy uznać je w wartości, w którym mamy już ich wprowadzenia 808 01:02:09,000 --> 01:02:14,000 gdzie umieścić ten facet pierwszy, ten facet w sekundy, ten facet w trzecim, 809 01:02:14,000 --> 01:02:19,000 ten facet w czwartej, et cetera. 810 01:02:19,000 --> 01:02:23,000 Zobaczmy, co się dzieje, gdy ten kod. 811 01:02:23,000 --> 01:02:29,000 Jeśli przewinąć i zrobić tego samego rodzaju rzeczy, 812 01:02:29,000 --> 01:02:31,000 i tu nie jest drukowanie nowych linii. 813 01:02:31,000 --> 01:02:35,000 Gdy czytać rzeczy z pliku został tym nowych linii w wartościach, 814 01:02:35,000 --> 01:02:38,000 który dlatego drukowane ładnie, a tu się nie stało, 815 01:02:38,000 --> 01:02:40,000 więc dlatego wszystko jest smushed razem. 816 01:02:40,000 --> 01:02:44,000 Dodajmy w tym nowej linii tylko do rzeczy ładne. 817 01:02:44,000 --> 01:02:51,000 Miejmy powtórzenie go, a więc o 818 01:02:51,000 --> 01:02:54,000 patrzeć na to, co się stało. 819 01:02:54,000 --> 01:03:00,000 To wszystko, co drukowane w kolejności, w której możemy umieścić go do tablicy. 820 01:03:00,000 --> 01:03:10,000 To pozwala zachować porządek w tym sensie. 821 01:03:10,000 --> 01:03:15,000 >> Wracając do tego problemu unikaty 822 01:03:15,000 --> 01:03:20,000 gdzie chcemy być w stanie iterować plik, 823 01:03:20,000 --> 01:03:24,000 i dajemy some_file.txt, 824 01:03:24,000 --> 01:03:27,000 i jedziemy do iteracyjnego to tak. 825 01:03:27,000 --> 01:03:31,000 Powiedzieliśmy, że chcemy wykorzystać tablicę, aby upewnić się, że, że mamy wszystko 826 01:03:31,000 --> 01:03:36,000 unikatowe linie z tam, a my może zrobić, że naprawdę łatwo 827 01:03:36,000 --> 01:03:49,000 tylko przez przechowywanie w tablicy, że oczywiście deklaruje poza zakresem pętli 828 01:03:49,000 --> 01:03:55,000 i powiedział, że jeśli użyto wierszy w pliku jako klucze w tablicy 829 01:03:55,000 --> 01:03:59,000 gdy weszliśmy duplikat linii bylibyśmy nadpisanie poprzedniej wartości. 830 01:03:59,000 --> 01:04:08,000 Nie jest to możliwe, aby 2 klucze, które są identyczne, w tej samej tablicy. 831 01:04:08,000 --> 01:04:13,000 Możemy to zrobić tylko to. 832 01:04:13,000 --> 01:04:17,000 Będziemy się pozbyć tego oświadczenia echa tutaj. 833 01:04:17,000 --> 01:04:24,000 Tutaj mamy do przechowywania linii w pliku w naszej tablicy 834 01:04:24,000 --> 01:04:28,000 stosując się jako klucz. 835 01:04:28,000 --> 01:04:32,000 Nic do niego, i okazuje się, że nie trzeba nawet tego klawisza. 836 01:04:32,000 --> 01:04:38,000 Nie musimy, że i zmienna. 837 01:04:38,000 --> 01:04:43,000 W tym momencie, jakbyśmy byli do innej pętli foreach 838 01:04:43,000 --> 01:04:48,000 i byliśmy w pętli na każdym arr 839 01:04:48,000 --> 01:04:56,000 i linia teraz, jeśli echo-ups, przepraszam. 840 01:04:56,000 --> 01:05:00,000 Nie możemy użyć przecinka. Musimy wykorzystać to jako hasła. 841 01:05:00,000 --> 01:05:05,000 Teraz jeśli echo linii powinniśmy dostać wszystkie unikalnych słów w pliku. 842 01:05:05,000 --> 01:05:10,000 Jeśli idziemy do some_file.txt, 843 01:05:10,000 --> 01:05:19,000 i powiedzmy, że możemy zrobić jabłko, banan, jabłko, jabłko, banan, 844 01:05:19,000 --> 01:05:22,000 jeśli mamy drukowanie wszystkich unikalnych słów w tym pliku trzeba tylko uzyskać 845 01:05:22,000 --> 01:05:30,000 jabłko i banana wydrukować. 846 01:05:30,000 --> 01:05:36,000 Jeśli zapisać to, teraz będziemy powiększać powrotem, 847 01:05:36,000 --> 01:05:44,000 php unique.php i ta-da. 848 01:05:44,000 --> 01:05:51,000 Mamy powodzeniem uniqued plik. 849 01:05:51,000 --> 01:05:55,000 >> Ostatnia część tego problemu jest prośbą, aby posortować tę tablicę przed drukowane go 850 01:05:55,000 --> 01:05:58,000 dlatego, że w tym prostym przykładzie, że mamy tylko zrobić 851 01:05:58,000 --> 01:06:04,000 mieliśmy szczęście, w tym sensie, że file- 852 01:06:04,000 --> 01:06:06,000 Zrobiliśmy to dobry przykład z jabłek i bananów. 853 01:06:06,000 --> 01:06:08,000 Było już posortowane. 854 01:06:08,000 --> 01:06:19,000 Ale za pomocą prostej funkcji sortowania można posortować tablicę, który jest dość sprytne. 855 01:06:19,000 --> 01:06:24,000 Ostatnią rzeczą chciałem porozmawiać z wami o naprawdę szybko 856 01:06:24,000 --> 01:06:31,000 jest to, że tego rodzaju PHP jest wszystko dobrze, i to jest bardzo poręczna 857 01:06:31,000 --> 01:06:43,000 wiedzieć, jak to zrobić, jeśli kiedykolwiek trzeba zrobić małe, szybkie rzeczy programowo. 858 01:06:43,000 --> 01:06:48,000 Na przykład, jeśli trzeba napisać program, który, powiedzmy, 859 01:06:48,000 --> 01:06:53,000 stawia wszystkich na odcinki nie zamierzam iść i napisać to w C. 860 01:06:53,000 --> 01:06:55,000 To będzie długa. 861 01:06:55,000 --> 01:06:57,000 To będzie rodzaj bólu, zwłaszcza, jeśli są to pliki, które, 862 01:06:57,000 --> 01:07:00,000 tak jak wy nie widziałem. 863 01:07:00,000 --> 01:07:05,000 To takie miłe, że tylko z tego kodu tu dużo 864 01:07:05,000 --> 01:07:08,000 udało nam się zgrać przez plik, wyciągnij wszystkie unikalne wartości 865 01:07:08,000 --> 01:07:11,000 i wydrukować je z powrotem. 866 01:07:11,000 --> 01:07:16,000 >> Jednakże, dla zadań, dla projektów, 867 01:07:16,000 --> 01:07:20,000 jeśli budujemy strony internetowe z PHP jest to, że moc 868 01:07:20,000 --> 01:07:25,000 kończy nam nasze pliki PHP za pomocą tego tłumacza, 869 01:07:25,000 --> 01:07:29,000 i tłumacza przetwarza wszystko w znacznikach PHP, 870 01:07:29,000 --> 01:07:34,000 zostawiając wszystko nietknięte i wypluwa wyniki. 871 01:07:34,000 --> 01:07:40,000 Możemy to zrobić, aby zbudować HTML programowo. 872 01:07:40,000 --> 01:07:46,000 Teraz, jeśli wrócimy do specyfikacji, ostatni problem w specyfikacji 873 01:07:46,000 --> 01:07:56,000 mówi o tej idei koncentracji 874 01:07:56,000 --> 01:08:01,000 i tworzenie menu rozwijanego, 875 01:08:01,000 --> 01:08:06,000 którym może, ale nie chcę zrobić, w zależności od tego, co Twój projekt końcowy robi, 876 01:08:06,000 --> 01:08:13,000 , który pozwala użytkownikowi wybrać z listy wszystkich możliwych stężeniach 877 01:08:13,000 --> 01:08:15,000 ich jeden koncentracja. 878 01:08:15,000 --> 01:08:21,000 Teraz jest to rodzaj bólu, aby wpisać na to 879 01:08:21,000 --> 01:08:25,000 i musi to wszystko zrobić ręcznie, zwłaszcza, gdy masz się upewnić 880 01:08:25,000 --> 01:08:28,000 że masz wszystkie kątowników w odpowiednim miejscu i wszystkie cytaty w odpowiednim miejscu, 881 01:08:28,000 --> 01:08:34,000 więc z PHP można to zrobić programowo, a można to zrobić bardzo szybko. 882 01:08:34,000 --> 01:08:36,000 >> Przyjrzyjmy się, jak to zrobić. 883 01:08:36,000 --> 01:08:42,000 Mamy zamiar otworzyć nowy plik. 884 01:08:42,000 --> 01:08:46,000 Mamy zamiar umieścić w naszych PHP tagów. 885 01:08:46,000 --> 01:08:53,000 Będziemy nazywać concentrations.php, 886 01:08:53,000 --> 01:08:58,000 a teraz, gdy to robisz, coś dobrego o tym myśleć 887 01:08:58,000 --> 01:09:02,000 kiedy próbujesz mieszać i łączyć się PHP i HTML swojej 888 01:09:02,000 --> 01:09:08,000 jest dowiedzieć się, w porządku, to, co jest elementem, który chcę programowo wygenerować? 889 01:09:08,000 --> 01:09:11,000 Co to jest część, że można programowo wygenerować? 890 01:09:11,000 --> 01:09:17,000 To prawda, że ​​można zrobić wszystko z kodu HTML 891 01:09:17,000 --> 01:09:19,000 wewnątrz bloków PHP. 892 01:09:19,000 --> 01:09:24,000 Możesz powtórzyć cały HTML jako ciągi. 893 01:09:24,000 --> 01:09:30,000 Na przykład, jeżeli chcę zacząć robić SELECT tagów wewnątrz PHP 894 01:09:30,000 --> 01:09:46,000 Mogę powiedzieć, echo, powiedzmy wybrać name = stężenie, 895 01:09:46,000 --> 01:09:49,000 , a następnie w dół poniżej mógłbym inny znacznik echa 896 01:09:49,000 --> 01:09:57,000 lub innym echo nazywa blisko wybrać. 897 01:09:57,000 --> 01:10:00,000 To jeden ze sposobów, aby to zrobić, bo co to jest dosłownie zrobić 898 01:10:00,000 --> 01:10:09,000 jest wydrukować ten tekst, gdy jest prowadzony przez interpreter PHP, 899 01:10:09,000 --> 01:10:12,000 więc wynik będzie HTML. 900 01:10:12,000 --> 01:10:18,000 Jeśli mam zapisać ten plik, jak to jest teraz 901 01:10:18,000 --> 01:10:24,000 i uruchomić php concentrations.php 902 01:10:24,000 --> 01:10:26,000 patrzeć na to, co mam. 903 01:10:26,000 --> 01:10:30,000 Mam ten otwarty Zamknij Wybierz tag. 904 01:10:30,000 --> 01:10:36,000 >> Gdybym miał to zrobić i ja, aby zapisać ten wynik do pliku, 905 01:10:36,000 --> 01:10:45,000 powiedzieć concentrations.html-wait, wygląda jak l poszedł na drugą stronę, 906 01:10:45,000 --> 01:11:02,000 teraz, gdy otwierają się tutaj concentrations.html widzisz mam poprawny plik HTML. 907 01:11:02,000 --> 01:11:05,000 Czy to jest dziwne? 908 01:11:05,000 --> 01:11:09,000 Używamy PHP do tworzenia kodu HTML, tworzenie prawidłowych HTML. 909 01:11:09,000 --> 01:11:13,000 Sposób, w jaki to robimy to my tylko o wydruk PHP 910 01:11:13,000 --> 01:11:16,000 HTML, który chcemy wydrukować. 911 01:11:16,000 --> 01:11:20,000 To jest dosłownie jak PHP websites pracuje. 912 01:11:20,000 --> 01:11:24,000 Podczas wizyty na stronie internetowej, że wyśle ​​cię do czegoś 913 01:11:24,000 --> 01:11:30,000 coś, coś, coś dot com slash index.php 914 01:11:30,000 --> 01:11:33,000 Komputer jest dosłownie wywołanie index.php, 915 01:11:33,000 --> 01:11:38,000 uruchomienie go przez interpreter PHP i cokolwiek śmieci wychodzi 916 01:11:38,000 --> 01:11:49,000 to jest wysłanie z powrotem do przeglądarki i mówi hej, przeglądarka, interpretują to jako HTML. 917 01:11:49,000 --> 01:11:54,000 Dobrą rzeczą jest to, że może być ból ciągle pisać echo, echo, echo, echo 918 01:11:54,000 --> 01:11:59,000 i ująć wszystko w cudzysłowie jak to, więc jeśli chcesz napisać 919 01:11:59,000 --> 01:12:04,000 HTML, który będzie statyczna samemu można to zrobić w ten sposób, 920 01:12:04,000 --> 01:12:16,000 umieścić go na zewnątrz, zamknij ją, 921 01:12:16,000 --> 01:12:21,000 a tutaj tylko umieścić wewnątrz znaczników PHP które znasz 922 01:12:21,000 --> 01:12:26,000 chcesz programowo wygenerować, w tym przypadku jest to opcja te tagi 923 01:12:26,000 --> 01:12:31,000 które są ból wygenerować. 924 01:12:31,000 --> 01:12:37,000 >> Na przykład, możemy wygenerować tysiąc tagów opcji 925 01:12:37,000 --> 01:12:48,000 robiąc coś takiego, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 i mówiąc wartość opcji echo = $-ups, nie mogę tego zrobić. 927 01:13:00,000 --> 01:13:03,000 Cóż, spróbować i zobaczyć, co się dzieje. 928 01:13:03,000 --> 01:13:22,000 $ I, a następnie mówiąc $ i 01:13:27,000 Zamiast wpisywać się, że znacznik opcji tysiąc razy różne 930 01:13:27,000 --> 01:13:33,000 Używam kod PHP wygenerować go automatycznie, programowo. 931 01:13:33,000 --> 01:13:38,000 Rodzaju sprytne. Tak. 932 01:13:38,000 --> 01:13:41,000 Pamiętam to zostały wymienione ani w wykładzie lub instrukcji 933 01:13:41,000 --> 01:13:43,000 ale jaka jest różnica między znakami cudzysłowu, 934 01:13:43,000 --> 01:13:45,000 te normalne i te pojedyncze rzeczy? 935 01:13:45,000 --> 01:13:49,000 To jest rzeczywiście coś, co zrobiłem źle tutaj, że miałem zamiar pokazać. 936 01:13:49,000 --> 01:13:52,000 Poszczególne wypowiedzi nie pozwalają jakichkolwiek znaków specjalnych, 937 01:13:52,000 --> 01:13:57,000 więc wszystko w obrębie jednego łańcucha cytowany jest interpretowany dosłownie. 938 01:13:57,000 --> 01:14:02,000 Gdybym miał \ n wnętrze apostrofami i zapisać to, na przykład, 939 01:14:02,000 --> 01:14:07,000 a teraz idę na dół i uruchomić go- 940 01:14:07,000 --> 01:14:12,000 oops, gdzie idę? 941 01:14:12,000 --> 01:14:19,000 Oh, to dlatego, że zapomniał $. 942 01:14:19,000 --> 01:14:25,000 >> Teraz jeśli otwarcie-rzeczywiście, tutaj będziemy pozbyć wpisanie go do pliku. 943 01:14:25,000 --> 01:14:27,000 My po prostu przeczytać. 944 01:14:27,000 --> 01:14:34,000 Tutaj widać, że mam to dosłowne \ n w ciągu, jak nie o rzeczywistej nowej linii, 945 01:14:34,000 --> 01:14:38,000 i podobnie, zamiast rzeczywistego interpolacji wartość zmiennej 946 01:14:38,000 --> 01:14:42,000 dała mi $ i sam, który jest rodzajem bólu. 947 01:14:42,000 --> 01:14:46,000 Rozwiązaniem jest użyć cudzysłowów, 948 01:14:46,000 --> 01:14:52,000 a kiedy użyć cudzysłowów to rzeczywiście 949 01:14:52,000 --> 01:14:56,000 poprawnie interpolować wartości wszystkich tych zmiennych w tutaj 950 01:14:56,000 --> 01:14:59,000 i uznają ten \ n będzie nowa linia, że ​​jest to 951 01:14:59,000 --> 01:15:02,000 a nie \ n. 952 01:15:02,000 --> 01:15:07,000 Wykorzystaniu jednego z nich jest miła, gdy masz 953 01:15:07,000 --> 01:15:10,000 znaków, które mogą być interpretowane jako znaki specjalne, ponieważ wtedy nie muszą 954 01:15:10,000 --> 01:15:15,000 uciec je stale. 955 01:15:15,000 --> 01:15:18,000 Rzeczy może bałagan, i często tak, jak to zrobić, 956 01:15:18,000 --> 01:15:24,000 tak, aby rzeczy proste, jest to, że jeśli będę mieć nic 957 01:15:24,000 --> 01:15:31,000 HTML jak w moim kodzie będę to zmienił w pojedynczy cudzysłów 958 01:15:31,000 --> 01:15:36,000 a następnie użyć tego operatora konkatenacji 959 01:15:36,000 --> 01:15:43,000 złączyć zmienne w. 960 01:15:43,000 --> 01:15:47,000 To jest inny sposób to zrobić 961 01:15:47,000 --> 01:15:52,000 gdzie mamy kropkę, która ma zamiar połączyć to ciąg 962 01:15:52,000 --> 01:15:56,000 z tego z tego z tego, 963 01:15:56,000 --> 01:15:59,000 i teraz nie mam do ucieczki tych cudzysłowów. 964 01:15:59,000 --> 01:16:02,000 Nie muszę korzystać z tego faceta do ucieczki. 965 01:16:02,000 --> 01:16:08,000 Oni dosłownie zostać wydrukowane jako cudzysłów i potem ten facet tutaj. 966 01:16:08,000 --> 01:16:11,000 Jest to kolejny sposób mieszania wszystkiego razem. 967 01:16:11,000 --> 01:16:14,000 >> [Student] Również, kiedy powtórzył gettype nie było cudzysłowu w ogóle. 968 01:16:14,000 --> 01:16:22,000 Dobra, więc echo jest rodzajem specjalnego w tym sensie, że nie trzeba nawiasów. 969 01:16:22,000 --> 01:16:29,000 Nie musisz mieć cudzysłowie koniecznie wokół zmiennych 970 01:16:29,000 --> 01:16:37,000 jak to jest ważne, aby powiedzieć echo $ i, a to będzie interpretować to jako ciąg. 971 01:16:37,000 --> 01:16:44,000 To zrobi obsady, więc możemy to zrobić, i to jest ważne również, ale nie jest to potrzebne. 972 01:16:44,000 --> 01:16:48,000 Jest to opcjonalne. 973 01:16:48,000 --> 01:16:53,000 W tym tygodniu w zestawie problemu patrzeć na wiele tego rodzaju rzeczy 974 01:16:53,000 --> 01:16:58,000 gdzie jesteś mieszanie i dopasowanie HTML z PHP 975 01:16:58,000 --> 01:17:08,000 podobnie jak to, a teraz, jeśli mamy przejść z powrotem i uruchomić to 976 01:17:08,000 --> 01:17:13,000 widzimy, że mamy całą masę wartości opcji 977 01:17:13,000 --> 01:17:15,000 że po prostu dostałem wydrukowane. 978 01:17:15,000 --> 01:17:20,000 Mamy cały ten HTML, który dostał generowane naprawdę szybko dla nas. 979 01:17:20,000 --> 01:17:22,000 Zostawiam to jako ćwiczenie. 980 01:17:22,000 --> 01:17:24,000 Jest bardzo podobny do odczytu pliku, który zrobiliśmy wcześniej. 981 01:17:24,000 --> 01:17:31,000 >> Jest concentrations.txt plik można ciągnąć w dół od CDN, 982 01:17:31,000 --> 01:17:34,000 i można go otworzyć za pomocą tego samego foreach trik, który zrobiliśmy wcześniej, 983 01:17:34,000 --> 01:17:39,000 i foreach wystarczy echo opcję i podłącz 984 01:17:39,000 --> 01:17:44,000 odpowiednie wartości, odpowiednie klucze i indeksy, 985 01:17:44,000 --> 01:17:49,000 , a następnie dostać się w dół, że dosłownie tworzy 986 01:17:49,000 --> 01:17:54,000 programowego dla was wszystkich różnych stężeniach w Harvardzie. 987 01:17:54,000 --> 01:17:57,000 Przydatna rzecz mieć. 988 01:17:57,000 --> 01:18:02,000 Istnieje wiele konfiguracji rzeczy dla tego zadania. 989 01:18:02,000 --> 01:18:07,000 Jeśli jeszcze tego nie zrobiłeś to już zrobić następny pół godziny, godzinę, 990 01:18:07,000 --> 01:18:10,000 jakiś czas dzisiaj na pewno na pewno, 991 01:18:10,000 --> 01:18:14,000 spacerem przez spec zestaw problemów, 992 01:18:14,000 --> 01:18:20,000 zobaczyć, co się dzieje z tworzeniu vhosts, lokalnym komputerze, wszystkie te rzeczy. 993 01:18:20,000 --> 01:18:24,000 Jedna rzecz zwrócić uwagę jest to, że teraz 994 01:18:24,000 --> 01:18:30,000 w większości zestawów problemowych Byliśmy już w folderze Dropbox 995 01:18:30,000 --> 01:18:34,000 a następnie przesłać ten zestaw problemów plik zip i rozpakować go. 996 01:18:34,000 --> 01:18:36,000 Do tego zestawu problem, którego nie chcę. 997 01:18:36,000 --> 01:18:40,000 Chcesz iść do tego katalogu vhosts. 998 01:18:40,000 --> 01:18:45,000 Będziemy chcieli, aby przejść do vhosts i przejść do katalogu lokalnego hosta w niej, 999 01:18:45,000 --> 01:18:50,000 i to, gdzie będziemy chcieli, aby rozwinąć plik zip, 1000 01:18:50,000 --> 01:18:55,000 rozpakuj go i przygotuj się udać. 1001 01:18:55,000 --> 01:18:57,000 Będziesz musiał wykonać czynności ściśle. 1002 01:18:57,000 --> 01:19:02,000 >> Jeśli masz jakieś pytania, wyślij e-mail, opublikować go na Porozmawiaj, przyjdź do godzin urzędowania. 1003 01:19:02,000 --> 01:19:08,000 Dzięki chłopaki. W przyszłym tygodniu będziemy mieć sesję opinie na quiz. 1004 01:19:08,000 --> 01:19:12,000 Zapraszamy na ostatni zestaw problemów. Mam nadzieję, że to wszystko idzie bardzo dobrze. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]