[Powered by Google Translate] [§ 8] [weniger komfortabel] [Nate Hardison] [Harvard University] [Dies ist CS50.] [CS50.TV] Herzlich Willkommen auf unserer vorletzten Abschnitt. In dieser Woche werden wir über PHP sprechen, und dann nächste Woche wir ein wenig Rezension für Quiz 1. Wir werden auf Seite 3 des Problems beginnen setzt pack, und wir werden durch den Abschnitt von Fragen ziemlich schnell arbeiten. Auf Seite 3, beginnen wir über diesen Unterschied zwischen C und PHP sprechen in dem Sinne, dass PHP eine dynamisch typisierte Sprache ist, während C ist statisch typisiert, und hat jemand wirklich schnell keine Codierung in so etwas wie PHP getan oder Python oder Ruby vor, JavaScript? Völlig neu? Okay. Alle diese Sprachen, die ich gerade erwähnt sind sehr verschieden von Sprachen wie C und C + + und Java in dem Sinne, dass, wenn Sie eine Variable deklarieren müssen Sie nicht zu erklären welche Art von Variablen ist es, so in C waren wir stecken mit immer sagen dies wird eine int-Variable, oder das wird ein char * Variable sein, während mit PHP, mit Python, mit Ruby, mit einer Menge von diesen modernen Sprachen, die Sie nicht haben, um das überhaupt zu tun. Sie müssen nur erklären Sie variabel, und im Fall von PHP erklären Sie, dass es sich um eine Variable ist durch Voranstellen mit einem $-Zeichen, und dann der Typ der Variable mit welchen Wert es hält bestimmt, das ist irgendwie cool. Zu spielen, um mit diesem ein wenig, haben wir Probe PHP-Code hier zwischen den Start-und End-Tags. Wir verwenden diese Art von wie HTML in dem Sinne, dass wir haben diese spitzen Klammern hier, um zu öffnen und zu schließen. Du wirst dies mit HTML zu sehen. Du wirst die gleiche Art von Syntax mit XML zu sehen. Dies kennzeichnet den Beginn eines PHP-Blocks. This? Php ist spezifisch für PHP. Wir schließen alles mit einem> als gut. Wir öffnen eine Datei in unserem Gerät mit was auch immer Sie möchten. In diesem Paket es sagt dynamic.php nennen. In Wahrheit kann man es nennen, was Sie möchten, aber der Name der Datei wird kommen und später wichtig, so denken Sie daran, was Sie es nennen. Ich werde zum Umstieg auf das Gerät, und ich werde ein Verzeichnis für Make § 9 Ich glaube, wir sind am jetzt. Und wir werden in § 9 gehen, und ich werde gedit verwenden. Mal sehen, gedit, und ich werde mir dynamic.php nennen. Boom. Innerhalb dynamic.php, denn dies ist eine PHP-Datei und ich möchte dies durch die PHP-Interpreter ausgeführt Ich muss alles beginnen mit diesen offenen Tags, so werde ich diese richtig loslegen, gebe mich ein wenig Platz zwischen den Tags und dann der Sinn dieser Übung war zu spielen, um mit diese Funktion aufgerufen gettype, so gettype, diese Funktion hier. Beachten Sie, dass es keinen Unterstrich oder Leerzeichen oder Bindestriche oder ähnliches Trennung von den 2 Worten, erhalten und geben, nur ein Wort überhaupt. Aber was wird dies tun, ist, wenn ich in einer Variablen gettype passieren, sagen, $ var oder $ x, dies wird mir sagen, irgendwie in einer Debug-Format was der Name dieser Art ist. Wir gehen hier experimentieren. Insbesondere, wenn Sie einen Rückblick auf die pset spec wir haben ein paar verschiedene Zeilen Code hier. In der ersten Zeile des Codes initialisieren wir diese Variable $ var, um gleich 7, und dann haben wir diese printf Linie das sagt hey, das ist printf var leer. Printf ist eine der vielen Möglichkeiten, wie wir die Dinge in PHP ausdrucken können. Oft sehen Sie die Echo-Funktion anstelle von printf, aber printf wir alle kennen nachdem in C Codierung für eine Weile. Was Sie konkret tun können ist mal sehen, ob Kopieren und Einfügen funktioniert. Ich werde geben diesem einen Versuch. Wir gehen zurück auf das Gerät. Okay, und es geht los. Und der Abstand ist ein wenig funky, aber hier gehen wir. Wir haben diesen Code hier. [Student] Ist es nicht gut Stil Registerkarte es? Sorry? [Student] Ist es üblich, Registerkarte es? Richtig, so Sam fragt, ob es Konvention Registerkarte es ist oder nicht. Normalerweise ja. In diesem Fall habe ich entschieden, nicht. Ehrlich gesagt, wirst du verschiedene Dinge unter verschiedenen Programmierern zu sehen. PHP ist in der Regel oft in Kombination mit HTML verwendet und andere Sprachen, und so manchmal der Druck aussehen wird ein wenig funky wenn Sie Gedankenstrich innerhalb von PHP Start-und End-Tags. Es hängt wirklich davon. In diesem Fall wird die Copy & Paste nicht die Registerkarten für mich fügen, aber es ist definitiv nicht, wie du gesagt hast, machen es klarer. Alle Rechte, wenn Sie speichern Sie diesen Code in dynamic.php dann, was Sie tun können, ist überliefert Ihrem Terminal-Fenster, wo ich hin bin hier in gedit, und zu tun das Äquivalent von compile mit zu machen und dann Ihren Code in C Sie müssen nur mit der PHP-Datei zu tun ist, Sie starten den PHP-Interpreter, das ist ein kleines Programm namens PHP, und das Argument geben Sie den Interpreter ist die Datei, die Sie interpretieren. In diesem Fall dynamic.php. Whoops, wo habe ich es sagen? Oh, habe ich sie in Abschnitt 9, und hier bin ich. Das ist, warum. Nun, wenn ich erneut ausführen, sehen wir, dass in meinem ersten gettype Aufruf der Funktion var ist ein Integer. In den nächsten ein var ist eine Zeichenfolge, und dann in der dritten ein var ist ein boolean. Was ist interessant daran ist, wenn wir wieder nach oben sehen wir, dass diese sind Typen ähnlich denen, die in C hatten Wir hatten ints in C. Wir Art hatten Streicher in C, so Saiten nicht eine völlig legitime Art in dem Sinne, dass unserer CS50 String war wirklich was? Sorry? Missy? [Missy] Char *. Ja, es war dies char * haben wir genutzt. Am Anfang des Semesters waren wir mit den String-Typ, aber es war wirklich ein char * unter der Haube. Wir haben gerade sie definiert Typ, während in PHP diese Saiten eine tatsächliche Typ sind. Es ist nicht mehr dieser char * type stuff. Du wirst sehen, dass wir viel mehr Dinge mit Strings zu tun viel leichter in PHP als könnten wir in C, und schließlich haben wir diese boolean Typ und der große Unterschied hier ist, dass wenn wir wieder nach unten scrollen sehen wir, dass der Name dieser Typen sind nun integer, string und boolean anstelle von int und bool und als Sie abholen verschiedenen Programmiersprachen davon aus, dass an einem gewissen Punkt in Ihrem Leben werden Sie in Kontakt kommen verschiedene, werden Sie feststellen, kleine Macken wie diese wobei C Zahlen ints nennt. Manche nennen es Zahlen. Es gibt auch andere Begriffe, die Sie stoßen werde. Big int sahen wir heute in SQL. Es gibt auch die Nummer und dann bool, boolean, alle Arten von Unterschieden gibt. Dies ist nicht sonderlich interessant, aber jetzt werde ich Ihnen ein wenig Zeit- wenn wir heranzoomen out-durch diese Übung an der Unterseite von Seite 3 zu arbeiten , wo er fragt, welche Arten auf diese Werte entsprechen hier an der Unterseite. Wir haben 3,50. Wir haben dieses Ding hier, das ist interessant. Wir haben nicht gesehen, aber wenn Sie verfolgt haben zusammen in der Vorlesung Sie wahrscheinlich bereits wissen, was das ist. Dann haben wir diese, die diese Art von funky ist. Sie erkennen dies. Was ist das in C? Sam? Was würde das Ihnen in C? Es wäre zu öffnen eine Datei namens dynamic.php und machen es lesbar. Ja, und was wäre der Typ der Variablen, dass wir dies? >> Datei Sterne vergeben werden. Genau, würden wir dies in einer Datei Sterne vergeben. Das ist legitim PHP zu. Führen Sie, dass. Sehen Sie, was passiert, wenn Sie, dass in gettype passieren. Und dann auch prüfen, was null ist, was das sein könnte in PHP sein. Ich gebe Ihnen ein paar Minuten. Sie können buchstäblich kopieren und fügen Sie diese Werte in, und dann werden wir ein wenig zufälligen Anruf auf Sie und sehen, was du drauf hast. [Student] Ich habe eine Frage. << Yeah. In einem der Vorträge David sagte, es ist etwas, das Sie am Anfang der Datei stellen können so dass Sie sich nicht in PHP geben jeder Zeit. Was war das? Er war wahrscheinlich reden über die Pfund-bang, die Hash-bang. Es ist eine Richtlinie, wenn Sie markieren Sie Ihre Datei als ausführbare dann, was es tut, ist, wenn Sie die Datei ausführen es wird Ihnen sagen das Shell-Programm um den PHP-Interpreter zu verwenden, um den Inhalt der Datei zu interpretieren. Die Frage ist, was diese besondere Linie dass wir an der Spitze unserer PHP-Dateien enthalten, nicht zu zählen Diese PHP Linie oder diese PHP-Befehl, wenn wir die Datei ausführen möchten? Und man kann tatsächlich tun dies mit einer Reihe von verschiedenen Dateien. Ich glaube, es hängt davon ab, wo das PHP-Binary gespeichert ist, aber oft usr / bin / php ist ein guter Ort, um zu beginnen. Sie können diese Zahl genau, indem Sie wieder auf Ihr Gerät und geben Sie an, welche PHP. Der Befehl which herausfindet, wenn Sie die Ausführung binärer sind oder ein Befehl, wo die entsprechende Datei ist. Das sagt mir, dass das PHP wirklich Aliasing ist diese Binärdatei Das ist in usr / bin, was, wo ein Großteil der System-Binärdateien installiert werden, ist gespeichert. Zum Beispiel, wenn ich scrollen nach oben, jetzt, da ich diese put #! Linie hier Ich kann nach unten scrollen, und ich kann versuchen zu laufen dynamic.php, aber ich bekomme diese Fehlermeldung über Berechtigung verweigert, und was das bedeutet, ist, dass diese Datei ist derzeit nicht geben ausführbare Berechtigungen. Es ist nicht als Datei, dass jemand angezeichnet. Wenn Sie rannte zu machen oder Clang und Sie haben eine ausführbare daraus Der Compiler war klug genug zu wissen, dass hey, ich baue eine ausführbare. Sie wollen wahrscheinlich, um ihn auszuführen, so wäre es automatisch zu konfigurieren die Berechtigungen für Sie. Dies ist nicht der Fall, obwohl, wenn Sie eine normale Datei von Grund auf neu erstellen, Der Grund dafür ist in der Regel Sie nicht wollen, um jede Datei auf Ihrem System haben ausführbar sein, so haben Sie eigentlich zu gehen und manuell tun. Der einfachste Weg, es zu tun mit dem Befehl chmod, und chmod + x sagt fügen Sie die ausführbare Bit weil es die Lese-bit, die Schreib-Bit-und die ausführbare Bit, r, w und x, und sagen chmod + x wird anhand des ausführbaren schalten denn dann die Datei, die wir angeben, was in diesem Fall wird dynamic.php. [Student] Ist das eingeschaltet für alle? Lasst check this out, so wie würde ich überprüfen, um die Berechtigungen zu sehen? Weißt du, wie ich überprüfen, um die Zugriffsrechte einer Datei zu sehen? [Unverständlich Studenten Antwort] Sorry? >> [Student] XSD. XSD gibt uns die Datei in Hacks. Auflistung aller Dateien,-l, zeigst mir alle Dateien in meinem Verzeichnis Art in ihren langen, ausführlichen Auflistung, und so sehen wir, dass Diese dynamic.php Datei wurde im November letzten Jahres den 5. Platz bei 4.21 geändert. Der Besitzer dieser Datei wird jharvard. Das ist der Benutzer, der angemeldet ist Das ist der Benutzer arbeite ich als ich, und wenn man auch in dem Gerät sind Sie arbeiten auch als Benutzer jharvard. Du bist in der Studenten-Gruppe, und das sind Dinge, die Sie oft genug sehen werden. Wir können in einer Menge von Detail gehen, aber zum größten Teil, was Sie wollen, zu betrachten, wenn Sie schauen, um zu sehen sind ob eine Datei ausführbar ist vor allem der Benutzer, der die Datei besitzt, der Besitzer, so dass diese jharvard, und dann haben wir die Berechtigungen Bits über hier auf der linken Seite, und die Art und Weise, dies zu lesen ist, dass das letzte Bit typischerweise wird zum Markieren ob wenigstens in diesem Fall verwendete diese letzte Bit wird oft ad gesetzt werden, um anzuzeigen, dass die Datei ein Verzeichnis ist und nicht nur eine normale Datei. Dann sind die folgenden 3 Bits hier bestimmen die Berechtigungen, die der Besitzer der Datei hat, so in diesem Fall jharvard als Eigentümer der Datei lesen und schreiben kann diese Datei aber es gibt ein Strich sagen, dass jharvard nicht ausführen kann diese Datei. Die nächsten 3 Bits sind für die Gruppe, so ist dies die Schüler-Gruppe, so gäbe es mehrere Benutzer auf meinem Gerät, und wir hatten mehrere Benutzer als Teil der Studenten-Gruppe, dann können sie all diese Datei lesen, aber sie können es nicht geschrieben, und ebenso alle anderen, die Welt können nur gelesen diese Datei als gut. Es gibt eine gute, lange writeup darüber, so können Sie online lesen. In das Problem Satz spec wir in diese gehen im Detail. [Student] Ist das 218 Bezugnahme auf die Welt? Die 218 ist-off der Spitze von meinem Kopf Ich vergesse, aber keine. Mal sehen. Ich bin auf dieses Recht Blanking jetzt. Zurück zu dem, was wir waren zu dieser chmod + x zu tun wo wir dynamic.php ausführbare Berechtigungen geben wollte, und die Frage war, ob dies ausführbare Berechtigungen für alle geben, oder einfach nur jharvard, und wir können dies durch sehen Ausführung der Befehle und geben ls-l, und jetzt sehen wir, dass es als ausführbare markiert. Sie sehen, dass es einen Farbwechsel. Jetzt dynamic.php wird grün aufgeführt, und es sieht aus wie die Antwort auf die Frage ist, was, Charlotte? [Charlotte] Nur jharvard. >> Nur jharvard, yeah. Wenn wir wollten, um die ausführbare Bit für alle machen wie können wir das tun? Irgendwelche Gedanken? >> A + x? Ja, genau. Charlotte sagte, wir können chmod a + x der dynamic.php tun, und jetzt, wenn wir ls-l laufen wir sehen, dass die ausführbaren Bits tatsächlich auf für jedermann geworden. Und man kann tatsächlich tun das Gegenteil davon, so können Sie ihn sich für alle mit minus. Jetzt ist es ausgeschaltet, und jetzt können wir es wieder einschalten für jharvard so dass wir tatsächlich laufen sie jetzt, und jetzt sehen Sie, wenn wir den Code dieses spezielle # laufen! Zeile am oberen, #! Linie, sagte der Schale, sagte unser Terminal hey, wenn diese Datei ausgeführt wird, / usr / bin / php, um diese Datei zu interpretieren und drucken Sie dann den Ausgang. [Unverständlich Studenten stellen] Klar, lass mich scrollen wieder nach oben. Genau wie diese. Du wirst sehen, alle diese Anweisungen beginnen mit diesem Pfund und dann die Ausrufezeichen, manchmal auch eine Shebang, hash bang. [Student] Wie können wir führen Sie es mit php dynamic.php bevor wir es ausführbar zu machen? Die Frage war, wie können wir führen Sie dieses mit dem PHP-Binary während dynamic.php ist nicht ausführbar? Das ist super wichtig, denn dies ist genau, wie es wird funktionieren, wenn Sie Probleme Satz 7 zu schreiben. Die meiste Zeit PHP-Dateien sind nicht direkt ausführbar. Der Weg, der funktioniert, ist, weil es das PHP-Binary, die ausführbaren ist. Der Dolmetscher ist die Sache, die gerade ausgeführt hat, und so, was er tut ist buchstäblich schlürfen in den gesamten Inhalt unserer dynamic.php Datei und gehen Zeile für Zeile und Ausführen dieser Befehle, so ist es mit unserem PHP-Datei als eine Liste von Anweisungen. Es ist nicht direkt der Ausführung. Das ist, wo wir sagen, dass diese Dateien zur Laufzeit interpretiert werden. Es ist ein Laufzeit Sprache statt etwas, das beim Kompilieren bestimmt ist, keine kompilierten Sprache wie C Gibt es eine Möglichkeit, eine Laufzeit Sprache zu erhalten, zu handeln, als ob es ein Kompilierzeit Sprache ist, wie wenn Sie alle auf einem Server ausgeführt getan haben statt, wissen Sie was ich meine? Ja, so ist die Frage Gibt es eine Möglichkeit, um die Laufzeit Sprachen bringt mehr wie Kompilierzeit Arten von Sprachen zu handeln? Und es gibt, ich meine, das ist ein aktives Gebiet der Forschung für viele dieser Unternehmen. Ich glaube, Facebook hat eine Menge Arbeit mit PHP und Kompilieren it down, so dass es schneller, optimieren sie seit ihrer Website basiert auf PHP gebaut. Wenn Sie schon nach node.js überhaupt, das ist eine Art JavaScript-Interpreter zu können JavaScript außerhalb des Browsers laufen, außerhalb Ihres Web-Browser, weil traditionell JavaScript würde nur innerhalb von Firefox oder Chrome laufen, und es würde verwendet werden, um coole Animationen auf einer Webseite passieren und machen Sie Ihre Web-Seite dynamisch. Das ist auf eine Menge von Arbeit gebaut worden, dass Google getan hat JavaScript und C + + zum miteinander verbinden, so gibt es eine Menge der aktiven Forschung erhalten diese Sprachen zu interagieren und zu optimieren, vor allem, weil so viele Menschen in PHP und JavaScript-Code denn es ist viel einfacher. Es ist viel schöner. Sie haben noch kein Zeiger. Sie haben noch Typen im Umlauf. Sie wollten die Vorteile dieser Kompilierung Sprachen zu gewinnen mit allen Typüberprüfung und der Geschwindigkeit und dem unteren Speichernutzung und alle daß unter Beibehaltung der Flexibilität und Benutzerfreundlichkeit dieser neueren. Zurück zu unserem ursprünglichen Plan des Angriffs. Wir haben ein paar dieser Fragen hier in unserem Problem Satz spec. Lasst uns durch sie sehr schnell gehen, und wir werden um den Raum zu gehen. Charlotte, ist, welche Art 3,50? [Charlotte] Das ist eine doppelte. >> Es ist eine doppelte ist. Jimmy, was ist das nächste? >> Ein Array. Ein Array, awesome, und Jared, was ist das fopen? [Jared] Es ist eine Ressource. >> Es ist eine Ressource. Das ist irgendwie eine neue, nicht eine Datei Stern, keine Datei. Es ist eine Ressource ist die Art in PHP, und es tut mir leid, Ella, ist die letzte null, was? Null. Null, wie wird es in PHP geschrieben? >> Die gleiche Weise. Auf die gleiche Weise, Hauptstädte? >> Ja. Ja, alles in Ordnung. Hier gehen wir, wir haben eine doppelte, haben wir ein Array, wir haben eine Ressource, und dann haben wir null. Lassen Sie uns jetzt sehen, haben Sie gesehen- mal sehen, so dass ich jetzt denke, was ich auch tun möchte, ist nach oben ziehen Diese Web-Seite hier, diese php.net / manual, so, wenn euch kopieren, und öffnen Sie einen Web-Browser. Ich werde nach oben zu ziehen Chrome, setzen, dass in. Ich möchte Ihnen zeigen, nicht nur wegen können wir reden den ganzen Tag über Typen und alles, was fun stuff sondern weil dies die PHP-Handbuch, und es gibt eine ganze Reihe von PHP-Programmierer da draußen. Es gibt eine Menge von PHP Websites gibt, und als Folge gibt es eine Vielzahl von Dokumentationen in PHP, und das Handbuch, diese php.net, ist ein wirklich guter Ort, um zu gehen wenn Sie mit Fragen, was ist der beste Weg, um X in PHP zu tun oder was eine Funktion aussehen? Nur irgendwie immer mit dem, was es aussieht, weil vertraute Sie hierher kommen oft, ein Bit für den problemlosen 7. Wenn Sie am Ende dabei eine endgültige Projekt, das PHP verwendet wird dies ein Ort, den Sie sehr gut kennen werde. Oft ist die Art, wie Menschen dies tun, ist sie nutzen Google, um für den Standort zu suchen, und sie haben nicht das Suchfeld, die bis hier ist in der oberen rechten, welche Art von winzig ist. Wenn Sie rund googeln etwas mit PHP zu tun, und Sie sehen eine der manuellen Links Pop-up können Sie in der Regel darauf verlassen als eine ziemlich gute Ressource. Awesome, damit von diesen Typen, nur aus Neugier, welche davon haben wir nicht gesehen? Alles, was wir nicht gesehen haben, hier? [Student] Resource. >> Wir sahen Ressource mit dem Aufruf von fopen. [Student] Objekte. >> Objekte wir nicht sicher gesehen haben. Callbacks haben wir nicht gesehen. Es gibt einige dieser Pseudo-Typen ein. Wir haben definitiv sah nur Integer-und Doppelzimmer. Wir haben nicht einige von den anderen, so dass, wenn wir auf ganze Zahlen auf können wir sehen, gibt es irgendwelche anderen Zahlen, die sie hier haben? Sind sie alle-so integer, integer, integer. Einige Sprachen haben größere Integer-Typen, wie wir auf MySQL heute sah es int und dann große int. Cool. So, PHP Handbuch. Gehen wir zurück zu unserem Problem Satz spec, und wir werden jetzt nach unten scrollen auf Seite 4. Eines der Dinge, wenn Sie diese Sprachen zu bekommen passiert dass nicht über diese statische Typisierung, so dass diese Sprachen, in denen Sie haben zu erklären, der Typ einer Variablen vorn wird man Fällen, wo Sie anfangen könnte mit Variablen unterschiedlichen Typs miteinander wechselwirken, und PHP funktioniert dieses Ding, wo es versucht zu tun was sie als das Vernünftigste, was zu tun ist Sie haben, wenn zwei unterschiedliche Arten miteinander interagieren. Zum Beispiel, wenn wir uns mit diesen Zeilen Code hier Sie sehen, dass wir haben, was passiert, wenn wir versuchen, fügen Sie die Zeichenfolge ein, um die ganze Zahl 2. Was passiert, wenn wir versuchen, eine Zeichenfolge hinzuzufügen, die nicht ist ein numerischer Wert sondern die tatsächlichen Zeichen, CS auf die Zahl 50? Dann werden wir sehen, ist es etwas anderes, das, wo passiert anstatt eine Zeichenfolge in eine Zahl fügen wir eine Reihe sind in einen String, und so weiter und so fort bis zu dem Punkt, wo wir immer irgendeine Art von weird stuff hier wo wir 7 + wahren habe. Was zum Teufel soll das bedeuten? Wenn euch voran gehen und fügen Sie einige dieser Code in Ihr Gerät. Sie können es behalten in dynamic.php. Wir werden sehen, was passiert. [Student] Verwenden Sie einfach ausdrucken, nicht printf? Yeah, so dass Sie werden feststellen, dass Druck ist auch eine gültige Funktion zum Drucken in PHP. Es gibt viele verschiedene Möglichkeiten, es zu tun. Wir werden mit ein paar der Beispiele später, wenn wir reden sehen über die einzigartige Problem, dass wir gehen zu schreiben und dann die Konzentration Problem, dass wir gehen zu schreiben dass, obwohl wir fopen und fclose das ist oft nicht der einfachste Weg, um in den Inhalt einer Datei lesen. PHP hat eine Menge von diesen C-like Überbleibsel. [Student] Wenn ich in allen 6 von diesen Dingen bekomme ich nur eine Zahl als Ausgang setzen. [Nate H.] Wenn Sie in allen 6 dieser Sachen. Lasst uns sehen, ist es, weil es vielleicht-ist eine Sache ist, dass diese Druck Anrufe nicht am Ende mit neuen Linien beendet. Es ist keine neue Trennlinie zwischen jeder dieser Druck Anrufe, so vielleicht sind Sie immer ein große Zahl, und es ist wirklich nur Amalgam neue Zeile Zeichen. [Student] Okay, wie kann ich sicher- Nun, es gibt eine Reihe von verschiedenen Möglichkeiten. Sie können manuell in einer Auflage von einer neuen Zeile Charakter gelegt, ein Echo einer neuen Zeile Charakter, Drucken der neuen Linie. [Student] So Echo ist dasselbe wie printf? Printf ist wie C printf wo Sie drucken einen formatierten String. Sie liefert es die Format-String und dann all die Platzhaltervariablen. Es ist oft etwas, das nicht genutzt-wird mal sehen, wie ein Haftungsausschluss, Ich bin weniger vertraut mit PHP als ich mit anderen Web-Sprachen bin, und wenn ich in PHP programmiert ich in der Regel nicht printf weil ich finde, es schneller zu bedienen die String-Interpolation Fähigkeiten, die es hat, die wir in zu gehen und ich werde Ihnen in nur einer Sekunde zeigen, während in C wir irgendwie müssen diese hacky etwas tun, um es auszudrucken richtig. Sie können tatsächlich legte Variablen direkt in Strings in PHP. Printf ist eine Art von überlangen für das, was ich normalerweise tue. Ja, Ella. [Ella] Im Allgemeinen, wenn Sie parse error bekommen bedeutet das- wie auf C es nicht genau sagen, wo der Fehler ist und was es ist, so bedeutet das Aussehen Ihrer gesamten Code und es herausfinden? Es ist in der Regel gezielter als die. Ich denke, in diesem Fall ist es ein wenig abseits war, so dass ich denke in diesem Fall fehlte uns ein Semikolon. Es wurde versucht, Sinn für alles zu machen, so wie diese interpretiert Sprachen, ist der Dolmetscher werde versuchen und tun ihr Bestes, um alles, was Arbeit angemessen zu machen. Du wirst sehen, zum Beispiel in JavaScript Sie werden oft-line-Anweisungen enden mit einem Semikolon, so wie sie in PHP zu tun, wie sie in C. In JavaScript einige der JavaScript-Interpreter in vielen Browsern wird in Semikolons für Sie zusammengestellt Wenn Sie zu fehlen ihnen geschehen wird. Sie werde versuchen, für einige Schlamperei auf Ihrer Seite unterbringen. Das ist, wo es vielleicht versuchen und versucht und versucht, die Dinge Arbeit, und schließlich wird es zu einem Punkt kommen, wo es in Ordnung, sagt, Ich kann die Dinge nicht auf Rettung zu arbeiten, und das ist, wo Sie eine Zeilennummer bekommen das vielleicht ein wenig aus dem genauen Ort sein. Okay, also lasst uns über das wirklich schnell gehen. Wir aufgehört mit Ella, so gehen wir über zu Missy, und Missy, was macht Druck String 1 plus der Nummer 2 geben? [Missy] 3. >> 3. Macht das Sinn? Sortieren von? Hat es Ihnen eine Nummer? Ist es Ihnen einen String? [Missy] Eine Reihe. >> Es ist eine Zahl ist. Aber es ist zu drucken, also wird es Ihnen irgendeine Art von String. Eine Sache, die wir tun, um dieses heraus überprüfen können ist, wenn wir tun, $ var = 1 + 2 und dann sagen wir Echo gettype, so dass wir mit einer dritten Art von Druck hier. Jetzt können wir sehen, was hier passiert. Hier, was wir haben ist, dass wir bekamen eine ganze Zahl aus diesem heraus. Obwohl wir das Hinzufügen dieser String in eine Zahl, wir haben nicht einen String aus ihm heraus, wie Missy sagte. Wir waren immer eine ganze Zahl ist. Okay, also schauen wir mal, next up, Kevin. CS + 50? >> [Kevin] 50. [Nate H.] 50. Macht das Sinn? [Kevin] Yeah. [Nate H.] Warum? Warum macht es Sinn? [Kevin] Weil es nur mit der Zeichenfolge, mit Zahlenwert Null. Yeah, great. Art von mehrdeutigen Situationen, aber es ist gut zu wissen, was passiert. Stella, was als nächstes passiert mit der Nummer 1 + String 2? [Stella] 3. >> 3 wieder. Und in diesem Fall, bekommen wir einen String oder eine Zahl? Geben wir diesem einen Versuch. Wer schneller als ich die Antwort bekommen? Charlotte? Oh, ich didn't-okay, lasst uns sehen, werden wir die gleiche Art von Sache zu tun wo wir haben eine Zahl plus eine Zeichenfolge, und wir werden die Art Echo, sehen, was wir bekommen. Wir bekommen auch eine ganze Zahl. Es spielt keine Rolle, welche die Zeichenfolge, die eine ist die Zahl ist. Wir immer noch um eine ganze Zahl zu erhalten. Es ist immer noch zu tun, was wir erwarten. Alle Rechte, so Sam, was etwa 90 + 9 Flaschen Bier an der Wand? [Sam] 99. >> 99. Keine Flaschen Bier an der Wand, though. Es gibt uns ein wenig mehr Informationen über das, was passiert ist. [Sam] Wenn Sie hatte 9 in Buchstaben geschrieben dann müsste man 90, richtig? [Nate H.] Yeah. Die Frage war, ob wir 9 geschrieben hatte als N-I-N-E würden wir 99 oder 90 bekommen haben? Wir würden erhalten 90. Es ist buchstäblich nur auf der Suche nach nummerische Zeichen. Es ist nicht klug genug, um Zahlwörter und das Zeug zu erkennen. Ja. [Student] Gibt es so etwas wie eine Typisierung in PHP? Es gibt, und es ist genau so, wie Sie es in C tun würde Was ist 10/7, Charlotte? [Charlotte] 1,4285. [Nate H.] Ja, so was mag vielleicht überraschend sein über diese? Was würde passieren, wenn Sie die gleiche Art von Dingen getan in C, wenn Sie getan haben 10/7 in C? [Charlotte] Es wäre nur Ihnen-je nachdem wie man typecasted Ich denke, es würde Ihnen nur eine begrenzte Anzahl von Stellen nach dem Komma. Ja, so eine begrenzte Anzahl von Nachkommastellen. Was sonst könnte-würde es Ihnen keine Nachkommastellen? Oft nicht, so wieder, je nachdem, wie Sie Typumwandlung es es kann oder auch nicht wandeln es in eine Gleitkommazahl. Hier war es ganz nett, dass es tat. Hätten wir gezeigt, Ihnen diese zurück, wenn wir tun, diese Art von Sachen in C begonnen wäre es wahrscheinlich ein wenig mehr Sinn gemacht, dass es nicht nur um 1 gehen. Und dann endlich, Jamie, was 7 + wahr? [Jamie] 8. >> 8. Was bedeutet das? Ich denke, es ist nur eine wahre den Wert 1. Yeah. Was passiert, wenn wir ändern, dass auf false? [Student] 7. Yeah, so erinnern, wo wir über diese binären Werte zu sprechen, Wobei 1, 0 ist aus? Jetzt haben wir wahr ist 1, 0 false, und man könnte dies nicht in den C Beispielen gesehen haben, dass wir diesen letzten Semesters, aber historisch Typ bool in C hat nicht ein echter Typ, so Leute haben 0 und 1 an der Stelle wahr und falsch verwendet. Dies ist eine Manifestation davon. Okay, so dass die ein wichtiger Teil über all dies ist, dass wir diese verschiedenen Typen haben. Sie können miteinander interagieren. Sie können oft miteinander interagieren in einer Weise, die nett sind, wie wir hier gesehen haben. Es ist schön, in der Lage sein String 1 und die Nummer 2 haben, fügen sie zusammen und erhalten 3. Das macht Sinn. Allerdings, wenn du schreibst Websites, und vor allem, wenn Sie die Bearbeitung Benutzereingaben, so sagen, Sie haben ein Web-Formular geschrieben daß sammelt Informationen von dem Benutzer und geht dann zu verarbeiten am hinteren Ende auf der Server-Seite in Ihrem PHP-Code Wenn Sie erwarten, dass Wert, dass der Benutzer eingetippt und eingereicht Ihre Form eine ganze Zahl sein oder eine Gleitkommazahl oder etwas ähnliches sein müssen Sie explizit warf es und dann einige Typprüfung. Sie wollen nicht nur auf diese Art Jonglage-System verlassen, um Dinge zu erarbeiten, vor allem aus Gründen der Sicherheit und gerade für die Robustheit Ihrer Webseite ein. Nur etwas im Hinterkopf behalten, dass, wann immer Sie die Handhabung von Formulardaten, alles, was in der Post oder den get superglobals kommt stellen Sie sicher, dass Sie immer zu validieren und konvertieren und typecast es. Und genauso wie wir über einen Moment sprechen vor diesem typecasting in PHP ist genau das gleiche wie in C, wo Sie die Klammern müssen und dann der Typ. Denken Sie daran. Eine Funktion, die sich als nützlich erweisen wird, wenn Sie dies tun ist wir haben mit, und dies ist eine Art als neben- wir haben mit dieser gettype Funktion hier um herauszufinden, welche Art von einer Variablen, und während das ist praktisch für die Fehlersuche und zu sehen, was der Typ einer Variablen ist Sie wollen nicht, diese zum Beispiel zu verwenden, in einem Zustand, wo Sie überprüfen, ob gettype von $ var = integer etwas zu tun. Das ist schlecht, schlecht, schlecht. Stattdessen gibt es diese Funktionen aufgerufen wird, integer, string ist, ist Array, das Sie stattdessen verwenden möchten, so dass in diesem Fall was ich möchte zu tun, anstatt von diesem Kerl hier wird verwenden Sie die ganzzahlig ist var. Und sie oft genannt wird is_ * im Sinne, dass man das * mit ganzzahligen ersetzen, string, et cetera, und nur um sicherzugehen, wirklich schnell ist dies int php. Sieht aus wie Sie tun können, ist entweder int oder gibt es Integer-als auch? Ja, alias, so int integer Aliase. Cool. Wie sollen wir tun? Lassen Sie das Tempo ein wenig. Jetzt werden wir über Arrays zu sprechen, so wie man sehen kann im nächsten Teil der Spezifikation sprechen wir darüber, wie Arrays in PHP sind leicht unterschiedlich, als sie in C sind In Wahrheit sind sie Art von Amalgam die Arrays, dass Sie gekommen sind, kennen und in C liebe wo alles des gleichen Typs nacheinander und zusammenhängend in einem Speicher gespeichert, und Sie haben diese numerischen Indizes. Sie haben Index 0, Index 1, Index 2, und das Speichern von Werten an diesen Indizes. Sie können auch in C, wenn Sie Speller schrieb, viele von euch hat die Hash-Tabelle Ansatz, und man sah, dass dort hatten wir eine andere Art von Speicher, in dem wir waren Mapping ein Schlüssel zu einem Wert, so dass, wenn Sie versucht haben, etwas in Hash-Tabelle speichern Sie mussten angeben, dass Sie es mit einem bestimmten Schlüssel speichern wollte, und daß Taste ermittelt die Position des Wertes und es ihm gespeichert werden. Sie haben Art bekam diesen beiden Konzepten geschieht zur gleichen Zeit in einem PHP-Array, und als Ergebnis haben wir oft nennen diese assoziative Arrays wo wir assoziieren einen Schlüssel in einem Wert. Im nächsten Teil werden wir reden über eine einfache PHP-Array wo wir haben Schlüssel a, b und c, alle Saiten, Zuordnen zu den ganzen Zahlen 1, 2 und 3. Und Sie können Tasten von verschiedenen Arten. Sie können einige Tasten, Saiten, einige Tasten, die Zahlen sind. Sie kann Werte unterschiedlichen Typs. Sie können einen Wert, der eine Zeichenkette ist, ein Wert, der eine ganze Zahl ist, ein Wert, der ein Objekt oder eine andere Anordnung ist beispielsweise alle im gleichen Array-Objekt ist das irgendwie seltsam. Sie müssen nicht ein Array, das gerade ist ein Typ des Elements in ihm haben. Sie können viele verschiedene Dinge in dort. Die andere Sache zu beachten ist, dass, wenn Sie etwas sehen, wie dies in Ihrem Code zu tun wobei gilt PHP ein Array einfach so, 0, 1, 2, 3, 4, 5 festzustellen, das wird deklarieren initialisiert $ arr dies Array sein. Aber was du eigentlich immer unter der Haube ist diese Art der impliziten Erzeugung von Schlüsseln, wo wir haben 0 bis 0, 1 bereits in 1, 2 bis 2, 3 bis 3 liegt. Und es stellt sich heraus, dass selbst wenn Sie ein Array wie diesen Kerl hier oben wo man a, b und c als Schlüssel und dann beginnst du mit dem Array Push-Methode verwenden zu beginnen dieses Array wie ein Stapel, so können Sie sehen, dass dieses Array-Objekt, dieses Array wirklich überlastet wird. Wir können es als ein Array zu verwenden. Wir können es als eine Hash-Tabelle zu verwenden. Wir können es als Stack verwenden. Wenn Sie anfangen zu pressen Dinge auf diesem Array das erste, was Sie drücken auf dies Index 0 und dann Index 1 und Index 2 sein. Sie können diese Art von impliziter Erzeugung von Schlüsseln sofern Sie sie explizit. Die Art und Weise geben Sie Schlüssel explizit, ist natürlich mit dieser Klammer-Notation, das ist ähnlich wie Arrays, außer, statt nur so Integer-Indizes in hier, jetzt lassen wir nichts. Wenn Sie Ihren Schlüssel ein String sein wollen, sollten Sie es wie folgt angeben. Wenn Sie es ein int sein wollen, legen Sie es mit dem int die Sie verwenden möchten. Fragen zu diesem so weit? Eines der schönen Dinge über diese Idee ist, dass man immer nur einen Wert mit einem bestimmten Schlüssel gespeichert. Wenn wir wieder über Sie auf unserer Appliance-lassen Sie mich löschen Sie einige von diesem Zeug. Und lassen Sie uns sagen, dass ich ein Array initialisieren 0, 1, 2, getan sein. Wenn ich jetzt weiß, dass zum Beispiel, wenn ich echo $ arr [0] Ich werde, um den Wert 0 ausgedruckt, und da kann immer nur ein Wert für einen bestimmten Schlüssel gespeichert werden wenn ich etwas auf $ arr speichern [0], sagen, dann werde ich wissen, wenn ich $ arr echo erneut [0] Ich werde nicht auf 0 wie bisher ausgedruckt bekommen. Ich werde nur eine erhalten. Das ist also im Grunde sagen, dass ich keine $ arr [0] speichert 2 verschiedene Werte. Es kann nicht speichern sowohl 0 als auch die Zeichenfolge ein, wie dies wörtlich ersetzt was auf $ arr [0] zuvor. Der Grund, warum ich diese bis sie ausgeführt wird, sehen, was passiert. Sehen Sie hier, dass ich 0 heraus und dann ein hier unten gedruckt. Es gibt keine neue Linie dort, weil ich faul war und nicht, dass in. setzen Was ist cool daran ist, wir können dies als einen Weg benutzen diese Idee eines Satzes zu erfassen wo wir können nicht mehrere Tasten innerhalb eines Arrays. Wir können nicht identische Schlüssel innerhalb eines Arrays. Ich kann nicht den Schlüssel 0 und den Wert 1 und die Taste 0 und den Wert einer oder die Taste 0 und dem Wert true. Die Tasten sind all-es gibt nur 1 Schlüssel im Array. Auch wenn Sie den gleichen Wert gespeichert mehrfach in der Anordnung unter verschiedenen Schlüsseln es ist nicht möglich, dass identische Schlüssel mehrmals in Ihrem PHP-Array. Wenn wir diese nächste Problem betrachten, unique.php, Wo wollen wir eröffnen eine PHP-Datei enthält eine Liste von Strings, ein String pro Zeile, und wir wollen alle eindeutigen Strings in dieser Datei zu finden alles, was wir tun müssen, ist eine dieser PHP Arrays und verwenden Sie die Zeichenfolgen in der Datei als den Schlüssel zu diesem Array und halten Aktualisierung unser Angebot, wie wir diese neuen Schlüssel zu speichern. Da wir jede Zeile ausgelesen der Datei können wir es im Array zu speichern, und am Ende werden wir als unsere Schlüssel in unserem Array alle eindeutigen Strings innerhalb der Datei. Macht das Sinn? Mal sehen, wie das funktioniert. Wir gehen zu öffnen, nach dem spec, rief eine neue Datei unique.php. Zu öffnen. Oops, sorry, neue Datei. Wir werden es starten mit der gleichen Start-und End-Tags. Wir werden es in Abschnitt 9 zu retten, und wir werden es nennen unique.php. Okay, jetzt hineinzuzoomen Die Idee hier ist eine Datei öffnen, Lesen in der Datei Zeile für Zeile. Für jede Zeile in der Datei wir haben eine Reihe, wo wir  die Linie als unseren Schlüssel. Und dann, wenn wir bis zum Ende hier $ Arr die Schlüssel sind die einzigartigen Linien aus der Datei, da wir wissen, dass wenn ich so sagen Zeile in diesem Array mehrfach wird es nur halten das Überschreiben der alten Wert, und wir können tatsächlich legte Array-Zeile als selbst wie genau dies. Dies ist irgendwie seltsam. Wir speichern den gleichen Schlüssel-Wert-Paar wieder und wieder und wieder, aber da wir die Garantie, dass es nur ein Schlüssel namens Linie Wenn wir also eine Datei, die sagt, eine Datei von Tierstimmen und es hat wuff, wuff, meow, meow, moo, moo, und jedes Mal lesen wir ein Tier Lärm draußen wie woof und wir speichern sie in unser Angebot erhalten wir woof, und dann ein zweites Mal speichern wir woof wird es das erste Mal, dass wir darauf gespeicherten überschreiben. Am Ende werden wir nur noch ein Eintrag in dem Array für jede der Tierstimmen in unserem Tiergeräusche Datei. Do you guys sind zuversichtlich, dass Sie das Öffnen einer Datei in PHP zu bewältigen? Ein Weg, es zu tun, lasst uns über diesen schnell-ein Weg zu gehen, es zu tun ist mit fopen, wie wir bereits gesehen haben. Sie können fopen some_file.txt. Sie können es im Lesemodus öffnen, genau wie in C. Das ist ein ganz guter Weg, es zu tun. Sie dann auch für das Lesen in der Datei Zeile für Zeile haben die gleichen Funktionen, viele von ihnen, dass Sie wie in C. Sie haben fgets. Sie haben feof, obwohl wir nicht mögen mit, dass Denn erinnern, das war nicht so toll in C. Sie können es auf die gleiche Weise, aber hier ist eine wirklich coole Sache. Sorry, ich will nicht zu $ ​​Datei zu tun, aber es gibt eine Funktion namens Datei in PHP, und diese Funktion hier ist cool, weil es den gesamten Inhalt gelesen der Datei, die Sie angeben, so some_file.txt, liest den gesamten Inhalt dieser Datei in einem Array und dann können Sie über sie iterieren, das ist ziemlich raffiniert. Wenn wir zum Beispiel auf unserer Web-Browser und wir freuen Bei Google nach PHP-Datei Sie können hier sehen, dass unser Handbuch sagt, dass Datei liest die gesamte Datei in ein Array, und wir können file_get_contents, um den Inhalt einer Datei als String zurück, aber in der Regel nur immer es als ein Array ist wirklich nett, weil, was sie tut wird es bricht es so, dass jedes Element in der Anordnung ist einer Zeile der Datei, Wenn wir also auf Datei 0 aussehen, das ist die erste Zeile der Datei. File 1, zweite Zeile, Datei 2, dritte Zeile, und so weiter und so fort. Wäre es nicht schön, wenn das alles war musste man in C zu tun? Ziemlich raffiniert. David zeigte dies in der Vorlesung, und das Idiom er zeigte, war dass zusätzlich zu unserem Standard für Loop-in PHP wir hatten, for ($ i = 0; i <10; i + +), und Sie können diese in PHP zu tun, dasselbe- haben wir auch dieses coole Konstrukt namens foreach. Foreach ist wirklich praktisch, wenn Iteration über Arrays oder diesen Datenstrukturen weil es Ihnen erlaubt, sich aus jedes Element des Arrays ohne manuell kann die Indizierung selbst, ohne manuell einen Index erstellen Variable inkrementieren, ziehen Sie den Wert im Array an dieser Stelle, denn das ist eine sehr gewöhnliche Sache zu tun. Sie haben wahrscheinlich gemacht, dass Tonnen von Zeiten, in denen Sie taten C stuff über das Semester, so mit diesem foreach können wir eine Schleife über Datei-Array, und die Syntax ist, dass wir jetzt eine Schleife über dieses Array möchten und angeben, dass die Variable werden wir verwenden, um zu speichern das Element dieses Arrays lokal, lokal auf dem Umfang dieser foreach-Schleife wird werden wir es nennen Linie. Wenn es eine Datei nur Worte und es gibt ein Wort in einer Zeile wir könnten es Wort als gut, wirklich nur Ihnen dies einen Namen, was auch immer Sie es nennen wollen, und dann innerhalb der Schleife können Sie tun, was Sie wollen mit dieser Variablen Linie. Wenn es nicht genug, um den Wert des Feldes zu bekommen und Sie wollen auch zu bekommen der Index zusammen mit ihm können Sie einen Namen für den Index sowie der Wert, und jetzt haben Sie Zugang zu 2 Variablen. Sie haben $ i und Zeile wobei $ i der Index in dem Array, und Linie ist die Linie, die Sie aus der Datei abgerufen werden. Zum Beispiel, wenn wir zu drucken echo Zeile 0 der Datei, da dies wollte, wir konnten es einfach so machen ", ist Line $ i der Datei $ line" und hier ist etwas, was wir auch noch nicht gesehen haben entweder wo ich gerade total über diese ganze% s% d Business übersprungen dass wir mussten mit in C umgehen und stattdessen habe ich gerade gegangen Schreiben der Variablen in Zeile in meinem String. Dies wird als variable Interpolation, String-Interpolation wo Sie stopfte die Variablen direkt und der PHP-Interpreter ist intelligent genug, wenn es durch eine Zeichenfolge, die mit Doppel beginnt liest Zitate- nicht einfache Anführungszeichen, mit single-quoted Strings können Sie dies nicht tun- aber mit doppelten Anführungszeichen, wie es heißt durch sie für Variablen schaut. Es ist die Jagd nach ihnen ab, und wenn es Variablen sieht, wird es den Wert der Variablen wird und stopfen sie in den String, wenn es in eine String-Repräsentation umwandeln kann, das ist ziemlich raffiniert. Denn jetzt, lasst uns kommentieren Sie die Ruhe von allem, speichern Sie diese, und was wir jetzt tun können, ist, dass wir eröffnen können eine Datei dass wir rufen some_file.txt-let 's erstellen Sie eine neue Datei- und wir können in einem Haufen Unsinn Zeug hier, nur um alles auszuprobieren, speichern Sie diese, nennen wir es some_file.txt, wie mache ich hier oben an der Spitze, und jetzt, wenn ich zoomen, nur um sicherzustellen, dass alles in das gleiche Verzeichnis- es sieht aus wie ich unique.php und some_file.txt im gleichen Verzeichnis haben. Wenn ich laufen php unique.php sehen, wie es druckt jede Zeile in meiner Akte und was die Leitung? Das ist ziemlich mächtig, nicht wahr? Schauen Sie, es dauerte 3 Zeilen Code zum Öffnen einer Datei. Nun, 4 Zeilen Code. Ich kann nicht zählen heute deutlich. Aber wirklich nur 2 interessante Zeilen Code, da die anderen 2 waren die geschweiften Klammern, aber in diesem viel Code konnten wir eine Datei zu öffnen, durchlaufen sie, Ziehen Sie die Zeilennummer und die Linie selbst und drucken Sie es aus. Cool stuff. Charlotte. [Charlotte] Ich habe eine Frage zu der Syntax. So foreach beschäftigt sich mit jeder einzelnen Zeile der Datei, die Sie öffnen, und dann, wenn Sie die Dinge mit jeder einzelnen Zeile wollen Sie tun es einfach als und ordnen Sie dann den Wert. [Nate H.] Was Sie können hier tun-die Frage war die foreach hat mit dem Array zu tun, so dass die foreach-Syntax wirklich foreach, und beachten Sie, dass es keinen Platz oder irgendetwas zwischen dem für und jeden. Sie haben nach rechts nebeneinander gehen, und dann dauert es in einem Array, und dann haben Sie diese andere Schlüsselwort als dass muss da sein heißt, und dann nach dem, wie Sie können entweder man ein Variablenname, in welchem ​​Fall wirst du werden Herausziehen die Werte des Arrays, nicht die Indizes, oder wenn Sie es tun, wie wir weiter unten geschrieben habe erhalten Sie die Schlüssel und die Werte. Sie foreach Element des Arrays oder des Feldes Paares um eingegebene Wert oder einfach als Wert. Je nachdem, was Sie brauchen, wenn Sie nicht brauchen die Schlüssel, dann können Sie mit dem Wert gehen. Wenn Sie die Tasten möchten, können Sie mit ihnen zu gehen. [Charlotte] Ich erkannte auch, wir haben nie erklärt, die i oder Linie. Wie kommt es überhaupt, was sie sind? [Nate H.] Was meinst du mit erklären, bedeuten? [Charlotte] Wir haben nie gesagt, was ich oder Linie Mittel. [Nate H.] Wir haben nie gesagt, den Computer, was ich oder Linie in Bezug auf Mittel der- [Charlotte] Dass sie indiziert oder, dass sie sind- [Nate H.] Wir haben nie gesagt, dass es sich hierbei um den Index oder den Schlüssel und der Wert sein, und das ist, denn das ist der PHP-Interpreter. Dies dient als Erklärung und sagt okay, wird der Schlüssel sein wird a Variable namens i in eine Variable namens i gespeichert. Der Wert wird in einer Variablen namens Zeile gespeichert werden, so dient dies als Erklärung dieser Variablen und sagt $ i ist ein Schlüssel, und $ line ist ein Wert. Yeah, Ella. [Ella] Wenn die Tasten nicht getan numerisch wie kommt es zu entscheiden, in welcher Reihenfolge es geht um alles, was gedruckt werden? Ist es genauso wie die Reihenfolge in eingegebenen geht? [Nate H.] Geben wir es zu versuchen. Lassen Sie uns eine Variable namens arr, und was wir tun können a geht an 7. Lassen Sie uns sagen 0 geht zu einem anderen Array mit 1, 2, oder Apfel. Sagen wir 7 auf 1 geht, geht b bis 2, und 3 bis 4 geht. Dies ist eine Art verrückt aussehenden beispielsweise weil wir durcheinander sind Strings und Integers ganz über dem Platz. Es gibt keinen wirklichen um dieses Arrays. Ich meine, wir konnten alles in alphabetischer Reihenfolge zu bestellen über die Tasten. Wir konnten alles alphabetischer Reihenfolge nach dem Wert. Wir könnten versuchen, und berücksichtigen, dass einige Strings sind, sind einige ints, und wir könnten versuchen, und konvertieren Sie sie alle auf die gleiche Art und sehen, was passiert, oder wir könnten sie im Wert, in dem wir bereits eingegeben haben prüfen wo wir diesen Kerl legte in der ersten, dieser Kerl in der zweiten, dieser Kerl in der dritten, dieser Kerl in der vierten, et cetera. Mal sehen, was passiert, wenn wir diesen Code ausführen. Wenn wir nach unten scrollen und nicht die gleiche Art von Ding, und hier ist es nicht Ausdruck der neuen Linien. Wenn es Dinge zu lesen aus der Datei wurde einschließlich der neuen Linien in den Werten, das war, warum es ausgedruckt schön, während es hier nicht tat, so das ist, warum alles zusammen ist smushed. Fügen wir in dieser neuen Linie nur um die Dinge schön. Lassen Sie uns erneut, und so hier schauen, was passiert. Es bedruckt alles in der Reihenfolge, in der wir es in das Array. Es ist, um in diesem Sinne zu bewahren. Gehen wir zurück zu diesem Problem der uniques Wo wollen wir in der Lage sein zu iterieren eine Datei, und wir geben es some_file.txt, und wir werden über das so durchlaufen. Wir haben gesagt, dass wir ein Array zu verwenden, um sicherzustellen, wollte, dass wir würde haben alle der einzigartige Linien von dort, und wir konnten das wirklich leicht tun nur durch Speichern in einem Array, die wir natürlich außerhalb des Bereichs einer Schleife zu deklarieren, und wir sagten, dass wenn wir nutzten die Zeilen in der Datei als Schlüssel in unser Angebot wenn wir eine doppelte Zeile eingegeben würden wir das Überschreiben der vorherigen Wert. Es ist nicht immer möglich, 2 Tasten, die identisch in demselben Array befinden haben. Wir können genau das zu tun. Wir loszuwerden dieser Echo-Anweisung finden Sie hier. Hier speichern wir die Zeile in der Datei in unser Angebot Verwendung selbst als Schlüssel. Nichts, und es stellt sich heraus, dass wir brauchen noch nicht einmal auf diese Taste. Wir brauchen nicht, dass ich variabel. An diesem Punkt, wenn wir einen anderen foreach-Schleife zu tun und wir waren in einer Schleife über jede arr und Linie jetzt, wenn wir-oops echo, sorry. Wir können nicht das Komma. Wir müssen dies als Schlüsselwort verwenden. Nun, wenn wir Zeile echo sollten wir uns alle eindeutigen Wörter in der Datei. Wenn wir gehen bis zu some_file.txt, und lassen Sie uns sagen, dass wir tun, Apfel, Banane, Apfel, Apfel, Banane, wenn wir Ausdrucken sind alle der einzigartigen Wörter in dieser Datei sollten wir nur erhalten Apfel und Banane zum Ausdrucken. Wenn wir das zu retten, jetzt hier wir heranzoomen in, php unique.php und ta-da. Wir haben die Datei erfolgreich uniqued. Der letzte Teil dieses Problems ist gefragt, um dieses Feld zu sortieren, bevor Sie es ausgedruckt denn in diesem einfachen Beispiel, dass wir gerade getan haben Wir waren in dem Sinne, das Glück, dass die Datei- wir haben dieses konstruiertes Beispiel mit Äpfeln und Bananen. Es wurde bereits sortiert. Aber mit der einfachen Art Funktion können Sie sortieren ein Array, das ist ziemlich raffinierte ist. Das letzte, was ich wollte mit euch über wirklich schnell zu sprechen, ist, dass diese Art von PHP alles schön und gut ist, und es ist super handlich zu wissen, wie zu tun, wenn Sie jemals brauchen werden, um kleine, schnelle Dinge programmatisch tun. Zum Beispiel, wenn ich ein Programm, das, sagen wir schreiben, stellt alle in Abschnitte werde ich nicht zu gehen und schreiben Sie es in C. Es wird lange dauern. Es wird eine Art Schmerz, vor allem wenn es sich um Dateien beteiligt, wie euch gesehen haben. Es ist so schön, dass nur mit diesem viel Code hier konnten wir durch eine Datei rippen, ziehen alle eindeutigen Werte und drucken Sie sie wieder heraus. Doch für Ihre Aufgaben, für Ihre Projekte, wenn Sie bauen Webseiten sind mit PHP die Macht ist, dass wir laufen unsere PHP-Dateien über diesen Interpreter, und der Interpreter verarbeitet alles innerhalb der PHP-Tags, Verlassen alles unberührt und spuckt die Ergebnisse. Wir können dies tun, um HTML programmgesteuert zu erstellen. Nun, wenn wir wieder in der Spezifikation zu gehen, das letzte Problem in der spec Gespräche über diese Idee der Konzentration und die Schaffung einer Drop-Down-Menü die Sie kann oder auch nicht tun wollen, je nachdem, was das endgültige Projekt tut, Das erlaubt dem Benutzer, aus einer Liste von allen möglichen Konzentration zu wählen ihre ein-Konzentration. Nun, dies ist eine Art Schmerz, um dies herauszufinden geben und müssen all dies manuell zu tun, vor allem wenn man mit, um sicherzustellen, Sie haben alle die spitzen Klammern an der richtigen Stelle und alle die Anführungszeichen an der richtigen Stelle, so mit PHP können Sie dies programmgesteuert tun, und Sie können dies sehr schnell tun. Mal sehen, wie dies zu tun. Wir gehen zu öffnen eine neue Datei. Wir werden in unserem PHP-Tags setzen. Wir werden es nennen concentrations.php, und jetzt, wenn du das tust, die Art von einer guten Sache zu denken wenn Sie versuchen zu mischen und anzupassen PHP und HTML ist es, herauszufinden, okay, was ist der Teil, den ich will, um programmgesteuert zu generieren? Was ist der Teil, den ich kann programmgesteuert zu generieren? Es ist wahr, dass Sie alle Ihre HTML zu tun Innere PHP-Blöcke. Sie können echo alle HTML als Zeichenfolgen. Zum Beispiel, wenn ich will, zu tun beginnen die select-Tags innerhalb von PHP Ich kann echo sage, das sage auswählen Name = Konzentration, und dann unten, ich könnte noch einen Echo tag oder ein anderes Echo als nah das auszuwählen. Dies ist eine Möglichkeit, es zu tun, denn was wörtlich los ist zu tun ist Ausdruck dieser Zeichenfolge, wenn es durch den PHP-Interpreter ausgeführt ist, so wird das Ergebnis HTML. Wenn ich diese Datei speichern, wie es jetzt ist, und ich laufe php concentrations.php schauen, was ich bekam. Ich habe diese open close select-Tag. Wenn ich dies zu tun und ich waren, um dieses Ergebnis in einer Datei speichern, sagen, concentrations.html-wait, es sieht aus wie der l hat auf die andere verschwunden side- Jetzt, wenn ich hier oben öffnen concentrations.html Sie sehen, ich habe eine gültige HTML-Datei. Ist das irgendwie komisch? Wir verwenden PHP in HTML zu erstellen, erstellen gültigen HTML. Die Art, wie wir es tun ist, dass wir nur mit der PHP-Druck die HTML, dass wir es drucken möchten. Das ist buchstäblich, wie PHP-Websites arbeiten. Wenn Sie eine Website besuchen, die Sie sendet so etwas wie etwas, etwas, was dot com slash index.php der Computer ist buchstäblich Aufruf index.php, läuft es durch den PHP-Interpreter, und was Junk kommt Es ist wieder das Senden an den Browser und sagen hey, Browser interpretieren dies als HTML. Das Schöne daran ist, dass es ein Schmerz sein, ständig zu schreiben Echo, Echo, Echo, Echo und legen Sie alles in Anführungszeichen wie diese, so dass, wenn Sie schreiben wollen die HTML, werde statisch sein selbst können Sie es wie folgt tun hat, legte es draußen, schließen Sie es und dann hier nur innerhalb der PHP-Tags, denen Sie wissen, setzen Sie programmatisch zu erzeugen, und in diesem Fall ist es diese Option Tags das sind ein Schmerz zu erzeugen. Zum Beispiel könnten wir erzeugen tausend Option Tags by doing so etwas wie dieses, $ i <1000, i + + und sagen echo Option value = $-hoppla, das kann ich nicht tun. Nun, lasst uns etwas ausprobieren und sehen was passiert. $ I und dann sagen, $ i