[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 </ option.
Zamiast wpisywać się, że znacznik opcji tysiąc razy różne
Używam kod PHP wygenerować go automatycznie, programowo.
Rodzaju sprytne. Tak.
Pamiętam to zostały wymienione ani w wykładzie lub instrukcji
ale jaka jest różnica między znakami cudzysłowu,
te normalne i te pojedyncze rzeczy?
To jest rzeczywiście coś, co zrobiłem źle tutaj, że miałem zamiar pokazać.
Poszczególne wypowiedzi nie pozwalają jakichkolwiek znaków specjalnych,
więc wszystko w obrębie jednego łańcucha cytowany jest interpretowany dosłownie.
Gdybym miał \ n wnętrze apostrofami i zapisać to, na przykład,
a teraz idę na dół i uruchomić go-
oops, gdzie idę?
Oh, to dlatego, że zapomniał $.
>> Teraz jeśli otwarcie-rzeczywiście, tutaj będziemy pozbyć wpisanie go do pliku.
My po prostu przeczytać.
Tutaj widać, że mam to dosłowne \ n w ciągu, jak nie o rzeczywistej nowej linii,
i podobnie, zamiast rzeczywistego interpolacji wartość zmiennej
dała mi $ i sam, który jest rodzajem bólu.
Rozwiązaniem jest użyć cudzysłowów,
a kiedy użyć cudzysłowów to rzeczywiście
poprawnie interpolować wartości wszystkich tych zmiennych w tutaj
i uznają ten \ n będzie nowa linia, że ​​jest to
a nie \ n.
Wykorzystaniu jednego z nich jest miła, gdy masz
znaków, które mogą być interpretowane jako znaki specjalne, ponieważ wtedy nie muszą
uciec je stale.
Rzeczy może bałagan, i często tak, jak to zrobić,
tak, aby rzeczy proste, jest to, że jeśli będę mieć nic
HTML jak w moim kodzie będę to zmienił w pojedynczy cudzysłów
a następnie użyć tego operatora konkatenacji
złączyć zmienne w.
To jest inny sposób to zrobić
gdzie mamy kropkę, która ma zamiar połączyć to ciąg
z tego z tego z tego,
i teraz nie mam do ucieczki tych cudzysłowów.
Nie muszę korzystać z tego faceta do ucieczki.
Oni dosłownie zostać wydrukowane jako cudzysłów i potem ten facet tutaj.
Jest to kolejny sposób mieszania wszystkiego razem.
>> [Student] Również, kiedy powtórzył gettype nie było cudzysłowu w ogóle.
Dobra, więc echo jest rodzajem specjalnego w tym sensie, że nie trzeba nawiasów.
Nie musisz mieć cudzysłowie koniecznie wokół zmiennych
jak to jest ważne, aby powiedzieć echo $ i, a to będzie interpretować to jako ciąg.
To zrobi obsady, więc możemy to zrobić, i to jest ważne również, ale nie jest to potrzebne.
Jest to opcjonalne.
W tym tygodniu w zestawie problemu patrzeć na wiele tego rodzaju rzeczy
gdzie jesteś mieszanie i dopasowanie HTML z PHP
podobnie jak to, a teraz, jeśli mamy przejść z powrotem i uruchomić to
widzimy, że mamy całą masę wartości opcji
że po prostu dostałem wydrukowane.
Mamy cały ten HTML, który dostał generowane naprawdę szybko dla nas.
Zostawiam to jako ćwiczenie.
Jest bardzo podobny do odczytu pliku, który zrobiliśmy wcześniej.
>> Jest concentrations.txt plik można ciągnąć w dół od CDN,
i można go otworzyć za pomocą tego samego foreach trik, który zrobiliśmy wcześniej,
i foreach wystarczy echo opcję i podłącz
odpowiednie wartości, odpowiednie klucze i indeksy,
, a następnie dostać się w dół, że dosłownie tworzy
programowego dla was wszystkich różnych stężeniach w Harvardzie.
Przydatna rzecz mieć.
Istnieje wiele konfiguracji rzeczy dla tego zadania.
Jeśli jeszcze tego nie zrobiłeś to już zrobić następny pół godziny, godzinę,
jakiś czas dzisiaj na pewno na pewno,
spacerem przez spec zestaw problemów,
zobaczyć, co się dzieje z tworzeniu vhosts, lokalnym komputerze, wszystkie te rzeczy.
Jedna rzecz zwrócić uwagę jest to, że teraz
w większości zestawów problemowych Byliśmy już w folderze Dropbox
a następnie przesłać ten zestaw problemów plik zip i rozpakować go.
Do tego zestawu problem, którego nie chcę.
Chcesz iść do tego katalogu vhosts.
Będziemy chcieli, aby przejść do vhosts i przejść do katalogu lokalnego hosta w niej,
i to, gdzie będziemy chcieli, aby rozwinąć plik zip,
rozpakuj go i przygotuj się udać.
Będziesz musiał wykonać czynności ściśle.
>> Jeśli masz jakieś pytania, wyślij e-mail, opublikować go na Porozmawiaj, przyjdź do godzin urzędowania.
Dzięki chłopaki. W przyszłym tygodniu będziemy mieć sesję opinie na quiz.
Zapraszamy na ostatni zestaw problemów. Mam nadzieję, że to wszystko idzie bardzo dobrze.
[CS50.TV]