[Powered by Google Translate] [Rozdział 8] [mniej wygodne] [Nate Hardison] [Harvard University] [To jest CS50.] [CS50.TV] Witamy na naszej sekundy do ostatniego rozdziału. W tym tygodniu będziemy rozmawiać o PHP, a następnie w przyszłym tygodniu zrobimy trochę opinię o Quiz 1. Mamy zamiar rozpocząć na stronie 3 tego problemu przedstawia opakowanie, i będziemy pracować przez sekcję pytań dość szybko. Na stronie 3, zaczynamy mówić o tej różnicy pomiędzy C i PHP w tym sensie, że PHP jest językiem dynamicznie typowanym, natomiast C jest statycznie wpisane, i ktoś naprawdę szybko zrobić jakieś kodowanie w czymś PHP lub Python lub Ruby przed, w JavaScript? Całkowicie nowy? Okay. Wszystkie z tych języków, które już wspomniałem są bardzo różne od języków takich jak C i C + + i Java w tym sensie, że jeśli zadeklarować zmienną nie musisz deklarować jakie zmienną jest, więc w C utknęliśmy konieczności zawsze mówią to będzie int zmienna, albo to będzie zmienna char *, natomiast z PHP, Python, ze z Ruby, z wieloma z tych języków bardziej nowoczesne nie trzeba tego robić w ogóle. Wystarczy zadeklarować zmienną, a w przypadku PHP zadeklarować, że jest to zmienna poprzedzając go znakiem $, i rodzaj zależy od zmiennej wartości, co trzyma się, co jest raczej chłodny. Się bawić z tym trochę mało, mamy przykładowy kod PHP tutaj pomiędzy początkiem i końcem znaczników. Używamy tego rodzaju jak HTML, w tym sensie, że mamy tych kątowników tutaj, aby otworzyć i zamknąć. Zobaczysz to z HTML. Zobaczysz sam rodzaj składni z XML też. To wskazuje na początek bloku PHP. This? Php jest specyficzny dla PHP. Zamykamy wszystko z>, jak również. Powiedzmy otwarcie pliku w naszym urządzeniu wykorzystując chcesz. W tym pakiecie jest napisane, aby zadzwonić dynamic.php. W rzeczywistości, można nazwać to, co chcesz, ale nazwa pliku pojawi się i być ważne później, więc po prostu pamiętać, cokolwiek to nazwać. Idę do przełączenia się na urządzenia, i mam zamiar stworzyć katalog dla Sekcja 9 Uważam, że jesteśmy w teraz. I idziemy w rozdziale 9, i mam zamiar użyć gedit. Zobaczmy, gedit, a ja zadzwonię do kopalni dynamic.php. Boom. W ciągu dynamic.php, ponieważ jest to plik PHP i chcę, aby uruchomić to przez interpreter PHP Muszę zacząć wszystko od tych otwartych znaczników, więc mam zamiar zacząć te od razu, dać sobie trochę miejsca w między tagami, a następnie punkt tego ćwiczenia było się bawić z Funkcja ta nazywa gettype, więc gettype funkcja ta tutaj. Zauważ, że nie ma podkreślenia lub spacji lub myślnika lub coś podobnego oddzielającej 2 słów, dostać i wpisz, tylko jedno słowo w ogóle. Ale co to będzie zrobić to, jeśli przechodzą w zmiennej gettype, powiedzieć, $ zmienna lub $ x, to powiedz mi rodzaju w formacie debugowania jaka jest nazwa tego typu jest. Będziemy eksperymentować tutaj. W szczególności, jeśli spojrzymy na specyfikację Pset mamy kilka różnych linii kodu tutaj. W pierwszym wierszu kodu zainicjować tej zmiennej, $ var, jest równa 7, a następnie mamy tę linię printf mówi, że hej, printf var jest pusta. Printf jest jednym z wielu sposobów, możemy drukować rzeczy w PHP. Często zobaczysz funkcję echa stosowany zamiast printf, ale printf wszyscy jesteśmy zaznajomieni z ustaniu kodowania w C na chwilę. Co możesz zrobić, to faktycznie zobaczymy, czy kopiuj i wklej działa. Mam zamiar dać to spróbować. Idziemy z powrotem na urządzenie. Dobra, i tam idziemy. I rozstaw jest trochę funky, ale jedziemy. Mamy ten kod tutaj. [Student] Czy nie jest dobry styl zakładka to? Przepraszam? [Student] Czy konwencjonalnego na karcie jest? Dobra, więc Sam pyta, czy to umowy na kartę, czy nie. Zazwyczaj tak. W tym przypadku wybrałem nie. Szczerze mówiąc, można zobaczyć różne rzeczy u różnych programistów. PHP jest zwykle używany często w połączeniu z HTML i inne języki, a więc czasami drukowanie będzie wyglądać trochę funky jeśli tiret terminie rozpoczęcia PHP i tagów końcowych. To naprawdę zależy. W tym przypadku kopiowania i wklejania nie wkleić karty w dla mnie, ale na pewno nie, jak pan powiedział, uczynić go bardziej zrozumiałym. Dobrze, jeśli zapisać ten kod w dynamic.php to co można zrobić, to przyjść do okna terminala, gdzie jestem aż tutaj w gedit i zrobić odpowiednik kompilacji stosując się, a następnie uruchomienie kodu w C wszystko co musisz zrobić z plikiem PHP jest uruchomienie interpretera PHP, który jest mały program o nazwie PHP, i argument dać do tłumacza jest plik, który chcesz do interpretacji. W tym przypadku, dynamic.php. Ups, skąd to powiedzieć? Oh, I umieścić go w sekcji 9, i oto jestem. Dlatego. Teraz, jeśli mogę uruchomić jeszcze raz widzimy, że w moim pierwszym wywołaniu funkcji gettype var jest liczbą całkowitą. W następnym var jest ciągiem znaków, a następnie w trzecim var jest boolean. Co ciekawe w tym jest, jeśli przewijania w górę, widzimy, że Są to typy podobne do tych, które mieliśmy w C. Mieliśmy wskazówki w C. W pewnym sensie miał ciągów w C, więc łańcuchy nie były całkowicie legit wpisz w tym sensie, że nasza CS50 ciąg był naprawdę co? Przepraszam? Missy? [Missy] Char *. Tak, było to char * użyliśmy. Na samym początku semestru używaliśmy typ łańcucha, ale to było naprawdę char * pod maską. Właśnie typu określone go, natomiast w PHP te ciągi są rzeczywiste typu. Nie ma więcej tego typu rzeczy, char *. Zobaczysz, że nie możemy zrobić o wiele więcej rzeczy z ciągów łatwiej w PHP niż moglibyśmy w C, i wreszcie, mamy tego typu Boolean, a duża różnica jest to, że jeśli będziemy przesuwać się w tył widać, że nazwa tego typu Teraz integer, string, boolean i zamiast int i bool, i jak można odebrać w różnych językach programowania, zakładając, że w pewnym momencie w swoim życiu będzie stykać się z różne z nich można zauważyć małe dziwactwa takie jak to gdzie C zwraca liczby całkowite wskazówki. Niektórzy nazywają to liczby całkowite. Są też inne warunki, które będziesz napotkasz. Big int widzieliśmy dzisiaj w SQL. Istnieją również liczba i bool, boolean, wszelkiego rodzaju różnice tam. To nie jest strasznie ciekawe, ale teraz mam zamiar dać ci trochę czasu- ksz jeśli z do wykonywania tej pracy przez w dolnej strony 3 gdzie pytanie, jakie typy tych wartości odpowiadają tutaj na dole. Mamy 3,50. Mamy to coś tu, co jest interesujące. Nie widziałem tego wcześniej, ale jeśli już po wzdłuż w wykładzie prawdopodobnie już wiesz, co to jest. Następnie mamy to, co jest to rodzaj funky. Można to rozpoznać. Co to jest w C? Sam? Co to daje w C? To otwórz plik o nazwie dynamic.php i sprawiają, że czytelny. Tak, i co będzie typ zmiennej, które możemy przypisać to do gwiazdy? >> Plik. Dokładnie, to możemy przypisać to do gwiazdy pliku. To jest legalne PHP zbyt. Uruchom to. Zobacz, co się dzieje, kiedy przekazać, że do gettype. A następnie także sprawdzić, co jest null, co to może być w PHP. Dam ci kilka minut. Można dosłownie skopiować i wkleić te wartości w, a potem zrobimy trochę losowy rozmowę na ciebie i zobaczyć, co tam masz. [Student] Mam pytanie. << Tak. W jednym z wykładów David powiedział, że coś można umieścić na początku pliku tak, że nie trzeba wpisywać w PHP za każdym razem. Co to było? Pewnie mówi o wybuchu funt, Wybuchu hash. Jest to dyrektywa, że ​​jeśli oznaczyć plik jako wykonywalny to co robi to podczas wykonywania pliku powie to program powłoki w użyciu interpreter PHP zinterpretować zawartość pliku. Pytanie jest, co było to specjalna linia to, że można było na czubku PHP plików nie musi zawierać ta linia PHP lub PHP to polecenie, gdy chcemy wykonać plik? I rzeczywiście można to zrobić w kilka różnych plików. Uważam, że zależy gdzie binary PHP jest przechowywany, ale często usr / bin / php jest dobrym miejscem, aby rozpocząć. Można dowiedzieć się dokładnie, to przechodząc z powrotem do pralki i wpisując się, które php. Które polecenie wymyśli kiedy wykonujący binarny lub komenda gdzie odpowiedni plik jest. To mówi mi, że PHP jest naprawdę aliasing to plik binarny która jest przechowywana w usr / bin, czyli tam, gdzie wiele plików binarnych systemu są zainstalowane. Na przykład, jeśli przewijać się do góry, a teraz, że mam umieścić to: #! line in here Można przewijać w dół, a ja mogę spróbować uruchomić dynamic.php, ale pojawia się ten błąd, o pozwolenie odmowy przyjęcia i co to oznacza to, że ten plik nie jest obecnie dając wykonywalne uprawnienia. To nie jest oznaczony jako plik, że ktoś może być zasilany. Kiedy zabrakło wykonywać lub brzęk i masz plik wykonywalny z niego kompilator był wystarczająco inteligentny, aby wiedzieć, że hej, buduję plik wykonywalny. Prawdopodobnie chcesz go wykonać, więc to automatycznie skonfigurować uprawnienia dla Ciebie. To nie jest przypadek, ale podczas tworzenia zwykły plik od podstaw, Powodem jest zazwyczaj nie chcesz mieć dowolny plik na komputerze jest wykonywalny, więc trzeba rzeczywiście iść i zrobić to ręcznie. Najprostszym sposobem na to jest za pomocą polecenia chmod, i chmod + x mówi dodać trochę wykonywalny bo nie ma odczytu bit, bit zapisu i bit wykonywalny, R, W, X, i mówiąc: chmod + x włączy bit wykonywalny Następnie do pliku, które określają, które w tym przypadku będzie dynamic.php. [Student] Czy to jest włączone na wszystkich? Chodźmy to sprawdzić, tak jak byłoby sprawdzić uprawnienia? Czy wiesz, jak ja sprawdzić uprawnienia pliku? [Niesłyszalne odpowiedź uczeń] Przepraszam? >> [Student] XSD. XSD daje nam plik w hacków. Wykaz wszystkich plików,-l pokaże mi wszystkie pliki w moim katalogu rodzaju w ich długiej liście informacji pełnej, a więc tutaj widzimy, że Plik ten dynamic.php ostatnio zmodyfikowano 05 listopada o 16:21. Właściciel tego pliku jest jharvard. To użytkownik jest zalogowany To użytkownik Pracuję jak a jeśli jesteś również w urządzeniu masz również pracuje jako jharvard użytkownika. Jesteś w grupie studentów, i to są rzeczy, które zobaczysz wystarczająco często. Możemy pójść na wiele szczegółów tutaj ale w większości to, co chcesz patrzeć, jeśli szukasz, aby zobaczyć czy plik jest wykonywalny jest przede wszystkim użytkownik, który jest właścicielem pliku, właściciel, więc jharvard, a następnie mamy uprawnienia bity tu na lewo, i sposobem, aby przeczytać to, że ostatni bit zazwyczaj stosuje się do oznaczania, czy nie, co najmniej w tym przypadku, ten ostatni bit często będzie ustawiony na reklamy, aby wskazać że plik jest katalogiem, a nie tylko zwykły plik. Następnie dodaje się 3 bity właśnie tutaj określenia uprawnień, które właściciel pliku ma, więc w tym jharvard przypadku, jako właściciel pliku, może odczytywać i zapisywać ten plik, ale jest powiedzenie, że jharvard kreska nie może wykonać ten plik. Kolejne 3 bity są w grupie, więc jest to grupa studentów, więc jeśli nie było wielu użytkowników na moim urządzeniu, i mieliśmy wielu użytkowników jako część grupy studenckiej, następnie można je wszystkie odczytać ten plik, ale nie mogą napisać, i podobnie, ktoś inny, świat może odczytać ten plik, jak również. Jest dobry, długi writeup o tym, dzięki czemu można przeczytać online. W specyfikacji zadanej problemu idziemy do tego bardziej szczegółowo. [Student] Czy 218 powołując się na świecie? 218-off jest w mojej głowie Jestem zapominając ale nie. Zobaczmy. Jestem wygaszania tego teraz. Powrót do tego, co mieliśmy zamiar zrobić z tym chmod + x gdzie chcieliśmy dać dynamic.php uprawnienia wykonywalne i pytanie czy to da uprawnienia wykonywalne dla wszystkich lub po prostu jharvard, a my możemy zobaczyć przez uruchamianie poleceń i wpisując ls-l, i teraz widzimy, że jest to atrybut wykonywalności. Widać, że nastąpiła zmiana koloru. Teraz dynamic.php jest wymieniony w kolorze zielonym, i wygląda na to odpowiedź na pytanie, co, Charlotte? [Charlotte] Tylko jharvard. >> Tylko jharvard, yeah. Jeśli chcemy włączyć bit wykonywalny dla wszystkich w jaki sposób możemy to zrobić? Wszelkie myśli? >> + X? Tak, dokładnie. Charlotte mówi możemy zrobić chmod o + x dynamic.php, a teraz, gdy uruchomimy ls-l widzimy, że bity wykonywalności rzeczywiście są włączone dla każdego. I rzeczywiście można zrobić przeciwieństwo tego, więc możesz wyłączyć go dla każdego przy minus. Teraz jest wyłączony, a teraz możemy go włączyć do jharvard tak, że rzeczywiście możemy uruchomić go teraz, i teraz widzisz, kiedy uruchomić kod ten specjalny #! linia na górze, #! line, powiedział powłoki, powiedział nasz terminal hej, gdy plik ten jest uruchamiany, używać / usr / bin / php interpretować ten plik a następnie wydrukować wynik. [Niesłyszalne pytanie uczeń] Jasne, pozwól mi przejść z powrotem. Właśnie tak. Zobaczysz wszystkich tych dyrektyw zacząć z tym funta i wykrzyknik, czasem nazywany shebang, hash huk. [Animacja] Jak można uruchomić go z dynamic.php php zanim uczynić go wykonywalnym? Pytanie było jak można uruchomić to używając binariów PHP podczas dynamic.php nie jest wykonywalny? To jest super ważne, ponieważ jest to dokładnie tak, jak to będzie działać, gdy piszesz zestaw problemów 7. Większość plików PHP czasu nie są bezpośrednio wykonywalny. Sposób, że działa to, ponieważ jest to PHP binarny to plik wykonywalny. Interpreter jest rzecz, która jest wykonywana, i tak to, co robi jest dosłownie slurping w całej zawartości naszego dynamic.php pliku i kontynuacji linia po linii i wykonanie tych poleceń, więc to za pomocą naszego pliku PHP w liście instrukcji. To nie jest bezpośrednio jej wykonywania. To miejsce, gdzie możemy powiedzieć, że te pliki są interpretowane w czasie wykonywania. Jest prowadzony język razem zamiast coś, co określona w czasie kompilacji, nie opracowano język jak C Czy istnieje sposób, aby dostać się języka czasie wykonywania działać tak, jakby to język czasu kompilacji podoba, jeśli masz cały bieg odbywa się na serwerze zamiast-wiesz co mam na myśli? Tak, więc pytanie jest czy jest jakiś sposób, aby uruchomić języków czas działać bardziej jak kompilacji typów czasowych językach? I tam są, to znaczy, że jest aktywnym obszarem badań dla wielu z tych firm. Wierzę Facebook zrobił dużo pracy z PHP i opracowywania go w dół, dzięki czemu jest szybszy, optymalizując go ponieważ ich strona jest zbudowana na PHP. Jeśli już po node.js w ogóle, który jest rodzajem tłumacza JavaScriptu aby móc uruchomić JavaScript poza przeglądarką, poza swojej przeglądarce internetowej, bo tradycyjnie JavaScript po prostu uruchomić wewnątrz Firefox lub Chrome, i to zostać wykorzystane do fajne animacje się na stronie internetowej i dokonać strona dynamiczna. , Które zostało zbudowane na dużo pracy, że Google zrobił do JavaScript i C + + powiązać ze sobą, więc nie ma dużo aktywnych badań do dostać te języki do interakcji i ich optymalizacji, przede wszystkim dlatego, że tak wiele osób może kodować w PHP i JavaScript ponieważ jest to o wiele łatwiejsze. Jest o wiele ładniejszy. Nie masz wskaźniki. Nie masz rodzajów pływających wokół. Chcieli uzyskać korzyści z tych języków w czasie kompilacji wszelkich kontroli typu oraz prędkość i mniejsze zużycie pamięci, a wszystko to przy jednoczesnym zachowaniu elastyczności i łatwości korzystania z tych nowszych. Powrót do naszego pierwotnego planu ataku. Mamy kilka z tych pytań w naszym specyfikacji zestaw problemów. Przejdźmy przez nich bardzo szybko, a my go po całym pokoju. Charlotte, jakiego typu jest 3,50? [Charlotte] To podwójnie. >> To jest podwójne. Jimmy, co to jest następny? >> Tablicy. Array, niesamowite, a Jared, co jest fopen? [Jared] To źródło. >> To jest zasób. To dość nowy, a nie gwiazdy pliku, a nie pliku. To źródło jest typ w PHP, i przepraszam, Ella, ostatnio null jest co? Null. Null, jak to jest napisane w PHP? >> Ten sam sposób. Sam sposób, stolice? >> Tak. Tak, wszystko w porządku. Tutaj idziemy, mamy podwójne, mamy tablicę, mamy do zasobu, a następnie mamy null. Zobaczmy teraz Widziałeś- Zobaczmy, więc teraz myślę, co ja też chcę zrobić, to wyciągnąć strona ta tutaj, to php.net / manual, więc jeśli chłopaki kopią i otworzyć przeglądarkę internetową. Zamierzam wyciągnąć Chrome, umieścić, że widok Chcę pokazać wam to nie tylko dlatego, możemy rozmawiać przez cały dzień o typach i wszystkie rzeczy zabawa ale ponieważ jest to podręcznik PHP, i istnieje wiele programistów PHP tam. Istnieje wiele stron internetowych PHP, tam, i w rezultacie, jest dużo dokumentacji na PHP, i obsługi, to php.net, jest naprawdę dobre miejsce gdy masz pytania dotyczące tego, co jest najlepszym sposobem, aby zrobić X w PHP lub co robi funkcja wygląda? Tylko rodzaj poznania, jak to wygląda, bo będziesz tak tu często, bit problemu ustawić 7. Jeśli kończy się robi ostateczny projekt, który wykorzystuje PHP będzie to miejsce, będziesz się bardzo dobrze zna. Często sposób ludzie to wykorzystują Google do wyszukiwania w witrynie, i nie użyć pola wyszukiwania, które znajduje się tutaj, w prawym górnym rogu, który jest swego rodzaju małe. Jeśli Googling wokół czegoś zrobić z PHP i widzisz jeden z ręcznych łączy pop zazwyczaj można liczyć na, że jako zasób dość dobrym stanie. Niesamowite, tak z tych typów, tak z ciekawości, które z nich nie widzieliśmy? Wszystko, czego nie widzieliśmy tutaj? [Student] zasobów. >> Widzieliśmy zasób zaproszenia fopen. [Student] obiektów. Obiekty >> nie widzieliśmy na pewno. Callbacki nie widzieliśmy. Istnieje kilka typów tych pseudo. Na pewno widziałem tylko całkowitą i dwuosobowych. Nie widzieliśmy kilka innych, jeśli więc kliknij na liczby całkowite możemy zobaczyć, czy są jakieś inne liczby całkowite, że tu mamy? Czy wszystkie są-tak integer, integer, integer. Niektóre języki mają większe całkowite typy, jak widzieliśmy na MySQL dzisiaj było int a następnie big int. Cool. Więc obsługi PHP. Wróćmy do naszego zbioru specyfikacji problemu, a my teraz przejść do strony 4. Jedną z rzeczy, które się dzieje, gdy masz te języki , że nie ma tego statycznego typowania, więc te języki, gdzie trzeba zadeklarować Rodzaj zmiennej przodu aż jest dostać przypadki można rozpocząć o zmiennych różnych typów współdziałających ze sobą, PHP i robi to coś, gdzie stara się zrobić to, co uważa za najbardziej rozsądną rzeczą gdy są 2 różne rodzaje współdziałania z sobą. Na przykład, jeśli spojrzeć na te linie kodu tutaj widać, że mamy to, co się dzieje, gdy spróbować i dodać ciąg 1 do całkowitej 2. Co się stanie, jeśli spróbujemy dodać ciąg, który nie jest wartością liczbową ale rzeczywiste znaków, CS w ilości 50? Wtedy zobaczymy, czy jest coś, co dzieje się, gdy inna zamiast dodawać ciąg znaków na liczbę dodajemy liczbę na ciąg znaków, i tak dalej i tak dalej do punktu, w którym jesteśmy coraz jakieś dziwne rzeczy tu, gdzie mamy 7 + true. Co do cholery ma znaczyć? Jeśli faceci śmiało i wklej część tego kodu do twojego urządzenia. Można przechowywać go w dynamic.php. Zobaczymy, co się wydarzy. [Student] Wystarczy użyć wydruku nie, printf? Tak, tak, przekonasz się, że druk jest także ważna funkcja drukowania w PHP. Istnieje wiele różnych sposobów na to zrobić. Zobaczymy z kilka przykładów później raz zaczniemy mówić o unikalnej problemu, który mamy zamiar napisać i wtedy problem stężenia, że ​​będziemy pisać że nawet jeśli mamy fopen i fclose że nie jest często najprostszym sposobem, aby przeczytać w treści pliku. PHP ma wiele tych holdovers C-podobnych. [Student] Kiedy mogę umieścić we wszystkich 6 z tych rzeczy, tylko jeden numer jako wyjście. [Nate H.] Kiedy można umieścić we wszystkich 6 z tych rzeczy. Zobaczmy, czy to dlatego, że jest możliwe, jedną rzeczą jest to, że takie rozmowy drukujące nie są zakończone na koniec z nowych linii. Nie ma nowa linia dzieląca każdego zaproszenia do drukowania więc może dostajesz jeden duży numer, i to jest tak naprawdę połączeniem nowych postaci linii. [Student] Dobra, jak mam się upewnić, Cóż, jest kilka różnych sposobów. Można ręcznie umieścić w druk znaku nowego wiersza, echo znaku nowego wiersza, wydrukować z nowej linii. [Student] Więc echo jest to samo co printf? Printf jest jak C printf gdzie jesteś drukowania sformatowany ciąg. Jesteś dostarczanie mu ciąg formatu, a następnie wszystkich zmiennych zastępczych. Często coś, co nie jest używane, Zobaczmy, jak zrzeczenie się, Nie znam z PHP, niż ja z innych języków internetowych, i kiedy zostały zaprogramowane w PHP I zwykle nie używać printf ponieważ uważam, że szybciej się wykorzystać możliwości interpolacji ciąg znaków, który ma, które będziemy wchodzić, a ja pokażę ci tylko sekundy, natomiast w C mamy rodzaj tego robić hacky rzeczy, aby ją wydrukować poprawnie. Faktycznie możesz umieścić zmienne bezpośrednio do ciągów w PHP. Printf jest trochę zbyt długi na to, co zwykle. Tak, Ella. [Ella] Generalnie jeśli masz błąd parse znaczy- jak na C nie powiedzieć dokładnie, gdzie błąd jest i co to jest, tak to znaczy patrzeć przez całego kodu i zrozumieć to? Jest to zwykle bardziej ukierunkowane niż. Myślę, że w tym przypadku było trochę off, więc myślę, że w tym przypadku nam brakowało średnika. To stara się zrozumieć wszystkiego, tak jak tych języków tłumaczeń, tłumacz będzie spróbować i zrobić wszystko, by uczynić wszystko działa prawidłowo. Zobaczysz, na przykład, w JavaScript będziesz często-line wypowiedzi kończyć się średnikiem, tak jak robią w PHP, tak, jak w C. W JavaScript niektórych interpretatorów JavaScript w wielu przeglądarkach wprowadzi średnikami dla Ciebie jeśli zdarzy się, że brakuje im. Będą próbować zmieścić jakiegoś niechlujstwa ze strony użytkownika. To miejsce, gdzie może to być stara i próbuje i próbuje dokonać rzeczy praca, i wreszcie będzie dostać się do punktu, w którym jest napisane w porządku, Nie mogę zrobić to wszystko działa na ratowanie, i tam dostaniesz numer linii To może wydawać się trochę off od dokładnego miejsca. Ok, więc chodźmy przez to bardzo szybko. Skończyliśmy z Ellą, więc niech idą do Missy, i Missy, co to print ciąg 1 powiększonej o liczbę 2 dać? [Missy] 3. >> 3. Czy to ma sens? Tak jakby? Czy to daje numer? Czy to daje ciąg? [Missy] numer. >> To jest liczba. Ale to jego drukowania, więc to będzie Ci jakiś ciąg. Jedną rzeczą, którą możemy zrobić, aby to sprawdzić jest, jeśli mamy $ var = 1 + 2 i wtedy mówimy echo gettype, więc używamy trzeci rodzaj drukowania tutaj. Teraz możemy zobaczyć, co się tutaj dzieje. Oto co mamy to mamy liczbę całkowitą z tego. Mimo, że byliśmy dodając ten ciąg na liczbę, nie mieliśmy ciąg z tym, tak jak Missy powiedział. Byliśmy coraz liczbę całkowitą. Okay, więc zobaczymy, obok up, Kevina. CS + 50? >> [Kevin] 50. [Nate H.] 50. Czy to ma sens? [Kevin] Tak. [Nate H.] Dlaczego? Dlaczego to dla ciebie sens? [Kevin] Bo to tylko o ciąg, mając zero numeryczny. Tak, świetnie. Rodzaj dwuznacznych sytuacjach, ale dobrze jest wiedzieć, co się dzieje. Stella, co dzieje się dalej z numerem 1 + łańcuch 2? [Stella] 3. >> 3 ponownie. I w tym przypadku, nie mamy ciąg lub numer? Dajmy to spróbować. Szybciej niż ktokolwiek mi uzyskać odpowiedź? Charlotte? Oh, Ja nie, dobra, zobaczymy, mamy zamiar zrobić to samo coś takiego gdzie mamy szereg plus łańcuch i będziemy echo rodzaj, zobacz, co mamy. Również uzyskać liczbę całkowitą. Nie ma znaczenia, który z nich jest łańcuch, który z nich jest liczba. Wciąż dostanie liczbę całkowitą. To nadal będziemy robić, co możemy oczekiwać. W porządku, więc Sam, co o 90 + 9 butelek piwa na ścianie? [Sam] 99. >> 99. Brak butelki piwa na ścianie, choć. To daje nam trochę więcej informacji o tym, co się dzieje. [Sam] Jeśli napisał 9 literami wtedy masz 90, prawda? [Nate H.] Tak. Pytanie było, gdybyśmy napisana 9 się jako N-I-N-E możemy dostać 99 lub 90? Chcemy zdobyć 90. Jest to dosłownie po prostu patrząc na cyfrowych znaków. To nie jest wystarczająco inteligentny, aby rozpoznawać słowa numerycznych i takie rzeczy. Tak. [Student] Czy istnieje coś takiego jak Rzutowanie w PHP? Jest, i to dokładnie tak, jak chcesz to zrobić w C. Co 10/7, Charlotte? [Charlotte] 1,4285. [Nate H.] Tak, tak, co może być zaskakujące, o tym? Co by się stało, jeśli nie tego samego rodzaju rzeczy w C, jeśli nie 10/7 w C? [Charlotte] Trzeba tylko dać you-w zależności od sposobu typecasted myślę to daje tylko ograniczoną liczbę cyfr po przecinku. Tak, więc ograniczona liczba cyfr po przecinku. Co jeszcze może być-to daje żadnych cyfr po przecinku? Często nie, więc ponownie, w zależności od tego, jak jesteś Rzutowanie to może lub nie może przekonwertować go na liczbę zmiennoprzecinkową. Tutaj było to miłe, że tak się stało. Gdybyśmy Pokazałem wam to z powrotem, kiedy zaczęliśmy robić takie rzeczy w C prawdopodobnie zrobiłby trochę więcej sensu że nie po prostu pójść do 1. I w końcu, Jamie, co 7 + prawda? [Jamie] 8. >> 8. Co to znaczy? Myślę, że to po prostu daje prawdziwą wartość 1. Tak. Co się stanie, jeśli to zmienić na false? [Student] 7. Tak, tak, pamiętam, gdzie mówimy o tych wartościach binarnych, 1 jest włączony, 0 jest off? Teraz mamy prawdziwy jest 1, 0 jest fałszywa, i może nie widziałem tego w przykładach C, które zrobiliśmy w ostatni semestr, ale historycznie typ bool w C nie jest prawdziwy typ, więc ludzie używali 0 i 1 w miejsce prawdy i fałszu. Jest to przejaw tego. Ok, więc jeden ważny element w tym wszystkim jest to, że mamy te różne typy. Mogą komunikować się ze sobą. Często mogą komunikować się ze sobą w sposób, który jest miły, jak widzieliśmy tutaj. Miło jest móc mieć ciąg 1 i numer 2, dodaj je razem i 3. To ma sens. Jednak, kiedy piszesz stron internetowych, a zwłaszcza, gdy jesteś przetwarzania wprowadzania danych przez użytkownika, więc powiedzieć, że napisałem formularz internetowy , że zbiera informacji od użytkownika, a następnie przechodzi do przetwarzać na tylnym końcu, po stronie serwera, w kodzie PHP jeśli spodziewasz się, że wartości, które użytkownik wpisze w i przedłożone do formularza być liczbą całkowitą lub być liczbą zmiennoprzecinkową czy coś takiego trzeba jawnie oddanych a następnie zrób sprawdzanie typu. Nie chcesz, aby po prostu polegać na tym systemie żonglerki typu do rzeczy wyszło, zwłaszcza ze względu na bezpieczeństwo i po prostu solidnie swojej stronie. Po prostu coś, aby pamiętać, że kiedy jesteś obsługi danych z formularzy coś, co jest w poście lub superglobals get upewnij się, że zawsze potwierdzić go i przekształci i typecast go. I tak jak rozmawialiśmy przed chwilą, że Rzutowanie w PHP jest dokładnie taki sam jak w C, gdzie masz nawiasy i typu. Miej to na uwadze. Jedną z funkcji, która będzie przydatna, gdy robisz to jest używaliśmy i jest to rodzaj w bok- używaliśmy tej funkcji GetType tutaj dowiedzieć się typ zmiennej, i podczas gdy jest to przydatne do debugowania i zobaczyć, co Typ zmiennej jest nie ma ich używać, na przykład, w stanie, w którym pan sprawdzając czy gettype z $ var = INTEGER coś zrobić. To jest złe, złe, złe. Zamiast tego są te funkcje wywoływane jest liczbą całkowitą, to ciąg znaków, jest tablica, że ​​chcesz używać zamiast, tak więc w tym przypadku co chcę zrobić, a nie tego faceta tutaj jest używać jest liczbą całkowitą var. I są one często określane jest * is_ w tym sensie, że można zastąpić * z liczby całkowitej, string, et cetera, i po prostu upewnić się, naprawdę szybkie jest to int php. Wygląda tak, jak można to zrobić albo jest int lub jest liczbą całkowitą, jak również? Tak, alias, tak INT Całkowita pseudonimy. Cool. Jak nam idzie? Miejmy przyspieszyć trochę. Teraz będziemy mówić o tablicach, więc jak widać w dalszej części specyfikacji mówimy o tym, jak tablice w PHP są nieco inne niż w C. W rzeczywistości są one rodzaju amalgamatem tablice, że trafiłeś do poznania i miłowania w C gdzie co jest tego samego typu zapisywane kolejno i ciągły w pamięci, i masz te liczbowe indeksy. Masz indeksu 0, indeks 1, indeks 2, i przechowywać wartości w tych indeksów. Również w C, gdy napisał Speller, wiele z was A hash tabeli podejście, i zobaczyłem, że tam mieliśmy inny rodzaj pamięci, gdzie byliśmy mapowanie Klucz do wartości, więc kiedy próbowałem zapisać coś w tabeli mieszania trzeba było określić, że chcesz przechowywać go z określonego klucza, i że klucz określa położenie wartości i gdzie go przechowywać. Ty niby masz obu tych pojęć się w tym samym czasie w tablicy PHP iw efekcie, często nazywają te tablice asocjacyjne gdzie jesteśmy kojarząc klucz wartości. W tej kolejnej części mówimy o prostej tablicy PHP gdzie mamy klawiszy A, B i C, wszystkie ciągi, mapowanie do liczb 1, 2 i 3. I można mieć klucze różnych typów. Może masz jakieś klucze, które są ciągi znaków, niektóre klawisze, które są liczbami całkowitymi. Możesz mieć wartości różnych typów. Możesz mieć wartość, która jest ciągiem znaków, wartość to liczba całkowita, wartość jest tablica lub inny obiekt, na przykład wszystkie w tym samym obiektu tablicy, co jest dziwne. Nie musisz mieć tablicę, która jest po prostu jeszcze jedną typ elementu w nim. Można mieć wiele różnych rzeczy dzieje się w środku. Inną rzeczą, aby pamiętać, że kiedy widzą coś takiego w kodzie, który jest ważny PHP zadeklarowania tablicy tylko jak ta, 0, 1, 2, 3, 4, 5, które deklarują zainicjowany $ arr jest ta tablica. Ale co pan właściwie coraz pod maską jest tego rodzaju niejawna generowania kluczy, gdzie mamy 0 do 0, 1 do 1, 2 do 2, 3 do 3. I okazuje się, że nawet jeśli masz tablicę, jak ten facet się tutaj gdzie masz, b i c, jako klucz a następnie uruchomić metodą Push tablicy zacząć używać tej tablicy jak stos, dzięki czemu można zobaczyć, że ten obiekt array, tablica ta jest naprawdę staje się przeciążony. Możemy użyć go jako tablicę. Możemy używać go jako tabeli mieszania. Możemy użyć go jako stos. Po uruchomieniu popychanie rzeczy na tej tablicy Pierwszą rzeczą, którą naciskać na to będzie indeks 0, a następnie indeksu 1 i indeks 2. Możesz uzyskać ten rodzaj ukrytego generacji kluczy dopóki nie zostaną określone jawnie. Sposób określić klucze jawnie, oczywiście, za pomocą tej notacji wspornika, który jest podobny do tablic z wyjątkiem, a nie tylko pozwalając całkowitoliczbowe indeksy w tutaj, teraz pozwalają niczego. Jeśli chcesz aby twój klucz jest ciągiem, można określić to tak. Jeśli ma to być int, można określić go z int, którego chcesz użyć. Pytania na które do tej pory? Jedną z miłych rzeczy na temat tego pomysłu to, że można zawsze tylko jeden wartość przechowywaną z danego klawisza. Jeśli wrócimy do naszego urządzenia, chciałbym usunąć niektóre z tych rzeczy. I powiedzmy, zainicjować tablicę być 0, 1, 2, zrobione. Jeśli teraz wiem, że, na przykład, jeśli echo $ arr [0] Mam zamiar dostać 0 wartość drukowane, oraz ponieważ nie może być zawsze tylko jedną wartość dla danego przechowywany klucz jeśli przechowywać coś w $ tab [0], mówią, wtedy wiem, kiedy echo $ arr [0] ponownie I nie zamierzam się 0 wydrukowany jak wcześniej. Ja tylko dostanie. Więc to jest w zasadzie powiedzieć, że nie mogę mieć $ arr [0] przechowywanie 2 różne wartości. Nie można przechowywać zarówno 0 i ciąg a, jak to dosłownie zamienia co było w $ arr [0] wcześniej. Powodem Wspominam o tym, to uruchomić go, zobaczyć, co się dzieje. Zobacz tutaj, że mam 0 wydrukować i następnie tutaj. Nie ma nowej linii tam, bo jestem leniwy i nie umieścić, że widok Co jest fajnego to możemy to wykorzystać jako sposób uchwycić ideę zestawu gdzie nie możemy mieć wielu kluczy w tablicy. Nie możemy mieć identyczne klucze w tablicy. Nie mogę mieć klucz 0 i wartość 1 i klucz i wartość 0 w lub klawisz 0 i wartość true. Klawisze są wszystko jest tylko 1 klucz w tablicy. Mimo, że można mieć taką samą wartość przechowywaną kilka razy w tablicy pod różnymi kluczami to nie jest możliwe, aby identyczne klucze wiele razy w tablicy PHP. Jeśli przyjrzymy się tym następnym problemem unique.php, gdzie chcemy otworzyć plik PHP zawierający listę ciągów, jeden ciąg znaków na linię, i chcemy znaleźć wszystkie unikalne ciągi w tym pliku wszystko, co musimy zrobić, to użyć jednej z tych tablic PHP i użyć ciągi znaków w pliku, jako klucz do tej tablicy i zachować aktualizacji naszej tablicy jak przechowywać te nowe klucze. Jak czytamy każdą linię z pliku możemy zapisać go w tablicy, i na koniec w musimy naszych kluczy w tablicy wszystkie unikalne ciągi w pliku. Czy to ma sens? Zobaczmy, jak to działa. Zamierzamy otworzyć, według specyfikacji, nowy plik o nazwie unique.php. Otwórz. Ups, przepraszam, nowy plik. Zamierzamy uruchomić go z samego startu i końca znaczników. Mamy zamiar zapisać go w sekcji 9, i będziemy go nazywać unique.php. Dobra, teraz powiększyć Chodzi o to, otworzyć plik, czytać plik linia po linii. Dla każdej linii w pliku będziemy mieć tablicę, gdzie mamy  linia jak nasz klucz. I wtedy, gdy mamy do końca tutaj $ Arr na klucze są unikatowe linie z pliku, ponieważ wiemy, że jeśli mogę umieścić linię do tej tablicy wiele razy, to po prostu zachować nadrzędnymi starą wartość i możemy rzeczywiście umieścić wiersz tablicy w jak sam tak po prostu. To jest dziwne. Jesteśmy przechowywania tej samej pary kluczy i wartości w kółko, ale skoro mamy zagwarantowane, że będzie tylko 1 klucz o nazwie linia więc jeśli mamy plik, który mówi-a plik z odgłosów zwierząt i ma Hau, Hau, meow, meow, moo, moo, i za każdym razem czytać hałas zwierzęcego, jak Hau i przechowywać go w naszej tablicy mamy Hau, a następnie po raz drugi przechowujemy Hau nadpisze ona po raz pierwszy, że zapisane to. W końcu będziemy mieć tylko jeden wpis w tablicy dla każdego z dźwięków zwierząt w naszym pliku odgłosy zwierząt. Czy faceci pewni, że można rozwiązać na otwarcie pliku w PHP? Jednym ze sposobów, aby to zrobić, chodźmy nad tym szybko-jeden sposób, aby to zrobić jest z fopen, jak widzieliśmy wcześniej. Możesz fopen some_file.txt. Można go otworzyć w trybie do odczytu, tak jak w C. To jeden całkiem dobry sposób to zrobić. Również wtedy odczytać z pliku linia po linii mają takie same funkcje, wielu z nich, które miało miejsce w C. Masz fgets. Masz feof, choć nie lubię używać, że bo pamiętam, że nie było super w C. Można to zrobić w ten sam sposób, ale tutaj jest naprawdę fajne. Przepraszam, ale nie chcę tego robić $ plik, ale nie ma funkcji o nazwie pliku w PHP, i ta funkcja tutaj jest fajne, bo odczytuje całą zawartość z pliku określonego przez użytkownika, więc some_file.txt, odczytuje całą zawartość tego pliku do tablicy a następnie umożliwia iteracyjne nad nim, który jest całkiem fajny. Jeśli się go, na przykład, w naszym przeglądarki i patrzymy na Google dla pliku PHP widać tutaj, że nasz podręcznik mówi, że plik odczytuje całą zawartość pliku do tablicy, i możemy file_get_contents zwrócić zawartość pliku jako ciąg znaków, ale zazwyczaj dopiero się go jako tablicy jest bardzo miłe, bo to, co robi jest to łamie to tak, że każdy element w tablicy jest jedna linia pliku, więc jeśli spojrzymy na sprawy 0, to pierwszy wiersz w pliku. Plik 1, druga linia, plik 2, wiersz trzeci, i tak dalej i tak dalej. Czy nie byłoby miło, gdyby to było wszystko, co musiałem zrobić w C? Całkiem sprytne. David pokazał to w wykładzie i idiom pokazał było że oprócz naszego standardu dla pętli w PHP, że mieliśmy for (i = 0 $, i <10, i + +), i można zrobić to w PHP też samo- mamy też fajny konstrukt zwany foreach. Foreach jest naprawdę przydatne, gdy iteracja tablic lub tych strukturach ponieważ pozwala wyciągnąć każdy element tablicy bez konieczności ręcznego indeksowania zrobić samodzielnie, bez konieczności ręcznego tworzenia indeks zmiennej zwiększamy go, wyciągnij wartość w tablicy w tym miejscu, bo to bardzo powszechna rzecz. Prawdopodobnie tego robić ton czasach kiedy robisz rzeczy C w ciągu semestru, więc z tym foreach możemy w pętli nad tej tablicy plików, i składnia jest, że chcemy teraz w pętli, tej tablicy i określić, że zmienna będziemy używać do przechowywania elementem tej tablicy lokalnie, lokalny do zakresu tej pętli foreach jest będziemy nazywać line. Jeśli jest to plik tylko słowa i nie jedno słowo w linii moglibyśmy nazwać to słowo, a także, tak naprawdę możesz dać to nazwę, cokolwiek chcesz to nazwać, , a następnie w pętli możesz zrobić co chcesz z tej zmiennej linii. Jeśli to nie wystarczy, aby uzyskać wartość tablicy i chcesz również otrzymać Indeks wraz z nim można określić nazwę dla indeksu jak również wartość, a teraz masz dostęp do 2 zmiennych. Masz $ i oraz linia gdzie $ i jest indeksem w tablicy, i linia jest linia, że ​​pobierane z pliku. Na przykład, jeśli chcemy wydrukować echa linii 0 do pliku, jak to, możemy to zrobić tak jak ten, "Linia $ i tego pliku jest $ line" i tutaj jest coś, czego również nie widziałem jeszcze ani gdzie byłem po prostu całkowicie pomijane cała ta% s% d biznesu to, że mieliśmy do czynienia w C, a zamiast Poszedłem prosto do zapisu zmiennych w wierszu w moim ciąg. To się nazywa zmienna interpolacja, string interpolacji gdzie jesteś farszu zmienne prawo, i interpreter PHP jest na tyle sprytny, kiedy to czytając ciąg zaczynający się cudzysłów- nie pojedyncze cudzysłowy, z pojedynczymi cudzysłowami nie możesz to zrobić- ale z podwójnymi cudzysłowami, gdyż czyta ona szuka zmiennych. To polowania na nich, a jeśli widzi zmiennych zajmie wartość zmiennej i takie tam to w ciąg czy może przekształcić go w reprezentacji strun który jest całkiem fajny. Na razie niech komentarz z resztą wszystko, zapisać to, i to, co możemy teraz zrobić, to możemy otworzyć plik że możemy wywołać some_file.txt-Utwórzmy nowy plik- i możemy umieścić w kilka bezsensownych rzeczy się tutaj tylko do testowania wszystkiego, zapisać, nazwać some_file.txt, jak robię tu na górze, i teraz, jeśli pomniejszyć tylko upewnić, że wszystko jest w tym samym katalogu, wygląda na to, mam unique.php i some_file.txt w tym samym katalogu. Jeśli uruchomić unique.php php zobaczyć jak to wypisuje każdy wiersz w moim pliku i co linia jest? To dość silny, prawda? Spójrz, zajęło 3 linie kodu do otwarcia pliku. Cóż, 4 linie kodu. I nie można liczyć dziś wyraźnie. Ale tak naprawdę tylko 2 ciekawe linie kodu, bo pozostałe 2 były nawiasy klamrowe, ale w tym dużo kodu udało się otworzyć plik, iterację niej wyciągnij numer wiersza i samej linii i wydrukować. Fajnych rzeczy. Charlotte. [Charlotte] Mam pytanie na temat składni. Więc foreach oferty z każdej linii pliku otwieranego, i wtedy, gdy chcesz zrobić rzeczy z każdej linii po prostu zrobić to jako a następnie skojarzyć wartość. [Nate H.] Co można zrobić tu-pytanie foreach ma do czynienia z tablicy, więc foreach składnia naprawdę foreach i zauważ, że nie ma miejsca lub coś pomiędzy za i każdy. Mają iść obok siebie, , a następnie odbywa się w tablicy, i wtedy masz to inne słowo o nazwie, jak ma być tam, a po co możesz umieścić jedną nazwę zmiennej, w takim przypadku będziesz się wyciągając wartości z tablicy, nie wskaźniki, lub jeśli robisz to jak napisałem poniżej dostajesz klucze i wartości. Masz foreach element tablicy lub parze tablicy jak wprowadzisz do wartości czy tylko wartość. W zależności od tego, czego potrzebujesz, jeśli nie potrzebujesz kluczy można przejść z wartością. Jeśli chcesz z klawiszy można przejść z nich. [Charlotte] Ja też sobie sprawę, że nigdy nie uznał i lub linii. Jak to w ogóle wiesz co one są? [Nate H.] Co masz na myśli przez stwierdzenie,? [Charlotte] Nigdy nie powiedział im, co ja lub linia oznacza. [Nate H.] nigdy nie powiedzieliśmy komputer co ja lub linia oznacza w kategoriach- [Charlotte] To oni zindeksowane lub że Oni są- [Nate H.] Nigdy nie powiedział jej, że to ma być indeks lub klucz i wartość, a to dlatego, że to PHP interpreter. To służy jako zgłoszenie i mówi dobrze, klucz będzie zmienną i przechowywane i zmienną. Wartość ma być przechowywana w zmiennej linii zwanej, więc ta służy jako deklaracji tych zmiennych i mówi, że $ i jest kluczem, a $ jest wartością. Tak, Ella. [Ella] Jeśli przyciski nie są dokonywane numerycznie jak to, aby zdecydować, co to będzie drukować wszystko? Czy to jest tak, jak rozkaz to wpisane? [Nate H.] Dajmy mu szansę. Stwórzmy zmienną o nazwie arr, i możemy zrobić idzie do 7. Powiedzmy 0 idzie do innej tablicy z 1, 2, lub jabłka. Załóżmy, że 7 przechodzi do 1, B przechodzi do 2, i 3 do 4 przechodzi. Jest to rodzaj szalonej przykład patrząc ponieważ jesteśmy mieszania smyczki i liczb całkowitych w każdym miejscu. Nie ma prawdziwego celu tej tablicy. To znaczy, możemy zamówić wszystko w porządku alfabetycznym według kluczy. Możemy zamówić wszystko alfabetycznie według wartości. Możemy próbować i brać pod uwagę, że niektóre są ciągi, niektóre są wskazówki, i mogliśmy spróbować i konwertować je wszystkie do tego samego typu i zobaczyć, co się dzieje, albo możemy uznać je w wartości, w którym mamy już ich wprowadzenia gdzie umieścić ten facet pierwszy, ten facet w sekundy, ten facet w trzecim, ten facet w czwartej, et cetera. Zobaczmy, co się dzieje, gdy ten kod. Jeśli przewinąć i zrobić tego samego rodzaju rzeczy, i tu nie jest drukowanie nowych linii. Gdy czytać rzeczy z pliku został tym nowych linii w wartościach, który dlatego drukowane ładnie, a tu się nie stało, więc dlatego wszystko jest smushed razem. Dodajmy w tym nowej linii tylko do rzeczy ładne. Miejmy powtórzenie go, a więc o patrzeć na to, co się stało. To wszystko, co drukowane w kolejności, w której możemy umieścić go do tablicy. To pozwala zachować porządek w tym sensie. Wracając do tego problemu unikaty gdzie chcemy być w stanie iterować plik, i dajemy some_file.txt, i jedziemy do iteracyjnego to tak. Powiedzieliśmy, że chcemy wykorzystać tablicę, aby upewnić się, że, że mamy wszystko unikatowe linie z tam, a my może zrobić, że naprawdę łatwo tylko przez przechowywanie w tablicy, że oczywiście deklaruje poza zakresem pętli i powiedział, że jeśli użyto wierszy w pliku jako klucze w tablicy gdy weszliśmy duplikat linii bylibyśmy nadpisanie poprzedniej wartości. Nie jest to możliwe, aby 2 klucze, które są identyczne, w tej samej tablicy. Możemy to zrobić tylko to. Będziemy się pozbyć tego oświadczenia echa tutaj. Tutaj mamy do przechowywania linii w pliku w naszej tablicy stosując się jako klucz. Nic do niego, i okazuje się, że nie trzeba nawet tego klawisza. Nie musimy, że i zmienna. W tym momencie, jakbyśmy byli do innej pętli foreach i byliśmy w pętli na każdym arr i linia teraz, jeśli echo-ups, przepraszam. Nie możemy użyć przecinka. Musimy wykorzystać to jako hasła. Teraz jeśli echo linii powinniśmy dostać wszystkie unikalnych słów w pliku. Jeśli idziemy do some_file.txt, i powiedzmy, że możemy zrobić jabłko, banan, jabłko, jabłko, banan, jeśli mamy drukowanie wszystkich unikalnych słów w tym pliku trzeba tylko uzyskać jabłko i banana wydrukować. Jeśli zapisać to, teraz będziemy powiększać powrotem, php unique.php i ta-da. Mamy powodzeniem uniqued plik. Ostatnia część tego problemu jest prośbą, aby posortować tę tablicę przed drukowane go dlatego, że w tym prostym przykładzie, że mamy tylko zrobić mieliśmy szczęście, w tym sensie, że file- Zrobiliśmy to dobry przykład z jabłek i bananów. Było już posortowane. Ale za pomocą prostej funkcji sortowania można posortować tablicę, który jest dość sprytne. Ostatnią rzeczą chciałem porozmawiać z wami o naprawdę szybko jest to, że tego rodzaju PHP jest wszystko dobrze, i to jest bardzo poręczna wiedzieć, jak to zrobić, jeśli kiedykolwiek trzeba zrobić małe, szybkie rzeczy programowo. Na przykład, jeśli trzeba napisać program, który, powiedzmy, stawia wszystkich na odcinki nie zamierzam iść i napisać to w C. To będzie długa. To będzie rodzaj bólu, zwłaszcza, jeśli są to pliki, które, tak jak wy nie widziałem. To takie miłe, że tylko z tego kodu tu dużo udało nam się zgrać przez plik, wyciągnij wszystkie unikalne wartości i wydrukować je z powrotem. Jednakże, dla zadań, dla projektów, jeśli budujemy strony internetowe z PHP jest to, że moc kończy nam nasze pliki PHP za pomocą tego tłumacza, i tłumacza przetwarza wszystko w znacznikach PHP, zostawiając wszystko nietknięte i wypluwa wyniki. Możemy to zrobić, aby zbudować HTML programowo. Teraz, jeśli wrócimy do specyfikacji, ostatni problem w specyfikacji mówi o tej idei koncentracji i tworzenie menu rozwijanego, którym może, ale nie chcę zrobić, w zależności od tego, co Twój projekt końcowy robi, , który pozwala użytkownikowi wybrać z listy wszystkich możliwych stężeniach ich jeden koncentracja. Teraz jest to rodzaj bólu, aby wpisać na to i musi to wszystko zrobić ręcznie, zwłaszcza, gdy masz się upewnić że masz wszystkie kątowników w odpowiednim miejscu i wszystkie cytaty w odpowiednim miejscu, więc z PHP można to zrobić programowo, a można to zrobić bardzo szybko. Przyjrzyjmy się, jak to zrobić. Mamy zamiar otworzyć nowy plik. Mamy zamiar umieścić w naszych PHP tagów. Będziemy nazywać concentrations.php, a teraz, gdy to robisz, coś dobrego o tym myśleć kiedy próbujesz mieszać i łączyć się PHP i HTML swojej jest dowiedzieć się, w porządku, to, co jest elementem, który chcę programowo wygenerować? Co to jest część, że można programowo wygenerować? To prawda, że ​​można zrobić wszystko z kodu HTML wewnątrz bloków PHP. Możesz powtórzyć cały HTML jako ciągi. Na przykład, jeżeli chcę zacząć robić SELECT tagów wewnątrz PHP Mogę powiedzieć, echo, powiedzmy wybrać name = stężenie, , a następnie w dół poniżej mógłbym inny znacznik echa lub innym echo nazywa blisko wybrać. To jeden ze sposobów, aby to zrobić, bo co to jest dosłownie zrobić jest wydrukować ten tekst, gdy jest prowadzony przez interpreter PHP, więc wynik będzie HTML. Jeśli mam zapisać ten plik, jak to jest teraz i uruchomić php concentrations.php patrzeć na to, co mam. Mam ten otwarty Zamknij Wybierz tag. Gdybym miał to zrobić i ja, aby zapisać ten wynik do pliku, powiedzieć concentrations.html-wait, wygląda jak l poszedł na drugą stronę, teraz, gdy otwierają się tutaj concentrations.html widzisz mam poprawny plik HTML. Czy to jest dziwne? Używamy PHP do tworzenia kodu HTML, tworzenie prawidłowych HTML. Sposób, w jaki to robimy to my tylko o wydruk PHP HTML, który chcemy wydrukować. To jest dosłownie jak PHP websites pracuje. Podczas wizyty na stronie internetowej, że wyśle ​​cię do czegoś coś, coś, coś dot com slash index.php Komputer jest dosłownie wywołanie index.php, uruchomienie go przez interpreter PHP i cokolwiek śmieci wychodzi to jest wysłanie z powrotem do przeglądarki i mówi hej, przeglądarka, interpretują to jako HTML. Dobrą rzeczą jest to, że może być ból ciągle pisać echo, echo, echo, echo i ująć wszystko w cudzysłowie jak to, więc jeśli chcesz napisać HTML, który będzie statyczna samemu można to zrobić w ten sposób, umieścić go na zewnątrz, zamknij ją, a tutaj tylko umieścić wewnątrz znaczników PHP które znasz chcesz programowo wygenerować, w tym przypadku jest to opcja te tagi które są ból wygenerować. Na przykład, możemy wygenerować tysiąc tagów opcji robiąc coś takiego, $ i <1000, i + + i mówiąc wartość opcji echo = $-ups, nie mogę tego zrobić. Cóż, spróbować i zobaczyć, co się dzieje. $ I, a następnie mówiąc $ i