1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [§ 8] [weniger komfortabel] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [Dies ist CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Herzlich Willkommen auf unserer vorletzten Abschnitt. 5 00:00:11,000 --> 00:00:13,000 In dieser Woche werden wir über PHP sprechen, und dann nächste Woche 6 00:00:13,000 --> 00:00:17,000 wir ein wenig Rezension für Quiz 1. 7 00:00:17,000 --> 00:00:20,000 Wir werden auf Seite 3 des Problems beginnen setzt pack, 8 00:00:20,000 --> 00:00:28,000 und wir werden durch den Abschnitt von Fragen ziemlich schnell arbeiten. 9 00:00:28,000 --> 00:00:34,000 Auf Seite 3, beginnen wir über diesen Unterschied zwischen C und PHP sprechen 10 00:00:34,000 --> 00:00:38,000 in dem Sinne, dass PHP eine dynamisch typisierte Sprache ist, 11 00:00:38,000 --> 00:00:42,000 während C ist statisch typisiert, 12 00:00:42,000 --> 00:00:46,000 und hat jemand wirklich schnell keine Codierung in so etwas wie PHP getan 13 00:00:46,000 --> 00:00:51,000 oder Python oder Ruby vor, JavaScript? 14 00:00:51,000 --> 00:00:53,000 Völlig neu? Okay. 15 00:00:53,000 --> 00:00:56,000 >> Alle diese Sprachen, die ich gerade erwähnt 16 00:00:56,000 --> 00:01:01,000 sind sehr verschieden von Sprachen wie C und C + + und Java 17 00:01:01,000 --> 00:01:04,000 in dem Sinne, dass, wenn Sie eine Variable deklarieren müssen Sie nicht zu erklären 18 00:01:04,000 --> 00:01:09,000 welche Art von Variablen ist es, so in C waren wir stecken mit immer sagen 19 00:01:09,000 --> 00:01:13,000 dies wird eine int-Variable, oder das wird ein char * Variable sein, 20 00:01:13,000 --> 00:01:16,000 während mit PHP, mit Python, mit Ruby, 21 00:01:16,000 --> 00:01:20,000 mit einer Menge von diesen modernen Sprachen, die Sie nicht haben, um das überhaupt zu tun. 22 00:01:20,000 --> 00:01:24,000 Sie müssen nur erklären Sie variabel, und im Fall von PHP 23 00:01:24,000 --> 00:01:28,000 erklären Sie, dass es sich um eine Variable ist durch Voranstellen mit einem $-Zeichen, 24 00:01:28,000 --> 00:01:35,000 und dann der Typ der Variable mit welchen Wert es hält bestimmt, 25 00:01:35,000 --> 00:01:38,000 das ist irgendwie cool. 26 00:01:38,000 --> 00:01:44,000 Zu spielen, um mit diesem ein wenig, haben wir Probe PHP-Code hier 27 00:01:44,000 --> 00:01:47,000 zwischen den Start-und End-Tags. 28 00:01:47,000 --> 00:01:53,000 Wir verwenden diese Art von wie HTML in dem Sinne, dass 29 00:01:53,000 --> 00:01:56,000 wir haben diese spitzen Klammern hier, um zu öffnen und zu schließen. 30 00:01:56,000 --> 00:01:58,000 Du wirst dies mit HTML zu sehen. 31 00:01:58,000 --> 00:02:03,000 Du wirst die gleiche Art von Syntax mit XML zu sehen. 32 00:02:03,000 --> 00:02:06,000 >> Dies kennzeichnet den Beginn eines PHP-Blocks. 33 00:02:06,000 --> 00:02:09,000 This? Php ist spezifisch für PHP. 34 00:02:09,000 --> 00:02:16,000 Wir schließen alles mit einem> als gut. 35 00:02:16,000 --> 00:02:22,000 Wir öffnen eine Datei in unserem Gerät mit was auch immer Sie möchten. 36 00:02:22,000 --> 00:02:25,000 In diesem Paket es sagt dynamic.php nennen. 37 00:02:25,000 --> 00:02:29,000 In Wahrheit kann man es nennen, was Sie möchten, aber der Name der Datei wird kommen 38 00:02:29,000 --> 00:02:34,000 und später wichtig, so denken Sie daran, was Sie es nennen. 39 00:02:34,000 --> 00:02:36,000 Ich werde zum Umstieg auf das Gerät, 40 00:02:36,000 --> 00:02:43,000 und ich werde ein Verzeichnis für Make 41 00:02:43,000 --> 00:02:48,000 § 9 Ich glaube, wir sind am jetzt. 42 00:02:48,000 --> 00:02:51,000 Und wir werden in § 9 gehen, 43 00:02:51,000 --> 00:02:54,000 und ich werde gedit verwenden. 44 00:02:54,000 --> 00:02:59,000 Mal sehen, gedit, und ich werde mir dynamic.php nennen. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 Innerhalb dynamic.php, denn dies ist eine PHP-Datei 47 00:03:06,000 --> 00:03:09,000 und ich möchte dies durch die PHP-Interpreter ausgeführt 48 00:03:09,000 --> 00:03:12,000 Ich muss alles beginnen mit diesen offenen Tags, 49 00:03:12,000 --> 00:03:17,000 so werde ich diese richtig loslegen, 50 00:03:17,000 --> 00:03:23,000 gebe mich ein wenig Platz zwischen den Tags 51 00:03:23,000 --> 00:03:26,000 und dann der Sinn dieser Übung war zu spielen, um mit 52 00:03:26,000 --> 00:03:34,000 diese Funktion aufgerufen gettype, so gettype, diese Funktion hier. 53 00:03:34,000 --> 00:03:38,000 >> Beachten Sie, dass es keinen Unterstrich oder Leerzeichen oder Bindestriche oder ähnliches 54 00:03:38,000 --> 00:03:42,000 Trennung von den 2 Worten, erhalten und geben, nur ein Wort überhaupt. 55 00:03:42,000 --> 00:03:46,000 Aber was wird dies tun, ist, wenn ich in einer Variablen gettype passieren, 56 00:03:46,000 --> 00:03:51,000 sagen, $ var oder $ x, 57 00:03:51,000 --> 00:03:55,000 dies wird mir sagen, irgendwie in einer Debug-Format 58 00:03:55,000 --> 00:03:59,000 was der Name dieser Art ist. 59 00:03:59,000 --> 00:04:03,000 Wir gehen hier experimentieren. 60 00:04:03,000 --> 00:04:07,000 Insbesondere, wenn Sie einen Rückblick auf die pset spec 61 00:04:07,000 --> 00:04:11,000 wir haben ein paar verschiedene Zeilen Code hier. 62 00:04:11,000 --> 00:04:16,000 In der ersten Zeile des Codes initialisieren wir diese Variable $ var, 63 00:04:16,000 --> 00:04:21,000 um gleich 7, und dann haben wir diese printf Linie 64 00:04:21,000 --> 00:04:25,000 das sagt hey, das ist printf var leer. 65 00:04:25,000 --> 00:04:29,000 Printf ist eine der vielen Möglichkeiten, wie wir die Dinge in PHP ausdrucken können. 66 00:04:29,000 --> 00:04:33,000 Oft sehen Sie die Echo-Funktion anstelle von printf, 67 00:04:33,000 --> 00:04:40,000 aber printf wir alle kennen nachdem in C Codierung für eine Weile. 68 00:04:40,000 --> 00:04:42,000 Was Sie konkret tun können ist mal sehen, ob Kopieren und Einfügen funktioniert. 69 00:04:42,000 --> 00:04:46,000 Ich werde geben diesem einen Versuch. 70 00:04:46,000 --> 00:04:52,000 Wir gehen zurück auf das Gerät. 71 00:04:52,000 --> 00:05:00,000 Okay, und es geht los. 72 00:05:00,000 --> 00:05:05,000 Und der Abstand ist ein wenig funky, aber hier gehen wir. 73 00:05:05,000 --> 00:05:08,000 Wir haben diesen Code hier. 74 00:05:08,000 --> 00:05:11,000 >> [Student] Ist es nicht gut Stil Registerkarte es? 75 00:05:11,000 --> 00:05:13,000 Sorry? 76 00:05:13,000 --> 00:05:15,000 [Student] Ist es üblich, Registerkarte es? 77 00:05:15,000 --> 00:05:21,000 Richtig, so Sam fragt, ob es Konvention Registerkarte es ist oder nicht. 78 00:05:21,000 --> 00:05:23,000 Normalerweise ja. 79 00:05:23,000 --> 00:05:26,000 In diesem Fall habe ich entschieden, nicht. 80 00:05:26,000 --> 00:05:33,000 Ehrlich gesagt, wirst du verschiedene Dinge unter verschiedenen Programmierern zu sehen. 81 00:05:33,000 --> 00:05:40,000 PHP ist in der Regel oft in Kombination mit HTML verwendet 82 00:05:40,000 --> 00:05:45,000 und andere Sprachen, und so manchmal der Druck aussehen wird ein wenig funky 83 00:05:45,000 --> 00:05:50,000 wenn Sie Gedankenstrich innerhalb von PHP Start-und End-Tags. 84 00:05:50,000 --> 00:05:53,000 Es hängt wirklich davon. 85 00:05:53,000 --> 00:05:56,000 In diesem Fall wird die Copy & Paste nicht die Registerkarten für mich fügen, 86 00:05:56,000 --> 00:06:02,000 aber es ist definitiv nicht, wie du gesagt hast, machen es klarer. 87 00:06:02,000 --> 00:06:06,000 Alle Rechte, wenn Sie speichern Sie diesen Code in dynamic.php 88 00:06:06,000 --> 00:06:10,000 dann, was Sie tun können, ist überliefert Ihrem Terminal-Fenster, wo ich hin bin hier 89 00:06:10,000 --> 00:06:17,000 in gedit, und zu tun das Äquivalent von compile 90 00:06:17,000 --> 00:06:20,000 mit zu machen und dann Ihren Code in C 91 00:06:20,000 --> 00:06:25,000 Sie müssen nur mit der PHP-Datei zu tun ist, Sie starten den PHP-Interpreter, 92 00:06:25,000 --> 00:06:30,000 das ist ein kleines Programm namens PHP, 93 00:06:30,000 --> 00:06:35,000 und das Argument geben Sie den Interpreter ist die Datei, die Sie interpretieren. 94 00:06:35,000 --> 00:06:40,000 In diesem Fall dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Whoops, wo habe ich es sagen? 96 00:06:43,000 --> 00:06:52,000 Oh, habe ich sie in Abschnitt 9, und hier bin ich. Das ist, warum. 97 00:06:52,000 --> 00:06:57,000 >> Nun, wenn ich erneut ausführen, 98 00:06:57,000 --> 00:07:02,000 sehen wir, dass in meinem ersten gettype Aufruf der Funktion 99 00:07:02,000 --> 00:07:04,000 var ist ein Integer. 100 00:07:04,000 --> 00:07:12,000 In den nächsten ein var ist eine Zeichenfolge, und dann in der dritten ein var ist ein boolean. 101 00:07:12,000 --> 00:07:15,000 Was ist interessant daran ist, wenn wir wieder nach oben sehen wir, dass 102 00:07:15,000 --> 00:07:18,000 diese sind Typen ähnlich denen, die in C hatten 103 00:07:18,000 --> 00:07:22,000 Wir hatten ints in C. 104 00:07:22,000 --> 00:07:26,000 Wir Art hatten Streicher in C, 105 00:07:26,000 --> 00:07:31,000 so Saiten nicht eine völlig legitime Art in dem Sinne, dass 106 00:07:31,000 --> 00:07:37,000 unserer CS50 String war wirklich was? 107 00:07:37,000 --> 00:07:39,000 Sorry? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Ja, es war dies char * haben wir genutzt. 110 00:07:43,000 --> 00:07:47,000 Am Anfang des Semesters waren wir mit den String-Typ, 111 00:07:47,000 --> 00:07:52,000 aber es war wirklich ein char * unter der Haube. 112 00:07:52,000 --> 00:07:58,000 Wir haben gerade sie definiert Typ, während in PHP diese Saiten eine tatsächliche Typ sind. 113 00:07:58,000 --> 00:08:07,000 Es ist nicht mehr dieser char * type stuff. 114 00:08:07,000 --> 00:08:10,000 >> Du wirst sehen, dass wir viel mehr Dinge mit Strings zu tun 115 00:08:10,000 --> 00:08:14,000 viel leichter in PHP als könnten wir in C, 116 00:08:14,000 --> 00:08:17,000 und schließlich haben wir diese boolean Typ und der große Unterschied hier ist, dass 117 00:08:17,000 --> 00:08:21,000 wenn wir wieder nach unten scrollen sehen wir, dass der Name dieser Typen 118 00:08:21,000 --> 00:08:28,000 sind nun integer, string und boolean anstelle von int und bool 119 00:08:28,000 --> 00:08:31,000 und als Sie abholen verschiedenen Programmiersprachen 120 00:08:31,000 --> 00:08:36,000 davon aus, dass an einem gewissen Punkt in Ihrem Leben werden Sie in Kontakt kommen 121 00:08:36,000 --> 00:08:40,000 verschiedene, werden Sie feststellen, kleine Macken wie diese 122 00:08:40,000 --> 00:08:44,000 wobei C Zahlen ints nennt. 123 00:08:44,000 --> 00:08:46,000 Manche nennen es Zahlen. 124 00:08:46,000 --> 00:08:51,000 Es gibt auch andere Begriffe, die Sie stoßen werde. 125 00:08:51,000 --> 00:08:55,000 Big int sahen wir heute in SQL. 126 00:08:55,000 --> 00:08:59,000 Es gibt auch die Nummer und dann bool, boolean, 127 00:08:59,000 --> 00:09:03,000 alle Arten von Unterschieden gibt. 128 00:09:03,000 --> 00:09:07,000 >> Dies ist nicht sonderlich interessant, aber jetzt werde ich Ihnen ein wenig Zeit- 129 00:09:07,000 --> 00:09:13,000 wenn wir heranzoomen out-durch diese Übung an der Unterseite von Seite 3 zu arbeiten 130 00:09:13,000 --> 00:09:20,000 , wo er fragt, welche Arten auf diese Werte entsprechen hier an der Unterseite. 131 00:09:20,000 --> 00:09:24,000 Wir haben 3,50. 132 00:09:24,000 --> 00:09:28,000 Wir haben dieses Ding hier, das ist interessant. 133 00:09:28,000 --> 00:09:32,000 Wir haben nicht gesehen, aber wenn Sie verfolgt haben zusammen in der Vorlesung 134 00:09:32,000 --> 00:09:35,000 Sie wahrscheinlich bereits wissen, was das ist. 135 00:09:35,000 --> 00:09:40,000 Dann haben wir diese, die diese Art von funky ist. 136 00:09:40,000 --> 00:09:42,000 Sie erkennen dies. 137 00:09:42,000 --> 00:09:46,000 Was ist das in C? 138 00:09:46,000 --> 00:09:50,000 Sam? Was würde das Ihnen in C? 139 00:09:50,000 --> 00:09:54,000 Es wäre zu öffnen eine Datei namens dynamic.php und machen es lesbar. 140 00:09:54,000 --> 00:09:58,000 Ja, und was wäre der Typ der Variablen, dass wir dies? >> Datei Sterne vergeben werden. 141 00:09:58,000 --> 00:10:02,000 Genau, würden wir dies in einer Datei Sterne vergeben. 142 00:10:02,000 --> 00:10:08,000 Das ist legitim PHP zu. 143 00:10:08,000 --> 00:10:12,000 Führen Sie, dass. Sehen Sie, was passiert, wenn Sie, dass in gettype passieren. 144 00:10:12,000 --> 00:10:19,000 Und dann auch prüfen, was null ist, was das sein könnte in PHP sein. 145 00:10:19,000 --> 00:10:21,000 Ich gebe Ihnen ein paar Minuten. 146 00:10:21,000 --> 00:10:24,000 Sie können buchstäblich kopieren und fügen Sie diese Werte in, 147 00:10:24,000 --> 00:10:29,000 und dann werden wir ein wenig zufälligen Anruf auf Sie 148 00:10:29,000 --> 00:10:34,000 und sehen, was du drauf hast. 149 00:10:34,000 --> 00:10:36,000 >> [Student] Ich habe eine Frage. << Yeah. 150 00:10:36,000 --> 00:10:40,000 In einem der Vorträge David sagte, es ist etwas, das Sie am Anfang der Datei stellen können 151 00:10:40,000 --> 00:10:43,000 so dass Sie sich nicht in PHP geben jeder Zeit. 152 00:10:43,000 --> 00:10:45,000 Was war das? 153 00:10:45,000 --> 00:10:50,000 Er war wahrscheinlich reden über die Pfund-bang, die Hash-bang. 154 00:10:50,000 --> 00:10:57,000 Es ist eine Richtlinie, wenn Sie markieren Sie Ihre Datei als ausführbare 155 00:10:57,000 --> 00:11:01,000 dann, was es tut, ist, wenn Sie die Datei ausführen 156 00:11:01,000 --> 00:11:06,000 es wird Ihnen sagen das Shell-Programm 157 00:11:06,000 --> 00:11:12,000 um den PHP-Interpreter zu verwenden, um den Inhalt der Datei zu interpretieren. 158 00:11:12,000 --> 00:11:16,000 Die Frage ist, was diese besondere Linie 159 00:11:16,000 --> 00:11:20,000 dass wir an der Spitze unserer PHP-Dateien enthalten, nicht zu zählen 160 00:11:20,000 --> 00:11:26,000 Diese PHP Linie oder diese PHP-Befehl, wenn wir die Datei ausführen möchten? 161 00:11:26,000 --> 00:11:31,000 Und man kann tatsächlich tun dies mit einer Reihe von verschiedenen Dateien. 162 00:11:31,000 --> 00:11:37,000 Ich glaube, es hängt davon ab, wo das PHP-Binary gespeichert ist, 163 00:11:37,000 --> 00:11:43,000 aber oft usr / bin / php ist ein guter Ort, um zu beginnen. 164 00:11:43,000 --> 00:11:45,000 Sie können diese Zahl genau, indem Sie wieder auf Ihr Gerät 165 00:11:45,000 --> 00:11:50,000 und geben Sie an, welche PHP. 166 00:11:50,000 --> 00:11:55,000 Der Befehl which herausfindet, wenn Sie die Ausführung binärer sind 167 00:11:55,000 --> 00:12:01,000 oder ein Befehl, wo die entsprechende Datei ist. 168 00:12:01,000 --> 00:12:06,000 Das sagt mir, dass das PHP wirklich Aliasing ist diese Binärdatei 169 00:12:06,000 --> 00:12:13,000 Das ist in usr / bin, was, wo ein Großteil der System-Binärdateien installiert werden, ist gespeichert. 170 00:12:13,000 --> 00:12:21,000 Zum Beispiel, wenn ich scrollen nach oben, jetzt, da ich diese put #! Linie hier 171 00:12:21,000 --> 00:12:27,000 Ich kann nach unten scrollen, und ich kann versuchen zu laufen 172 00:12:27,000 --> 00:12:35,000 dynamic.php, aber ich bekomme diese Fehlermeldung über Berechtigung verweigert, 173 00:12:35,000 --> 00:12:42,000 und was das bedeutet, ist, dass diese Datei ist derzeit nicht geben ausführbare Berechtigungen. 174 00:12:42,000 --> 00:12:46,000 Es ist nicht als Datei, dass jemand angezeichnet. 175 00:12:46,000 --> 00:12:52,000 >> Wenn Sie rannte zu machen oder Clang und Sie haben eine ausführbare daraus 176 00:12:52,000 --> 00:12:56,000 Der Compiler war klug genug zu wissen, dass hey, ich baue eine ausführbare. 177 00:12:56,000 --> 00:13:00,000 Sie wollen wahrscheinlich, um ihn auszuführen, so wäre es automatisch zu konfigurieren 178 00:13:00,000 --> 00:13:02,000 die Berechtigungen für Sie. 179 00:13:02,000 --> 00:13:06,000 Dies ist nicht der Fall, obwohl, wenn Sie eine normale Datei von Grund auf neu erstellen, 180 00:13:06,000 --> 00:13:13,000 Der Grund dafür ist in der Regel Sie nicht wollen, um jede Datei auf Ihrem System haben ausführbar sein, 181 00:13:13,000 --> 00:13:15,000 so haben Sie eigentlich zu gehen und manuell tun. 182 00:13:15,000 --> 00:13:22,000 Der einfachste Weg, es zu tun mit dem Befehl chmod, 183 00:13:22,000 --> 00:13:28,000 und chmod + x sagt fügen Sie die ausführbare Bit 184 00:13:28,000 --> 00:13:31,000 weil es die Lese-bit, die Schreib-Bit-und die ausführbare Bit, 185 00:13:31,000 --> 00:13:35,000 r, w und x, 186 00:13:35,000 --> 00:13:39,000 und sagen chmod + x wird anhand des ausführbaren schalten 187 00:13:39,000 --> 00:13:46,000 denn dann die Datei, die wir angeben, was in diesem Fall wird dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Student] Ist das eingeschaltet für alle? 189 00:13:49,000 --> 00:13:52,000 Lasst check this out, so wie würde ich überprüfen, um die Berechtigungen zu sehen? 190 00:13:52,000 --> 00:13:54,000 Weißt du, wie ich überprüfen, um die Zugriffsrechte einer Datei zu sehen? 191 00:13:54,000 --> 00:13:56,000 [Unverständlich Studenten Antwort] 192 00:13:56,000 --> 00:13:58,000 Sorry? >> [Student] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD gibt uns die Datei in Hacks. 194 00:14:03,000 --> 00:14:09,000 Auflistung aller Dateien,-l, zeigst mir alle Dateien in meinem Verzeichnis 195 00:14:09,000 --> 00:14:13,000 Art in ihren langen, ausführlichen Auflistung, und so sehen wir, dass 196 00:14:13,000 --> 00:14:17,000 Diese dynamic.php Datei 197 00:14:17,000 --> 00:14:23,000 wurde im November letzten Jahres den 5. Platz bei 4.21 geändert. 198 00:14:23,000 --> 00:14:26,000 Der Besitzer dieser Datei wird jharvard. 199 00:14:26,000 --> 00:14:28,000 Das ist der Benutzer, der angemeldet ist 200 00:14:28,000 --> 00:14:31,000 Das ist der Benutzer arbeite ich als ich, 201 00:14:31,000 --> 00:14:36,000 und wenn man auch in dem Gerät sind Sie arbeiten auch als Benutzer jharvard. 202 00:14:36,000 --> 00:14:38,000 Du bist in der Studenten-Gruppe, 203 00:14:38,000 --> 00:14:44,000 und das sind Dinge, die Sie oft genug sehen werden. 204 00:14:44,000 --> 00:14:47,000 >> Wir können in einer Menge von Detail gehen, 205 00:14:47,000 --> 00:14:50,000 aber zum größten Teil, was Sie wollen, zu betrachten, wenn Sie schauen, um zu sehen sind 206 00:14:50,000 --> 00:14:55,000 ob eine Datei ausführbar ist vor allem 207 00:14:55,000 --> 00:14:58,000 der Benutzer, der die Datei besitzt, der Besitzer, 208 00:14:58,000 --> 00:15:03,000 so dass diese jharvard, und dann haben wir 209 00:15:03,000 --> 00:15:07,000 die Berechtigungen Bits über hier auf der linken Seite, 210 00:15:07,000 --> 00:15:13,000 und die Art und Weise, dies zu lesen ist, dass das letzte Bit 211 00:15:13,000 --> 00:15:18,000 typischerweise wird zum Markieren ob wenigstens in diesem Fall verwendete 212 00:15:18,000 --> 00:15:21,000 diese letzte Bit wird oft ad gesetzt werden, um anzuzeigen, 213 00:15:21,000 --> 00:15:24,000 dass die Datei ein Verzeichnis ist und nicht nur eine normale Datei. 214 00:15:24,000 --> 00:15:28,000 Dann sind die folgenden 3 Bits hier 215 00:15:28,000 --> 00:15:34,000 bestimmen die Berechtigungen, die der Besitzer der Datei hat, 216 00:15:34,000 --> 00:15:38,000 so in diesem Fall jharvard als Eigentümer der Datei lesen und schreiben kann diese Datei 217 00:15:38,000 --> 00:15:42,000 aber es gibt ein Strich sagen, dass jharvard nicht ausführen kann diese Datei. 218 00:15:42,000 --> 00:15:46,000 Die nächsten 3 Bits sind für die Gruppe, so ist dies die Schüler-Gruppe, 219 00:15:46,000 --> 00:15:49,000 so gäbe es mehrere Benutzer auf meinem Gerät, 220 00:15:49,000 --> 00:15:52,000 und wir hatten mehrere Benutzer als Teil der Studenten-Gruppe, 221 00:15:52,000 --> 00:15:55,000 dann können sie all diese Datei lesen, aber sie können es nicht geschrieben, 222 00:15:55,000 --> 00:15:59,000 und ebenso alle anderen, die Welt 223 00:15:59,000 --> 00:16:01,000 können nur gelesen diese Datei als gut. 224 00:16:01,000 --> 00:16:03,000 Es gibt eine gute, lange writeup darüber, 225 00:16:03,000 --> 00:16:05,000 so können Sie online lesen. 226 00:16:05,000 --> 00:16:10,000 In das Problem Satz spec wir in diese gehen im Detail. 227 00:16:10,000 --> 00:16:12,000 >> [Student] Ist das 218 Bezugnahme auf die Welt? 228 00:16:12,000 --> 00:16:17,000 Die 218 ist-off der Spitze von meinem Kopf Ich vergesse, 229 00:16:17,000 --> 00:16:20,000 aber keine. 230 00:16:20,000 --> 00:16:29,000 Mal sehen. Ich bin auf dieses Recht Blanking jetzt. 231 00:16:29,000 --> 00:16:32,000 Zurück zu dem, was wir waren zu dieser chmod + x zu tun 232 00:16:32,000 --> 00:16:37,000 wo wir dynamic.php ausführbare Berechtigungen geben wollte, 233 00:16:37,000 --> 00:16:40,000 und die Frage war, ob dies ausführbare Berechtigungen für alle geben, 234 00:16:40,000 --> 00:16:44,000 oder einfach nur jharvard, und wir können dies durch sehen 235 00:16:44,000 --> 00:16:48,000 Ausführung der Befehle und geben ls-l, 236 00:16:48,000 --> 00:16:51,000 und jetzt sehen wir, dass es als ausführbare markiert. 237 00:16:51,000 --> 00:16:54,000 Sie sehen, dass es einen Farbwechsel. 238 00:16:54,000 --> 00:16:57,000 Jetzt dynamic.php wird grün aufgeführt, 239 00:16:57,000 --> 00:17:01,000 und es sieht aus wie die Antwort auf die Frage ist, was, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Nur jharvard. >> Nur jharvard, yeah. 241 00:17:04,000 --> 00:17:08,000 >> Wenn wir wollten, um die ausführbare Bit für alle machen 242 00:17:08,000 --> 00:17:10,000 wie können wir das tun? 243 00:17:10,000 --> 00:17:13,000 Irgendwelche Gedanken? >> A + x? 244 00:17:13,000 --> 00:17:15,000 Ja, genau. 245 00:17:15,000 --> 00:17:23,000 Charlotte sagte, wir können chmod a + x der dynamic.php tun, 246 00:17:23,000 --> 00:17:26,000 und jetzt, wenn wir ls-l laufen wir sehen, dass die ausführbaren Bits 247 00:17:26,000 --> 00:17:30,000 tatsächlich auf für jedermann geworden. 248 00:17:30,000 --> 00:17:37,000 Und man kann tatsächlich tun das Gegenteil davon, so können Sie ihn sich für alle 249 00:17:37,000 --> 00:17:41,000 mit minus. 250 00:17:41,000 --> 00:17:46,000 Jetzt ist es ausgeschaltet, und jetzt können wir es wieder einschalten für jharvard 251 00:17:46,000 --> 00:17:52,000 so dass wir tatsächlich laufen sie jetzt, 252 00:17:52,000 --> 00:17:58,000 und jetzt sehen Sie, wenn wir den Code dieses spezielle # laufen! Zeile am oberen, 253 00:17:58,000 --> 00:18:04,000 #! Linie, sagte der Schale, 254 00:18:04,000 --> 00:18:08,000 sagte unser Terminal hey, wenn diese Datei ausgeführt wird, 255 00:18:08,000 --> 00:18:14,000 / usr / bin / php, um diese Datei zu interpretieren 256 00:18:14,000 --> 00:18:20,000 und drucken Sie dann den Ausgang. 257 00:18:20,000 --> 00:18:22,000 [Unverständlich Studenten stellen] 258 00:18:22,000 --> 00:18:25,000 Klar, lass mich scrollen wieder nach oben. Genau wie diese. 259 00:18:25,000 --> 00:18:36,000 Du wirst sehen, alle diese Anweisungen beginnen mit diesem Pfund und dann die Ausrufezeichen, 260 00:18:36,000 --> 00:18:39,000 manchmal auch eine Shebang, hash bang. 261 00:18:39,000 --> 00:18:48,000 >> [Student] Wie können wir führen Sie es mit php dynamic.php bevor wir es ausführbar zu machen? 262 00:18:48,000 --> 00:18:55,000 Die Frage war, wie können wir führen Sie dieses mit dem PHP-Binary 263 00:18:55,000 --> 00:18:58,000 während dynamic.php ist nicht ausführbar? 264 00:18:58,000 --> 00:19:01,000 Das ist super wichtig, denn dies ist genau, wie 265 00:19:01,000 --> 00:19:06,000 es wird funktionieren, wenn Sie Probleme Satz 7 zu schreiben. 266 00:19:06,000 --> 00:19:09,000 Die meiste Zeit PHP-Dateien sind nicht direkt ausführbar. 267 00:19:09,000 --> 00:19:14,000 Der Weg, der funktioniert, ist, weil es das PHP-Binary, die ausführbaren ist. 268 00:19:14,000 --> 00:19:16,000 Der Dolmetscher ist die Sache, die gerade ausgeführt hat, 269 00:19:16,000 --> 00:19:20,000 und so, was er tut ist buchstäblich schlürfen in den gesamten Inhalt 270 00:19:20,000 --> 00:19:25,000 unserer dynamic.php Datei und gehen Zeile für Zeile 271 00:19:25,000 --> 00:19:29,000 und Ausführen dieser Befehle, so ist es mit unserem PHP-Datei 272 00:19:29,000 --> 00:19:31,000 als eine Liste von Anweisungen. 273 00:19:31,000 --> 00:19:36,000 Es ist nicht direkt der Ausführung. 274 00:19:36,000 --> 00:19:40,000 Das ist, wo wir sagen, dass diese Dateien zur Laufzeit interpretiert werden. 275 00:19:40,000 --> 00:19:46,000 Es ist ein Laufzeit Sprache statt etwas, das beim Kompilieren bestimmt ist, 276 00:19:46,000 --> 00:19:49,000 keine kompilierten Sprache wie C 277 00:19:49,000 --> 00:19:54,000 >> Gibt es eine Möglichkeit, eine Laufzeit Sprache zu erhalten, zu handeln, als ob es ein Kompilierzeit Sprache ist, 278 00:19:54,000 --> 00:19:58,000 wie wenn Sie alle auf einem Server ausgeführt getan haben 279 00:19:58,000 --> 00:20:00,000 statt, wissen Sie was ich meine? 280 00:20:00,000 --> 00:20:04,000 Ja, so ist die Frage 281 00:20:04,000 --> 00:20:11,000 Gibt es eine Möglichkeit, um die Laufzeit Sprachen bringt mehr wie Kompilierzeit Arten von Sprachen zu handeln? 282 00:20:11,000 --> 00:20:18,000 Und es gibt, ich meine, das ist ein aktives Gebiet der Forschung für viele dieser Unternehmen. 283 00:20:18,000 --> 00:20:22,000 Ich glaube, Facebook hat eine Menge Arbeit mit PHP 284 00:20:22,000 --> 00:20:25,000 und Kompilieren it down, so dass es schneller, optimieren sie 285 00:20:25,000 --> 00:20:29,000 seit ihrer Website basiert auf PHP gebaut. 286 00:20:29,000 --> 00:20:34,000 Wenn Sie schon nach node.js überhaupt, 287 00:20:34,000 --> 00:20:40,000 das ist eine Art JavaScript-Interpreter 288 00:20:40,000 --> 00:20:44,000 zu können JavaScript außerhalb des Browsers laufen, außerhalb Ihres Web-Browser, 289 00:20:44,000 --> 00:20:47,000 weil traditionell JavaScript würde nur innerhalb von Firefox oder Chrome laufen, 290 00:20:47,000 --> 00:20:52,000 und es würde verwendet werden, um coole Animationen auf einer Webseite passieren 291 00:20:52,000 --> 00:20:55,000 und machen Sie Ihre Web-Seite dynamisch. 292 00:20:55,000 --> 00:20:59,000 Das ist auf eine Menge von Arbeit gebaut worden, dass Google getan hat 293 00:20:59,000 --> 00:21:03,000 JavaScript und C + + zum 294 00:21:03,000 --> 00:21:09,000 miteinander verbinden, so gibt es eine Menge der aktiven Forschung 295 00:21:09,000 --> 00:21:13,000 erhalten diese Sprachen zu interagieren und zu optimieren, 296 00:21:13,000 --> 00:21:17,000 vor allem, weil so viele Menschen in PHP und JavaScript-Code 297 00:21:17,000 --> 00:21:19,000 denn es ist viel einfacher. 298 00:21:19,000 --> 00:21:21,000 Es ist viel schöner. Sie haben noch kein Zeiger. 299 00:21:21,000 --> 00:21:27,000 Sie haben noch Typen im Umlauf. 300 00:21:27,000 --> 00:21:31,000 Sie wollten die Vorteile dieser Kompilierung Sprachen zu gewinnen 301 00:21:31,000 --> 00:21:36,000 mit allen Typüberprüfung und der Geschwindigkeit und dem unteren Speichernutzung und alle daß 302 00:21:36,000 --> 00:21:42,000 unter Beibehaltung der Flexibilität und Benutzerfreundlichkeit dieser neueren. 303 00:21:42,000 --> 00:21:46,000 >> Zurück zu unserem ursprünglichen Plan des Angriffs. 304 00:21:46,000 --> 00:21:50,000 Wir haben ein paar dieser Fragen hier in unserem Problem Satz spec. 305 00:21:50,000 --> 00:21:54,000 Lasst uns durch sie sehr schnell gehen, und wir werden um den Raum zu gehen. 306 00:21:54,000 --> 00:21:59,000 Charlotte, ist, welche Art 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] Das ist eine doppelte. >> Es ist eine doppelte ist. 308 00:22:01,000 --> 00:22:03,000 Jimmy, was ist das nächste? >> Ein Array. 309 00:22:03,000 --> 00:22:09,000 Ein Array, awesome, und Jared, was ist das fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] Es ist eine Ressource. >> Es ist eine Ressource. 311 00:22:11,000 --> 00:22:15,000 Das ist irgendwie eine neue, nicht eine Datei Stern, keine Datei. 312 00:22:15,000 --> 00:22:19,000 Es ist eine Ressource ist die Art in PHP, 313 00:22:19,000 --> 00:22:24,000 und es tut mir leid, Ella, ist die letzte null, was? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, wie wird es in PHP geschrieben? >> Die gleiche Weise. 316 00:22:28,000 --> 00:22:30,000 Auf die gleiche Weise, Hauptstädte? >> Ja. 317 00:22:30,000 --> 00:22:33,000 Ja, alles in Ordnung. 318 00:22:33,000 --> 00:22:35,000 Hier gehen wir, wir haben eine doppelte, haben wir ein Array, 319 00:22:35,000 --> 00:22:41,000 wir haben eine Ressource, und dann haben wir null. 320 00:22:41,000 --> 00:22:48,000 Lassen Sie uns jetzt sehen, haben Sie gesehen- 321 00:22:48,000 --> 00:22:51,000 mal sehen, so dass ich jetzt denke, was ich auch tun möchte, ist nach oben ziehen 322 00:22:51,000 --> 00:22:56,000 Diese Web-Seite hier, diese php.net / manual, 323 00:22:56,000 --> 00:23:01,000 so, wenn euch kopieren, und öffnen Sie einen Web-Browser. 324 00:23:01,000 --> 00:23:07,000 Ich werde nach oben zu ziehen Chrome, setzen, dass in. 325 00:23:07,000 --> 00:23:10,000 Ich möchte Ihnen zeigen, nicht nur wegen 326 00:23:10,000 --> 00:23:13,000 können wir reden den ganzen Tag über Typen und alles, was fun stuff 327 00:23:13,000 --> 00:23:19,000 sondern weil dies die PHP-Handbuch, 328 00:23:19,000 --> 00:23:23,000 und es gibt eine ganze Reihe von PHP-Programmierer da draußen. 329 00:23:23,000 --> 00:23:26,000 Es gibt eine Menge von PHP Websites gibt, 330 00:23:26,000 --> 00:23:31,000 und als Folge gibt es eine Vielzahl von Dokumentationen in PHP, 331 00:23:31,000 --> 00:23:36,000 und das Handbuch, diese php.net, ist ein wirklich guter Ort, um zu gehen 332 00:23:36,000 --> 00:23:43,000 wenn Sie mit Fragen, was ist der beste Weg, um X in PHP zu tun 333 00:23:43,000 --> 00:23:45,000 oder was eine Funktion aussehen? 334 00:23:45,000 --> 00:23:49,000 Nur irgendwie immer mit dem, was es aussieht, weil vertraute 335 00:23:49,000 --> 00:23:54,000 Sie hierher kommen oft, ein Bit für den problemlosen 7. 336 00:23:54,000 --> 00:23:57,000 >> Wenn Sie am Ende dabei eine endgültige Projekt, das PHP verwendet 337 00:23:57,000 --> 00:24:04,000 wird dies ein Ort, den Sie sehr gut kennen werde. 338 00:24:04,000 --> 00:24:09,000 Oft ist die Art, wie Menschen dies tun, ist sie nutzen Google, um für den Standort zu suchen, 339 00:24:09,000 --> 00:24:16,000 und sie haben nicht das Suchfeld, die bis hier ist in der oberen rechten, welche Art von winzig ist. 340 00:24:16,000 --> 00:24:19,000 Wenn Sie rund googeln etwas mit PHP zu tun, und Sie sehen 341 00:24:19,000 --> 00:24:24,000 eine der manuellen Links Pop-up können Sie in der Regel darauf verlassen 342 00:24:24,000 --> 00:24:31,000 als eine ziemlich gute Ressource. 343 00:24:31,000 --> 00:24:34,000 Awesome, damit von diesen Typen, nur aus Neugier, 344 00:24:34,000 --> 00:24:37,000 welche davon haben wir nicht gesehen? 345 00:24:37,000 --> 00:24:40,000 Alles, was wir nicht gesehen haben, hier? 346 00:24:40,000 --> 00:24:44,000 [Student] Resource. >> Wir sahen Ressource mit dem Aufruf von fopen. 347 00:24:44,000 --> 00:24:48,000 [Student] Objekte. >> Objekte wir nicht sicher gesehen haben. 348 00:24:48,000 --> 00:24:51,000 Callbacks haben wir nicht gesehen. 349 00:24:51,000 --> 00:24:54,000 Es gibt einige dieser Pseudo-Typen ein. 350 00:24:54,000 --> 00:24:57,000 Wir haben definitiv sah nur Integer-und Doppelzimmer. 351 00:24:57,000 --> 00:25:01,000 Wir haben nicht einige von den anderen, so dass, wenn wir auf ganze Zahlen auf 352 00:25:01,000 --> 00:25:08,000 können wir sehen, gibt es irgendwelche anderen Zahlen, die sie hier haben? 353 00:25:08,000 --> 00:25:11,000 Sind sie alle-so integer, integer, integer. 354 00:25:11,000 --> 00:25:14,000 Einige Sprachen haben größere Integer-Typen, 355 00:25:14,000 --> 00:25:23,000 wie wir auf MySQL heute sah es int und dann große int. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> So, PHP Handbuch. 358 00:25:28,000 --> 00:25:37,000 Gehen wir zurück zu unserem Problem Satz spec, und wir werden jetzt nach unten scrollen auf Seite 4. 359 00:25:37,000 --> 00:25:41,000 Eines der Dinge, wenn Sie diese Sprachen zu bekommen passiert 360 00:25:41,000 --> 00:25:49,000 dass nicht über diese statische Typisierung, so dass diese Sprachen, in denen Sie haben zu erklären, 361 00:25:49,000 --> 00:25:52,000 der Typ einer Variablen vorn 362 00:25:52,000 --> 00:26:00,000 wird man Fällen, wo Sie anfangen könnte mit Variablen unterschiedlichen Typs 363 00:26:00,000 --> 00:26:04,000 miteinander wechselwirken, 364 00:26:04,000 --> 00:26:09,000 und PHP funktioniert dieses Ding, wo es versucht zu tun 365 00:26:09,000 --> 00:26:13,000 was sie als das Vernünftigste, was zu tun ist 366 00:26:13,000 --> 00:26:18,000 Sie haben, wenn zwei unterschiedliche Arten miteinander interagieren. 367 00:26:18,000 --> 00:26:24,000 Zum Beispiel, wenn wir uns mit diesen Zeilen Code hier 368 00:26:24,000 --> 00:26:29,000 Sie sehen, dass wir haben, was passiert, wenn 369 00:26:29,000 --> 00:26:38,000 wir versuchen, fügen Sie die Zeichenfolge ein, um die ganze Zahl 2. 370 00:26:38,000 --> 00:26:41,000 Was passiert, wenn wir versuchen, eine Zeichenfolge hinzuzufügen, die nicht ist ein numerischer Wert 371 00:26:41,000 --> 00:26:48,000 sondern die tatsächlichen Zeichen, CS auf die Zahl 50? 372 00:26:48,000 --> 00:26:51,000 Dann werden wir sehen, ist es etwas anderes, das, wo passiert 373 00:26:51,000 --> 00:26:56,000 anstatt eine Zeichenfolge in eine Zahl fügen wir eine Reihe sind in einen String, 374 00:26:56,000 --> 00:27:00,000 und so weiter und so fort bis zu dem Punkt, wo wir immer 375 00:27:00,000 --> 00:27:05,000 irgendeine Art von weird stuff hier wo wir 7 + wahren habe. 376 00:27:05,000 --> 00:27:09,000 Was zum Teufel soll das bedeuten? 377 00:27:09,000 --> 00:27:19,000 >> Wenn euch voran gehen und fügen Sie einige dieser Code in Ihr Gerät. 378 00:27:19,000 --> 00:27:27,000 Sie können es behalten in dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Wir werden sehen, was passiert. 380 00:27:41,000 --> 00:27:43,000 [Student] Verwenden Sie einfach ausdrucken, nicht printf? 381 00:27:43,000 --> 00:27:52,000 Yeah, so dass Sie werden feststellen, dass Druck ist auch eine gültige Funktion zum Drucken in PHP. 382 00:27:52,000 --> 00:27:54,000 Es gibt viele verschiedene Möglichkeiten, es zu tun. 383 00:27:54,000 --> 00:27:58,000 Wir werden mit ein paar der Beispiele später, wenn wir reden sehen 384 00:27:58,000 --> 00:28:02,000 über die einzigartige Problem, dass wir gehen zu schreiben 385 00:28:02,000 --> 00:28:06,000 und dann die Konzentration Problem, dass wir gehen zu schreiben 386 00:28:06,000 --> 00:28:09,000 dass, obwohl wir fopen und fclose 387 00:28:09,000 --> 00:28:15,000 das ist oft nicht der einfachste Weg, um in den Inhalt einer Datei lesen. 388 00:28:15,000 --> 00:28:21,000 PHP hat eine Menge von diesen C-like Überbleibsel. 389 00:28:21,000 --> 00:28:28,000 [Student] Wenn ich in allen 6 von diesen Dingen bekomme ich nur eine Zahl als Ausgang setzen. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Wenn Sie in allen 6 dieser Sachen. 391 00:28:36,000 --> 00:28:39,000 Lasst uns sehen, ist es, weil es vielleicht-ist 392 00:28:39,000 --> 00:28:46,000 eine Sache ist, dass diese Druck Anrufe nicht am Ende mit neuen Linien beendet. 393 00:28:46,000 --> 00:28:49,000 Es ist keine neue Trennlinie zwischen jeder dieser Druck Anrufe, 394 00:28:49,000 --> 00:28:51,000 so vielleicht sind Sie immer ein große Zahl, 395 00:28:51,000 --> 00:28:58,000 und es ist wirklich nur Amalgam neue Zeile Zeichen. 396 00:28:58,000 --> 00:29:00,000 [Student] Okay, wie kann ich sicher- 397 00:29:00,000 --> 00:29:03,000 Nun, es gibt eine Reihe von verschiedenen Möglichkeiten. 398 00:29:03,000 --> 00:29:06,000 Sie können manuell in einer Auflage von einer neuen Zeile Charakter gelegt, 399 00:29:06,000 --> 00:29:09,000 ein Echo einer neuen Zeile Charakter, 400 00:29:09,000 --> 00:29:12,000 Drucken der neuen Linie. 401 00:29:12,000 --> 00:29:16,000 [Student] So Echo ist dasselbe wie printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf ist wie C printf 403 00:29:21,000 --> 00:29:24,000 wo Sie drucken einen formatierten String. 404 00:29:24,000 --> 00:29:32,000 Sie liefert es die Format-String und dann all die Platzhaltervariablen. 405 00:29:32,000 --> 00:29:39,000 Es ist oft etwas, das nicht genutzt-wird 406 00:29:39,000 --> 00:29:42,000 mal sehen, wie ein Haftungsausschluss, 407 00:29:42,000 --> 00:29:48,000 Ich bin weniger vertraut mit PHP als ich mit anderen Web-Sprachen bin, 408 00:29:48,000 --> 00:29:53,000 und wenn ich in PHP programmiert ich in der Regel nicht printf 409 00:29:53,000 --> 00:29:59,000 weil ich finde, es schneller zu bedienen die String-Interpolation Fähigkeiten, die es hat, 410 00:29:59,000 --> 00:30:04,000 die wir in zu gehen und ich werde Ihnen in nur einer Sekunde zeigen, 411 00:30:04,000 --> 00:30:08,000 während in C wir irgendwie müssen diese hacky etwas tun, um es auszudrucken richtig. 412 00:30:08,000 --> 00:30:16,000 Sie können tatsächlich legte Variablen direkt in Strings in PHP. 413 00:30:16,000 --> 00:30:22,000 Printf ist eine Art von überlangen für das, was ich normalerweise tue. Ja, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] Im Allgemeinen, wenn Sie parse error bekommen bedeutet das- 415 00:30:25,000 --> 00:30:30,000 wie auf C es nicht genau sagen, wo der Fehler ist und was es ist, 416 00:30:30,000 --> 00:30:34,000 so bedeutet das Aussehen Ihrer gesamten Code und es herausfinden? 417 00:30:34,000 --> 00:30:39,000 Es ist in der Regel gezielter als die. 418 00:30:39,000 --> 00:30:48,000 Ich denke, in diesem Fall ist es ein wenig abseits war, 419 00:30:48,000 --> 00:30:51,000 so dass ich denke in diesem Fall fehlte uns ein Semikolon. 420 00:30:51,000 --> 00:30:54,000 Es wurde versucht, Sinn für alles zu machen, 421 00:30:54,000 --> 00:30:57,000 so wie diese interpretiert Sprachen, ist der Dolmetscher werde versuchen 422 00:30:57,000 --> 00:31:01,000 und tun ihr Bestes, um alles, was Arbeit angemessen zu machen. 423 00:31:01,000 --> 00:31:04,000 >> Du wirst sehen, zum Beispiel in JavaScript 424 00:31:04,000 --> 00:31:10,000 Sie werden oft-line-Anweisungen enden mit einem Semikolon, so wie sie in PHP zu tun, 425 00:31:10,000 --> 00:31:13,000 wie sie in C. 426 00:31:13,000 --> 00:31:15,000 In JavaScript einige der JavaScript-Interpreter 427 00:31:15,000 --> 00:31:20,000 in vielen Browsern wird in Semikolons für Sie zusammengestellt 428 00:31:20,000 --> 00:31:23,000 Wenn Sie zu fehlen ihnen geschehen wird. 429 00:31:23,000 --> 00:31:29,000 Sie werde versuchen, für einige Schlamperei auf Ihrer Seite unterbringen. 430 00:31:29,000 --> 00:31:34,000 Das ist, wo es vielleicht versuchen und versucht und versucht, die Dinge Arbeit, 431 00:31:34,000 --> 00:31:36,000 und schließlich wird es zu einem Punkt kommen, wo es in Ordnung, sagt, 432 00:31:36,000 --> 00:31:38,000 Ich kann die Dinge nicht auf Rettung zu arbeiten, und das ist, wo Sie eine Zeilennummer bekommen 433 00:31:38,000 --> 00:31:44,000 das vielleicht ein wenig aus dem genauen Ort sein. 434 00:31:44,000 --> 00:31:47,000 Okay, also lasst uns über das wirklich schnell gehen. 435 00:31:47,000 --> 00:31:50,000 Wir aufgehört mit Ella, so gehen wir über zu Missy, 436 00:31:50,000 --> 00:31:54,000 und Missy, was macht Druck String 1 plus der Nummer 2 geben? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Macht das Sinn? Sortieren von? 439 00:31:59,000 --> 00:32:02,000 Hat es Ihnen eine Nummer? Ist es Ihnen einen String? 440 00:32:02,000 --> 00:32:05,000 [Missy] Eine Reihe. >> Es ist eine Zahl ist. 441 00:32:05,000 --> 00:32:09,000 Aber es ist zu drucken, also wird es Ihnen irgendeine Art von String. 442 00:32:09,000 --> 00:32:12,000 >> Eine Sache, die wir tun, um dieses heraus überprüfen können 443 00:32:12,000 --> 00:32:21,000 ist, wenn wir tun, $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 und dann sagen wir Echo gettype, 445 00:32:28,000 --> 00:32:33,000 so dass wir mit einer dritten Art von Druck hier. 446 00:32:33,000 --> 00:32:39,000 Jetzt können wir sehen, was hier passiert. 447 00:32:39,000 --> 00:32:42,000 Hier, was wir haben ist, dass wir bekamen eine ganze Zahl aus diesem heraus. 448 00:32:42,000 --> 00:32:45,000 Obwohl wir das Hinzufügen dieser String in eine Zahl, 449 00:32:45,000 --> 00:32:48,000 wir haben nicht einen String aus ihm heraus, wie Missy sagte. 450 00:32:48,000 --> 00:32:52,000 Wir waren immer eine ganze Zahl ist. 451 00:32:52,000 --> 00:32:57,000 Okay, also schauen wir mal, next up, Kevin. 452 00:32:57,000 --> 00:32:59,000 CS + 50? >> [Kevin] 50. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Macht das Sinn? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Yeah. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Warum? Warum macht es Sinn? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Weil es nur mit der Zeichenfolge, mit Zahlenwert Null. 457 00:33:11,000 --> 00:33:16,000 Yeah, great. 458 00:33:16,000 --> 00:33:20,000 Art von mehrdeutigen Situationen, aber es ist gut zu wissen, was passiert. 459 00:33:20,000 --> 00:33:25,000 Stella, was als nächstes passiert mit der Nummer 1 + String 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3. >> 3 wieder. 461 00:33:27,000 --> 00:33:30,000 Und in diesem Fall, bekommen wir einen String oder eine Zahl? 462 00:33:30,000 --> 00:33:36,000 >> Geben wir diesem einen Versuch. 463 00:33:36,000 --> 00:33:43,000 Wer schneller als ich die Antwort bekommen? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, ich didn't-okay, lasst uns sehen, werden wir die gleiche Art von Sache zu tun 465 00:33:46,000 --> 00:33:49,000 wo wir haben eine Zahl plus eine Zeichenfolge, und wir werden die Art Echo, 466 00:33:49,000 --> 00:33:51,000 sehen, was wir bekommen. 467 00:33:51,000 --> 00:33:55,000 Wir bekommen auch eine ganze Zahl. 468 00:33:55,000 --> 00:33:58,000 Es spielt keine Rolle, welche die Zeichenfolge, die eine ist die Zahl ist. 469 00:33:58,000 --> 00:34:00,000 Wir immer noch um eine ganze Zahl zu erhalten. 470 00:34:00,000 --> 00:34:04,000 Es ist immer noch zu tun, was wir erwarten. 471 00:34:04,000 --> 00:34:09,000 Alle Rechte, so Sam, was etwa 90 + 9 Flaschen Bier an der Wand? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Keine Flaschen Bier an der Wand, though. 474 00:34:15,000 --> 00:34:17,000 Es gibt uns ein wenig mehr Informationen über das, was passiert ist. 475 00:34:17,000 --> 00:34:21,000 [Sam] Wenn Sie hatte 9 in Buchstaben geschrieben 476 00:34:21,000 --> 00:34:23,000 dann müsste man 90, richtig? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Yeah. 478 00:34:26,000 --> 00:34:30,000 Die Frage war, ob wir 9 geschrieben hatte als N-I-N-E 479 00:34:30,000 --> 00:34:34,000 würden wir 99 oder 90 bekommen haben? 480 00:34:34,000 --> 00:34:38,000 Wir würden erhalten 90. 481 00:34:38,000 --> 00:34:42,000 Es ist buchstäblich nur auf der Suche nach nummerische Zeichen. 482 00:34:42,000 --> 00:34:46,000 Es ist nicht klug genug, um Zahlwörter und das Zeug zu erkennen. Ja. 483 00:34:46,000 --> 00:34:48,000 >> [Student] Gibt es so etwas wie eine Typisierung in PHP? 484 00:34:48,000 --> 00:34:54,000 Es gibt, und es ist genau so, wie Sie es in C tun würde 485 00:34:54,000 --> 00:34:56,000 Was ist 10/7, Charlotte? 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1,4285. 487 00:34:58,000 --> 00:35:01,000 [Nate H.] Ja, so was mag vielleicht überraschend sein über diese? 488 00:35:01,000 --> 00:35:04,000 Was würde passieren, wenn Sie die gleiche Art von Dingen getan in C, 489 00:35:04,000 --> 00:35:06,000 wenn Sie getan haben 10/7 in C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Es wäre nur Ihnen-je nachdem wie man typecasted Ich denke, 491 00:35:08,000 --> 00:35:12,000 es würde Ihnen nur eine begrenzte Anzahl von Stellen nach dem Komma. 492 00:35:12,000 --> 00:35:16,000 Ja, so eine begrenzte Anzahl von Nachkommastellen. 493 00:35:16,000 --> 00:35:21,000 Was sonst könnte-würde es Ihnen keine Nachkommastellen? 494 00:35:21,000 --> 00:35:28,000 Oft nicht, so wieder, je nachdem, wie Sie Typumwandlung es 495 00:35:28,000 --> 00:35:31,000 es kann oder auch nicht wandeln es in eine Gleitkommazahl. 496 00:35:31,000 --> 00:35:35,000 Hier war es ganz nett, dass es tat. 497 00:35:35,000 --> 00:35:40,000 Hätten wir gezeigt, Ihnen diese zurück, wenn wir tun, diese Art von Sachen in C begonnen 498 00:35:40,000 --> 00:35:44,000 wäre es wahrscheinlich ein wenig mehr Sinn gemacht, 499 00:35:44,000 --> 00:35:48,000 dass es nicht nur um 1 gehen. 500 00:35:48,000 --> 00:35:51,000 Und dann endlich, Jamie, was 7 + wahr? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Was bedeutet das? 503 00:35:56,000 --> 00:35:58,000 Ich denke, es ist nur eine wahre den Wert 1. 504 00:35:58,000 --> 00:36:01,000 Yeah. Was passiert, wenn wir ändern, dass auf false? 505 00:36:01,000 --> 00:36:04,000 [Student] 7. 506 00:36:04,000 --> 00:36:09,000 Yeah, so erinnern, wo wir über diese binären Werte zu sprechen, 507 00:36:09,000 --> 00:36:12,000 Wobei 1, 0 ist aus? 508 00:36:12,000 --> 00:36:17,000 Jetzt haben wir wahr ist 1, 0 false, 509 00:36:17,000 --> 00:36:21,000 und man könnte dies nicht in den C Beispielen gesehen haben, dass wir diesen letzten Semesters, 510 00:36:21,000 --> 00:36:27,000 aber historisch Typ bool in C hat nicht ein echter Typ, 511 00:36:27,000 --> 00:36:32,000 so Leute haben 0 und 1 an der Stelle wahr und falsch verwendet. 512 00:36:32,000 --> 00:36:35,000 Dies ist eine Manifestation davon. 513 00:36:35,000 --> 00:36:39,000 >> Okay, so dass die ein wichtiger Teil über all dies 514 00:36:39,000 --> 00:36:41,000 ist, dass wir diese verschiedenen Typen haben. 515 00:36:41,000 --> 00:36:43,000 Sie können miteinander interagieren. 516 00:36:43,000 --> 00:36:49,000 Sie können oft miteinander interagieren in einer Weise, die nett sind, wie wir hier gesehen haben. 517 00:36:49,000 --> 00:36:53,000 Es ist schön, in der Lage sein String 1 und die Nummer 2 haben, fügen sie zusammen und erhalten 3. 518 00:36:53,000 --> 00:36:55,000 Das macht Sinn. 519 00:36:55,000 --> 00:36:59,000 Allerdings, wenn du schreibst Websites, und vor allem, wenn Sie die Bearbeitung 520 00:36:59,000 --> 00:37:04,000 Benutzereingaben, so sagen, Sie haben ein Web-Formular geschrieben 521 00:37:04,000 --> 00:37:09,000 daß sammelt Informationen von dem Benutzer und geht dann zu verarbeiten 522 00:37:09,000 --> 00:37:13,000 am hinteren Ende auf der Server-Seite in Ihrem PHP-Code 523 00:37:13,000 --> 00:37:18,000 Wenn Sie erwarten, dass Wert, dass der Benutzer eingetippt und eingereicht 524 00:37:18,000 --> 00:37:23,000 Ihre Form eine ganze Zahl sein oder eine Gleitkommazahl oder etwas ähnliches sein 525 00:37:23,000 --> 00:37:29,000 müssen Sie explizit warf es 526 00:37:29,000 --> 00:37:34,000 und dann einige Typprüfung. 527 00:37:34,000 --> 00:37:41,000 >> Sie wollen nicht nur auf diese Art Jonglage-System verlassen, um Dinge zu erarbeiten, 528 00:37:41,000 --> 00:37:48,000 vor allem aus Gründen der Sicherheit und gerade für die Robustheit Ihrer Webseite ein. 529 00:37:48,000 --> 00:37:51,000 Nur etwas im Hinterkopf behalten, dass, wann immer Sie die Handhabung von Formulardaten, 530 00:37:51,000 --> 00:37:57,000 alles, was in der Post oder den get superglobals kommt 531 00:37:57,000 --> 00:38:01,000 stellen Sie sicher, dass Sie immer zu validieren und konvertieren und typecast es. 532 00:38:01,000 --> 00:38:04,000 Und genauso wie wir über einen Moment sprechen vor diesem typecasting 533 00:38:04,000 --> 00:38:08,000 in PHP ist genau das gleiche wie in C, wo Sie die Klammern müssen 534 00:38:08,000 --> 00:38:14,000 und dann der Typ. 535 00:38:14,000 --> 00:38:16,000 Denken Sie daran. 536 00:38:16,000 --> 00:38:19,000 Eine Funktion, die sich als nützlich erweisen wird, wenn Sie dies tun 537 00:38:19,000 --> 00:38:22,000 ist wir haben mit, und dies ist eine Art als neben- 538 00:38:22,000 --> 00:38:27,000 wir haben mit dieser gettype Funktion hier 539 00:38:27,000 --> 00:38:30,000 um herauszufinden, welche Art von einer Variablen, 540 00:38:30,000 --> 00:38:37,000 und während das ist praktisch für die Fehlersuche und zu sehen, was der Typ einer Variablen ist 541 00:38:37,000 --> 00:38:42,000 Sie wollen nicht, diese zum Beispiel zu verwenden, in einem Zustand, wo 542 00:38:42,000 --> 00:38:57,000 Sie überprüfen, ob gettype von $ var = integer etwas zu tun. 543 00:38:57,000 --> 00:39:01,000 Das ist schlecht, schlecht, schlecht. 544 00:39:01,000 --> 00:39:09,000 Stattdessen gibt es diese Funktionen aufgerufen wird, integer, string ist, 545 00:39:09,000 --> 00:39:14,000 ist Array, das Sie stattdessen verwenden möchten, so dass in diesem Fall 546 00:39:14,000 --> 00:39:18,000 was ich möchte zu tun, anstatt von diesem Kerl hier 547 00:39:18,000 --> 00:39:31,000 wird verwenden Sie die ganzzahlig ist var. 548 00:39:31,000 --> 00:39:37,000 Und sie oft genannt wird is_ * im Sinne, dass man das * mit ganzzahligen ersetzen, 549 00:39:37,000 --> 00:39:43,000 string, et cetera, und nur um sicherzugehen, wirklich schnell 550 00:39:43,000 --> 00:39:50,000 ist dies int php. 551 00:39:50,000 --> 00:39:59,000 Sieht aus wie Sie tun können, ist entweder int oder gibt es Integer-als auch? 552 00:39:59,000 --> 00:40:06,000 Ja, alias, so int integer Aliase. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Wie sollen wir tun? 555 00:40:17,000 --> 00:40:20,000 Lassen Sie das Tempo ein wenig. 556 00:40:20,000 --> 00:40:24,000 Jetzt werden wir über Arrays zu sprechen, so wie man sehen kann 557 00:40:24,000 --> 00:40:28,000 im nächsten Teil der Spezifikation sprechen wir darüber, wie Arrays in PHP 558 00:40:28,000 --> 00:40:31,000 sind leicht unterschiedlich, als sie in C sind 559 00:40:31,000 --> 00:40:34,000 In Wahrheit sind sie Art von Amalgam 560 00:40:34,000 --> 00:40:36,000 die Arrays, dass Sie gekommen sind, kennen und in C liebe 561 00:40:36,000 --> 00:40:40,000 wo alles des gleichen Typs 562 00:40:40,000 --> 00:40:43,000 nacheinander und zusammenhängend in einem Speicher gespeichert, 563 00:40:43,000 --> 00:40:46,000 und Sie haben diese numerischen Indizes. 564 00:40:46,000 --> 00:40:49,000 Sie haben Index 0, Index 1, Index 2, 565 00:40:49,000 --> 00:40:53,000 und das Speichern von Werten an diesen Indizes. 566 00:40:53,000 --> 00:40:57,000 Sie können auch in C, wenn Sie Speller schrieb, viele von euch 567 00:40:57,000 --> 00:41:00,000 hat die Hash-Tabelle Ansatz, und man sah, dass dort hatten wir 568 00:41:00,000 --> 00:41:03,000 eine andere Art von Speicher, in dem wir waren Mapping 569 00:41:03,000 --> 00:41:07,000 ein Schlüssel zu einem Wert, so dass, wenn Sie versucht haben, etwas in Hash-Tabelle speichern 570 00:41:07,000 --> 00:41:11,000 Sie mussten angeben, dass Sie es mit einem bestimmten Schlüssel speichern wollte, 571 00:41:11,000 --> 00:41:17,000 und daß Taste ermittelt die Position des Wertes und es ihm gespeichert werden. 572 00:41:17,000 --> 00:41:22,000 Sie haben Art bekam diesen beiden Konzepten geschieht zur gleichen Zeit in einem PHP-Array, 573 00:41:22,000 --> 00:41:27,000 und als Ergebnis haben wir oft nennen diese assoziative Arrays 574 00:41:27,000 --> 00:41:33,000 wo wir assoziieren einen Schlüssel in einem Wert. 575 00:41:33,000 --> 00:41:39,000 Im nächsten Teil werden wir reden über eine einfache PHP-Array 576 00:41:39,000 --> 00:41:45,000 wo wir haben Schlüssel a, b und c, 577 00:41:45,000 --> 00:41:53,000 alle Saiten, Zuordnen zu den ganzen Zahlen 1, 2 und 3. 578 00:41:53,000 --> 00:41:57,000 Und Sie können Tasten von verschiedenen Arten. 579 00:41:57,000 --> 00:42:00,000 >> Sie können einige Tasten, Saiten, einige Tasten, die Zahlen sind. 580 00:42:00,000 --> 00:42:03,000 Sie kann Werte unterschiedlichen Typs. 581 00:42:03,000 --> 00:42:06,000 Sie können einen Wert, der eine Zeichenkette ist, ein Wert, der eine ganze Zahl ist, 582 00:42:06,000 --> 00:42:11,000 ein Wert, der ein Objekt oder eine andere Anordnung ist beispielsweise 583 00:42:11,000 --> 00:42:16,000 alle im gleichen Array-Objekt ist das irgendwie seltsam. 584 00:42:16,000 --> 00:42:20,000 Sie müssen nicht ein Array, das gerade ist ein Typ des Elements in ihm haben. 585 00:42:20,000 --> 00:42:26,000 Sie können viele verschiedene Dinge in dort. 586 00:42:26,000 --> 00:42:33,000 Die andere Sache zu beachten ist, dass, wenn Sie etwas sehen, wie dies in Ihrem Code zu tun 587 00:42:33,000 --> 00:42:38,000 wobei gilt PHP ein Array einfach so, 0, 1, 2, 3, 4, 5 festzustellen, 588 00:42:38,000 --> 00:42:43,000 das wird deklarieren initialisiert $ arr dies Array sein. 589 00:42:43,000 --> 00:42:48,000 Aber was du eigentlich immer unter der Haube ist diese Art der impliziten 590 00:42:48,000 --> 00:42:55,000 Erzeugung von Schlüsseln, wo wir haben 0 bis 0, 1 bereits in 1, 2 bis 2, 3 bis 3 liegt. 591 00:42:55,000 --> 00:42:59,000 Und es stellt sich heraus, dass selbst wenn Sie ein Array wie diesen Kerl hier oben 592 00:42:59,000 --> 00:43:03,000 wo man a, b und c als Schlüssel 593 00:43:03,000 --> 00:43:09,000 und dann beginnst du mit dem Array Push-Methode verwenden zu beginnen dieses Array wie ein Stapel, 594 00:43:09,000 --> 00:43:12,000 so können Sie sehen, dass dieses Array-Objekt, dieses Array wirklich überlastet wird. 595 00:43:12,000 --> 00:43:15,000 Wir können es als ein Array zu verwenden. Wir können es als eine Hash-Tabelle zu verwenden. 596 00:43:15,000 --> 00:43:19,000 Wir können es als Stack verwenden. 597 00:43:19,000 --> 00:43:22,000 Wenn Sie anfangen zu pressen Dinge auf diesem Array 598 00:43:22,000 --> 00:43:30,000 das erste, was Sie drücken auf dies Index 0 und dann Index 1 und Index 2 sein. 599 00:43:30,000 --> 00:43:33,000 Sie können diese Art von impliziter Erzeugung von Schlüsseln 600 00:43:33,000 --> 00:43:38,000 sofern Sie sie explizit. 601 00:43:38,000 --> 00:43:43,000 Die Art und Weise geben Sie Schlüssel explizit, ist natürlich mit dieser Klammer-Notation, 602 00:43:43,000 --> 00:43:48,000 das ist ähnlich wie Arrays, außer, statt nur so 603 00:43:48,000 --> 00:43:54,000 Integer-Indizes in hier, jetzt lassen wir nichts. 604 00:43:54,000 --> 00:43:57,000 Wenn Sie Ihren Schlüssel ein String sein wollen, sollten Sie es wie folgt angeben. 605 00:43:57,000 --> 00:44:06,000 Wenn Sie es ein int sein wollen, legen Sie es mit dem int die Sie verwenden möchten. 606 00:44:06,000 --> 00:44:13,000 >> Fragen zu diesem so weit? 607 00:44:13,000 --> 00:44:18,000 Eines der schönen Dinge über diese Idee 608 00:44:18,000 --> 00:44:26,000 ist, dass man immer nur einen Wert mit einem bestimmten Schlüssel gespeichert. 609 00:44:26,000 --> 00:44:32,000 Wenn wir wieder über Sie auf unserer Appliance-lassen Sie mich löschen Sie einige von diesem Zeug. 610 00:44:32,000 --> 00:44:47,000 Und lassen Sie uns sagen, dass ich ein Array initialisieren 0, 1, 2, getan sein. 611 00:44:47,000 --> 00:44:55,000 Wenn ich jetzt weiß, dass zum Beispiel, wenn ich echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Ich werde, um den Wert 0 ausgedruckt, 613 00:44:59,000 --> 00:45:05,000 und da kann immer nur ein Wert für einen bestimmten Schlüssel gespeichert werden 614 00:45:05,000 --> 00:45:11,000 wenn ich etwas auf $ arr speichern [0], sagen, 615 00:45:11,000 --> 00:45:16,000 dann werde ich wissen, wenn ich $ arr echo erneut [0] 616 00:45:16,000 --> 00:45:19,000 Ich werde nicht auf 0 wie bisher ausgedruckt bekommen. 617 00:45:19,000 --> 00:45:24,000 Ich werde nur eine erhalten. 618 00:45:24,000 --> 00:45:30,000 Das ist also im Grunde sagen, dass ich keine $ arr [0] speichert 2 verschiedene Werte. 619 00:45:30,000 --> 00:45:34,000 Es kann nicht speichern sowohl 0 als auch die Zeichenfolge ein, wie dies wörtlich ersetzt 620 00:45:34,000 --> 00:45:38,000 was auf $ arr [0] zuvor. 621 00:45:38,000 --> 00:45:43,000 Der Grund, warum ich diese bis sie ausgeführt wird, sehen, was passiert. 622 00:45:43,000 --> 00:45:47,000 Sehen Sie hier, dass ich 0 heraus und dann ein hier unten gedruckt. 623 00:45:47,000 --> 00:45:51,000 Es gibt keine neue Linie dort, weil ich faul war und nicht, dass in. setzen 624 00:45:51,000 --> 00:45:54,000 Was ist cool daran ist, wir können dies als einen Weg benutzen 625 00:45:54,000 --> 00:46:00,000 diese Idee eines Satzes zu erfassen 626 00:46:00,000 --> 00:46:07,000 wo wir können nicht mehrere Tasten innerhalb eines Arrays. 627 00:46:07,000 --> 00:46:10,000 Wir können nicht identische Schlüssel innerhalb eines Arrays. 628 00:46:10,000 --> 00:46:17,000 Ich kann nicht den Schlüssel 0 und den Wert 1 und die Taste 0 und den Wert einer 629 00:46:17,000 --> 00:46:21,000 oder die Taste 0 und dem Wert true. 630 00:46:21,000 --> 00:46:27,000 Die Tasten sind all-es gibt nur 1 Schlüssel im Array. 631 00:46:27,000 --> 00:46:32,000 Auch wenn Sie den gleichen Wert gespeichert 632 00:46:32,000 --> 00:46:35,000 mehrfach in der Anordnung unter verschiedenen Schlüsseln 633 00:46:35,000 --> 00:46:42,000 es ist nicht möglich, dass identische Schlüssel mehrmals in Ihrem PHP-Array. 634 00:46:42,000 --> 00:46:47,000 >> Wenn wir diese nächste Problem betrachten, unique.php, 635 00:46:47,000 --> 00:46:51,000 Wo wollen wir eröffnen eine PHP-Datei 636 00:46:51,000 --> 00:46:54,000 enthält eine Liste von Strings, ein String pro Zeile, 637 00:46:54,000 --> 00:47:01,000 und wir wollen alle eindeutigen Strings in dieser Datei zu finden 638 00:47:01,000 --> 00:47:06,000 alles, was wir tun müssen, ist eine dieser PHP Arrays 639 00:47:06,000 --> 00:47:12,000 und verwenden Sie die Zeichenfolgen in der Datei als den Schlüssel zu diesem Array 640 00:47:12,000 --> 00:47:17,000 und halten Aktualisierung unser Angebot, wie wir diese neuen Schlüssel zu speichern. 641 00:47:17,000 --> 00:47:22,000 Da wir jede Zeile ausgelesen der Datei können wir es im Array zu speichern, 642 00:47:22,000 --> 00:47:28,000 und am Ende werden wir als unsere Schlüssel in unserem Array 643 00:47:28,000 --> 00:47:34,000 alle eindeutigen Strings innerhalb der Datei. 644 00:47:34,000 --> 00:47:37,000 Macht das Sinn? 645 00:47:37,000 --> 00:47:41,000 Mal sehen, wie das funktioniert. 646 00:47:41,000 --> 00:47:49,000 Wir gehen zu öffnen, nach dem spec, rief eine neue Datei unique.php. 647 00:47:49,000 --> 00:47:58,000 Zu öffnen. Oops, sorry, neue Datei. 648 00:47:58,000 --> 00:48:03,000 Wir werden es starten mit der gleichen Start-und End-Tags. 649 00:48:03,000 --> 00:48:17,000 Wir werden es in Abschnitt 9 zu retten, und wir werden es nennen unique.php. 650 00:48:17,000 --> 00:48:25,000 Okay, jetzt hineinzuzoomen 651 00:48:25,000 --> 00:48:32,000 Die Idee hier ist eine Datei öffnen, 652 00:48:32,000 --> 00:48:38,000 Lesen in der Datei Zeile für Zeile. 653 00:48:38,000 --> 00:48:46,000 Für jede Zeile in der Datei 654 00:48:46,000 --> 00:48:51,000 wir haben eine Reihe, wo wir 655 00:48:51,000 --> 00:49:03,000  die Linie als unseren Schlüssel. 656 00:49:03,000 --> 00:49:09,000 Und dann, wenn wir bis zum Ende hier 657 00:49:09,000 --> 00:49:17,000 $ Arr die Schlüssel sind die einzigartigen Linien 658 00:49:17,000 --> 00:49:25,000 aus der Datei, da wir wissen, dass wenn ich so sagen Zeile in diesem Array 659 00:49:25,000 --> 00:49:33,000 mehrfach wird es nur halten das Überschreiben der alten Wert, 660 00:49:33,000 --> 00:49:46,000 und wir können tatsächlich legte Array-Zeile als selbst wie genau dies. 661 00:49:46,000 --> 00:49:48,000 >> Dies ist irgendwie seltsam. 662 00:49:48,000 --> 00:49:52,000 Wir speichern den gleichen Schlüssel-Wert-Paar wieder und wieder und wieder, 663 00:49:52,000 --> 00:50:00,000 aber da wir die Garantie, dass es nur ein Schlüssel namens Linie 664 00:50:00,000 --> 00:50:05,000 Wenn wir also eine Datei, die sagt, eine Datei von Tierstimmen und es hat wuff, wuff, 665 00:50:05,000 --> 00:50:11,000 meow, meow, moo, moo, und jedes Mal lesen wir ein Tier Lärm draußen 666 00:50:11,000 --> 00:50:15,000 wie woof und wir speichern sie in unser Angebot erhalten wir woof, und dann ein zweites Mal 667 00:50:15,000 --> 00:50:20,000 speichern wir woof wird es das erste Mal, dass wir darauf gespeicherten überschreiben. 668 00:50:20,000 --> 00:50:25,000 Am Ende werden wir nur noch ein Eintrag in dem Array 669 00:50:25,000 --> 00:50:33,000 für jede der Tierstimmen in unserem Tiergeräusche Datei. 670 00:50:33,000 --> 00:50:41,000 Do you guys sind zuversichtlich, dass Sie das Öffnen einer Datei in PHP zu bewältigen? 671 00:50:41,000 --> 00:50:45,000 Ein Weg, es zu tun, lasst uns über diesen schnell-ein Weg zu gehen, es zu tun 672 00:50:45,000 --> 00:50:50,000 ist mit fopen, wie wir bereits gesehen haben. 673 00:50:50,000 --> 00:50:55,000 Sie können fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Sie können es im Lesemodus öffnen, genau wie in C. 675 00:50:59,000 --> 00:51:02,000 Das ist ein ganz guter Weg, es zu tun. 676 00:51:02,000 --> 00:51:05,000 Sie dann auch für das Lesen in der Datei Zeile für Zeile 677 00:51:05,000 --> 00:51:12,000 haben die gleichen Funktionen, viele von ihnen, dass Sie wie in C. 678 00:51:12,000 --> 00:51:14,000 Sie haben fgets. 679 00:51:14,000 --> 00:51:17,000 Sie haben feof, obwohl wir nicht mögen mit, dass 680 00:51:17,000 --> 00:51:22,000 Denn erinnern, das war nicht so toll in C. 681 00:51:22,000 --> 00:51:25,000 Sie können es auf die gleiche Weise, 682 00:51:25,000 --> 00:51:34,000 aber hier ist eine wirklich coole Sache. 683 00:51:34,000 --> 00:51:41,000 Sorry, ich will nicht zu $ ​​Datei zu tun, aber es gibt eine Funktion namens Datei in PHP, 684 00:51:41,000 --> 00:51:47,000 und diese Funktion hier ist cool, weil es den gesamten Inhalt gelesen 685 00:51:47,000 --> 00:51:52,000 der Datei, die Sie angeben, so some_file.txt, 686 00:51:52,000 --> 00:51:56,000 liest den gesamten Inhalt dieser Datei in einem Array 687 00:51:56,000 --> 00:52:03,000 und dann können Sie über sie iterieren, das ist ziemlich raffiniert. 688 00:52:03,000 --> 00:52:07,000 >> Wenn wir zum Beispiel auf unserer Web-Browser 689 00:52:07,000 --> 00:52:14,000 und wir freuen Bei Google nach PHP-Datei 690 00:52:14,000 --> 00:52:23,000 Sie können hier sehen, dass unser Handbuch sagt, dass Datei liest die gesamte Datei in ein Array, 691 00:52:23,000 --> 00:52:27,000 und wir können file_get_contents, um den Inhalt einer Datei als String zurück, 692 00:52:27,000 --> 00:52:30,000 aber in der Regel nur immer es als ein Array ist wirklich nett, weil, was sie tut 693 00:52:30,000 --> 00:52:33,000 wird es bricht es so, dass jedes Element 694 00:52:33,000 --> 00:52:37,000 in der Anordnung ist einer Zeile der Datei, 695 00:52:37,000 --> 00:52:41,000 Wenn wir also auf Datei 0 aussehen, das ist die erste Zeile der Datei. 696 00:52:41,000 --> 00:52:46,000 File 1, zweite Zeile, Datei 2, dritte Zeile, und so weiter und so fort. 697 00:52:46,000 --> 00:52:50,000 Wäre es nicht schön, wenn das alles war musste man in C zu tun? 698 00:52:50,000 --> 00:52:53,000 Ziemlich raffiniert. 699 00:52:53,000 --> 00:52:59,000 David zeigte dies in der Vorlesung, und das Idiom er zeigte, war 700 00:52:59,000 --> 00:53:03,000 dass zusätzlich zu unserem Standard für Loop-in PHP wir hatten, 701 00:53:03,000 --> 00:53:09,000 for ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 und Sie können diese in PHP zu tun, dasselbe- 703 00:53:16,000 --> 00:53:27,000 haben wir auch dieses coole Konstrukt namens foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach ist wirklich praktisch, wenn Iteration über Arrays oder diesen Datenstrukturen 705 00:53:32,000 --> 00:53:36,000 weil es Ihnen erlaubt, sich aus jedes Element des Arrays 706 00:53:36,000 --> 00:53:42,000 ohne manuell kann die Indizierung selbst, 707 00:53:42,000 --> 00:53:46,000 ohne manuell einen Index erstellen Variable inkrementieren, 708 00:53:46,000 --> 00:53:51,000 ziehen Sie den Wert im Array an dieser Stelle, denn das ist eine sehr gewöhnliche Sache zu tun. 709 00:53:51,000 --> 00:53:54,000 >> Sie haben wahrscheinlich gemacht, dass Tonnen von Zeiten, in denen Sie taten C stuff 710 00:53:54,000 --> 00:54:00,000 über das Semester, so mit diesem foreach 711 00:54:00,000 --> 00:54:06,000 können wir eine Schleife über Datei-Array, 712 00:54:06,000 --> 00:54:12,000 und die Syntax ist, dass wir jetzt eine Schleife über dieses Array möchten 713 00:54:12,000 --> 00:54:18,000 und angeben, dass die Variable werden wir verwenden, um zu speichern 714 00:54:18,000 --> 00:54:27,000 das Element dieses Arrays lokal, lokal auf dem Umfang dieser foreach-Schleife 715 00:54:27,000 --> 00:54:32,000 wird werden wir es nennen Linie. 716 00:54:32,000 --> 00:54:38,000 Wenn es eine Datei nur Worte und es gibt ein Wort in einer Zeile 717 00:54:38,000 --> 00:54:43,000 wir könnten es Wort als gut, wirklich nur Ihnen dies einen Namen, 718 00:54:43,000 --> 00:54:49,000 was auch immer Sie es nennen wollen, 719 00:54:49,000 --> 00:55:02,000 und dann innerhalb der Schleife können Sie tun, was Sie wollen mit dieser Variablen Linie. 720 00:55:02,000 --> 00:55:08,000 Wenn es nicht genug, um den Wert des Feldes zu bekommen und Sie wollen auch zu bekommen 721 00:55:08,000 --> 00:55:17,000 der Index zusammen mit ihm können Sie einen Namen für den Index 722 00:55:17,000 --> 00:55:22,000 sowie der Wert, und jetzt haben Sie Zugang zu 2 Variablen. 723 00:55:22,000 --> 00:55:26,000 Sie haben $ i und Zeile 724 00:55:26,000 --> 00:55:30,000 wobei $ i der Index in dem Array, 725 00:55:30,000 --> 00:55:38,000 und Linie ist die Linie, die Sie aus der Datei abgerufen werden. 726 00:55:38,000 --> 00:55:49,000 Zum Beispiel, wenn wir zu drucken echo Zeile 0 der Datei, da dies wollte, 727 00:55:49,000 --> 00:55:57,000 wir konnten es einfach so machen ", ist Line $ i der Datei $ line" 728 00:55:57,000 --> 00:56:02,000 und hier ist etwas, was wir auch noch nicht gesehen haben entweder 729 00:56:02,000 --> 00:56:13,000 wo ich gerade total über diese ganze% s% d Business übersprungen 730 00:56:13,000 --> 00:56:16,000 dass wir mussten mit in C umgehen und stattdessen habe ich gerade gegangen 731 00:56:16,000 --> 00:56:19,000 Schreiben der Variablen in Zeile in meinem String. 732 00:56:19,000 --> 00:56:23,000 >> Dies wird als variable Interpolation, String-Interpolation 733 00:56:23,000 --> 00:56:26,000 wo Sie stopfte die Variablen direkt und der PHP-Interpreter 734 00:56:26,000 --> 00:56:31,000 ist intelligent genug, wenn es durch eine Zeichenfolge, die mit Doppel beginnt liest Zitate- 735 00:56:31,000 --> 00:56:34,000 nicht einfache Anführungszeichen, mit single-quoted Strings können Sie dies nicht tun- 736 00:56:34,000 --> 00:56:38,000 aber mit doppelten Anführungszeichen, wie es heißt durch sie für Variablen schaut. 737 00:56:38,000 --> 00:56:42,000 Es ist die Jagd nach ihnen ab, und wenn es Variablen sieht, wird es den Wert der Variablen wird 738 00:56:42,000 --> 00:56:47,000 und stopfen sie in den String, wenn es in eine String-Repräsentation umwandeln kann, 739 00:56:47,000 --> 00:56:51,000 das ist ziemlich raffiniert. 740 00:56:51,000 --> 00:56:56,000 Denn jetzt, lasst uns kommentieren Sie die Ruhe von allem, 741 00:56:56,000 --> 00:57:00,000 speichern Sie diese, und was wir jetzt tun können, ist, dass wir eröffnen können eine Datei 742 00:57:00,000 --> 00:57:06,000 dass wir rufen some_file.txt-let 's erstellen Sie eine neue Datei- 743 00:57:06,000 --> 00:57:15,000 und wir können in einem Haufen Unsinn Zeug hier, nur um alles auszuprobieren, 744 00:57:15,000 --> 00:57:25,000 speichern Sie diese, nennen wir es some_file.txt, wie mache ich hier oben an der Spitze, 745 00:57:25,000 --> 00:57:33,000 und jetzt, wenn ich zoomen, nur um sicherzustellen, dass alles in das gleiche Verzeichnis- 746 00:57:33,000 --> 00:57:36,000 es sieht aus wie ich unique.php und some_file.txt im gleichen Verzeichnis haben. 747 00:57:36,000 --> 00:57:42,000 Wenn ich laufen php unique.php 748 00:57:42,000 --> 00:57:51,000 sehen, wie es druckt jede Zeile in meiner Akte und was die Leitung? 749 00:57:51,000 --> 00:57:56,000 >> Das ist ziemlich mächtig, nicht wahr? 750 00:57:56,000 --> 00:58:03,000 Schauen Sie, es dauerte 3 Zeilen Code zum Öffnen einer Datei. 751 00:58:03,000 --> 00:58:08,000 Nun, 4 Zeilen Code. Ich kann nicht zählen heute deutlich. 752 00:58:08,000 --> 00:58:13,000 Aber wirklich nur 2 interessante Zeilen Code, da die anderen 2 waren die geschweiften Klammern, 753 00:58:13,000 --> 00:58:17,000 aber in diesem viel Code konnten wir eine Datei zu öffnen, durchlaufen sie, 754 00:58:17,000 --> 00:58:20,000 Ziehen Sie die Zeilennummer und die Linie selbst 755 00:58:20,000 --> 00:58:24,000 und drucken Sie es aus. 756 00:58:24,000 --> 00:58:26,000 Cool stuff. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Ich habe eine Frage zu der Syntax. 758 00:58:28,000 --> 00:58:33,000 So foreach beschäftigt sich mit jeder einzelnen Zeile der Datei, die Sie öffnen, 759 00:58:33,000 --> 00:58:37,000 und dann, wenn Sie die Dinge mit jeder einzelnen Zeile wollen Sie tun es einfach als 760 00:58:37,000 --> 00:58:39,000 und ordnen Sie dann den Wert. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Was Sie können hier tun-die Frage war 762 00:58:41,000 --> 00:58:46,000 die foreach hat mit dem Array zu tun, so dass die foreach-Syntax 763 00:58:46,000 --> 00:58:51,000 wirklich foreach, und beachten Sie, dass es keinen Platz 764 00:58:51,000 --> 00:58:53,000 oder irgendetwas zwischen dem für und jeden. 765 00:58:53,000 --> 00:58:56,000 Sie haben nach rechts nebeneinander gehen, 766 00:58:56,000 --> 00:59:00,000 und dann dauert es in einem Array, 767 00:59:00,000 --> 00:59:05,000 und dann haben Sie diese andere Schlüsselwort als dass muss da sein heißt, 768 00:59:05,000 --> 00:59:11,000 und dann nach dem, wie Sie können entweder man ein Variablenname, 769 00:59:11,000 --> 00:59:14,000 in welchem ​​Fall wirst du werden Herausziehen die Werte des Arrays, 770 00:59:14,000 --> 00:59:20,000 nicht die Indizes, oder wenn Sie es tun, wie wir weiter unten geschrieben habe 771 00:59:20,000 --> 00:59:24,000 erhalten Sie die Schlüssel und die Werte. 772 00:59:24,000 --> 00:59:33,000 Sie foreach Element des Arrays oder des Feldes Paares um eingegebene Wert 773 00:59:33,000 --> 00:59:38,000 oder einfach als Wert. 774 00:59:38,000 --> 00:59:40,000 Je nachdem, was Sie brauchen, wenn Sie nicht brauchen die Schlüssel, 775 00:59:40,000 --> 00:59:42,000 dann können Sie mit dem Wert gehen. 776 00:59:42,000 --> 00:59:45,000 Wenn Sie die Tasten möchten, können Sie mit ihnen zu gehen. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Ich erkannte auch, wir haben nie erklärt, die i oder Linie. 778 00:59:48,000 --> 00:59:51,000 Wie kommt es überhaupt, was sie sind? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Was meinst du mit erklären, bedeuten? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Wir haben nie gesagt, was ich oder Linie Mittel. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Wir haben nie gesagt, den Computer, was ich oder Linie in Bezug auf Mittel der- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] Dass sie indiziert oder, dass sie sind- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Wir haben nie gesagt, dass es sich hierbei um den Index oder den Schlüssel und der Wert sein, 784 01:00:09,000 --> 01:00:13,000 und das ist, denn das ist der PHP-Interpreter. 785 01:00:13,000 --> 01:00:17,000 Dies dient als Erklärung und sagt okay, wird der Schlüssel sein wird 786 01:00:17,000 --> 01:00:20,000 a Variable namens i in eine Variable namens i gespeichert. 787 01:00:20,000 --> 01:00:24,000 Der Wert wird in einer Variablen namens Zeile gespeichert werden, 788 01:00:24,000 --> 01:00:28,000 so dient dies als Erklärung dieser Variablen 789 01:00:28,000 --> 01:00:35,000 und sagt $ i ist ein Schlüssel, und $ line ist ein Wert. 790 01:00:35,000 --> 01:00:37,000 Yeah, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Wenn die Tasten nicht getan numerisch 792 01:00:41,000 --> 01:00:44,000 wie kommt es zu entscheiden, in welcher Reihenfolge es geht um alles, was gedruckt werden? 793 01:00:44,000 --> 01:00:47,000 Ist es genauso wie die Reihenfolge in eingegebenen geht? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Geben wir es zu versuchen. 795 01:00:51,000 --> 01:00:57,000 Lassen Sie uns eine Variable namens arr, 796 01:00:57,000 --> 01:01:06,000 und was wir tun können a geht an 7. 797 01:01:06,000 --> 01:01:19,000 Lassen Sie uns sagen 0 geht zu einem anderen Array mit 1, 2, oder Apfel. 798 01:01:19,000 --> 01:01:30,000 Sagen wir 7 auf 1 geht, geht b bis 2, 799 01:01:30,000 --> 01:01:39,000 und 3 bis 4 geht. 800 01:01:39,000 --> 01:01:44,000 Dies ist eine Art verrückt aussehenden beispielsweise weil wir durcheinander sind 801 01:01:44,000 --> 01:01:47,000 Strings und Integers ganz über dem Platz. 802 01:01:47,000 --> 01:01:50,000 Es gibt keinen wirklichen um dieses Arrays. 803 01:01:50,000 --> 01:01:55,000 Ich meine, wir konnten alles in alphabetischer Reihenfolge zu bestellen über die Tasten. 804 01:01:55,000 --> 01:01:57,000 Wir konnten alles alphabetischer Reihenfolge nach dem Wert. 805 01:01:57,000 --> 01:02:00,000 >> Wir könnten versuchen, und berücksichtigen, dass einige Strings sind, sind einige ints, 806 01:02:00,000 --> 01:02:03,000 und wir könnten versuchen, und konvertieren Sie sie alle auf die gleiche Art und sehen, was passiert, 807 01:02:03,000 --> 01:02:09,000 oder wir könnten sie im Wert, in dem wir bereits eingegeben haben prüfen 808 01:02:09,000 --> 01:02:14,000 wo wir diesen Kerl legte in der ersten, dieser Kerl in der zweiten, dieser Kerl in der dritten, 809 01:02:14,000 --> 01:02:19,000 dieser Kerl in der vierten, et cetera. 810 01:02:19,000 --> 01:02:23,000 Mal sehen, was passiert, wenn wir diesen Code ausführen. 811 01:02:23,000 --> 01:02:29,000 Wenn wir nach unten scrollen und nicht die gleiche Art von Ding, 812 01:02:29,000 --> 01:02:31,000 und hier ist es nicht Ausdruck der neuen Linien. 813 01:02:31,000 --> 01:02:35,000 Wenn es Dinge zu lesen aus der Datei wurde einschließlich der neuen Linien in den Werten, 814 01:02:35,000 --> 01:02:38,000 das war, warum es ausgedruckt schön, während es hier nicht tat, 815 01:02:38,000 --> 01:02:40,000 so das ist, warum alles zusammen ist smushed. 816 01:02:40,000 --> 01:02:44,000 Fügen wir in dieser neuen Linie nur um die Dinge schön. 817 01:02:44,000 --> 01:02:51,000 Lassen Sie uns erneut, und so hier 818 01:02:51,000 --> 01:02:54,000 schauen, was passiert. 819 01:02:54,000 --> 01:03:00,000 Es bedruckt alles in der Reihenfolge, in der wir es in das Array. 820 01:03:00,000 --> 01:03:10,000 Es ist, um in diesem Sinne zu bewahren. 821 01:03:10,000 --> 01:03:15,000 >> Gehen wir zurück zu diesem Problem der uniques 822 01:03:15,000 --> 01:03:20,000 Wo wollen wir in der Lage sein zu iterieren eine Datei, 823 01:03:20,000 --> 01:03:24,000 und wir geben es some_file.txt, 824 01:03:24,000 --> 01:03:27,000 und wir werden über das so durchlaufen. 825 01:03:27,000 --> 01:03:31,000 Wir haben gesagt, dass wir ein Array zu verwenden, um sicherzustellen, wollte, dass wir würde haben alle der 826 01:03:31,000 --> 01:03:36,000 einzigartige Linien von dort, und wir konnten das wirklich leicht tun 827 01:03:36,000 --> 01:03:49,000 nur durch Speichern in einem Array, die wir natürlich außerhalb des Bereichs einer Schleife zu deklarieren, 828 01:03:49,000 --> 01:03:55,000 und wir sagten, dass wenn wir nutzten die Zeilen in der Datei als Schlüssel in unser Angebot 829 01:03:55,000 --> 01:03:59,000 wenn wir eine doppelte Zeile eingegeben würden wir das Überschreiben der vorherigen Wert. 830 01:03:59,000 --> 01:04:08,000 Es ist nicht immer möglich, 2 Tasten, die identisch in demselben Array befinden haben. 831 01:04:08,000 --> 01:04:13,000 Wir können genau das zu tun. 832 01:04:13,000 --> 01:04:17,000 Wir loszuwerden dieser Echo-Anweisung finden Sie hier. 833 01:04:17,000 --> 01:04:24,000 Hier speichern wir die Zeile in der Datei in unser Angebot 834 01:04:24,000 --> 01:04:28,000 Verwendung selbst als Schlüssel. 835 01:04:28,000 --> 01:04:32,000 Nichts, und es stellt sich heraus, dass wir brauchen noch nicht einmal auf diese Taste. 836 01:04:32,000 --> 01:04:38,000 Wir brauchen nicht, dass ich variabel. 837 01:04:38,000 --> 01:04:43,000 An diesem Punkt, wenn wir einen anderen foreach-Schleife zu tun 838 01:04:43,000 --> 01:04:48,000 und wir waren in einer Schleife über jede arr 839 01:04:48,000 --> 01:04:56,000 und Linie jetzt, wenn wir-oops echo, sorry. 840 01:04:56,000 --> 01:05:00,000 Wir können nicht das Komma. Wir müssen dies als Schlüsselwort verwenden. 841 01:05:00,000 --> 01:05:05,000 Nun, wenn wir Zeile echo sollten wir uns alle eindeutigen Wörter in der Datei. 842 01:05:05,000 --> 01:05:10,000 Wenn wir gehen bis zu some_file.txt, 843 01:05:10,000 --> 01:05:19,000 und lassen Sie uns sagen, dass wir tun, Apfel, Banane, Apfel, Apfel, Banane, 844 01:05:19,000 --> 01:05:22,000 wenn wir Ausdrucken sind alle der einzigartigen Wörter in dieser Datei sollten wir nur erhalten 845 01:05:22,000 --> 01:05:30,000 Apfel und Banane zum Ausdrucken. 846 01:05:30,000 --> 01:05:36,000 Wenn wir das zu retten, jetzt hier wir heranzoomen in, 847 01:05:36,000 --> 01:05:44,000 php unique.php und ta-da. 848 01:05:44,000 --> 01:05:51,000 Wir haben die Datei erfolgreich uniqued. 849 01:05:51,000 --> 01:05:55,000 >> Der letzte Teil dieses Problems ist gefragt, um dieses Feld zu sortieren, bevor Sie es ausgedruckt 850 01:05:55,000 --> 01:05:58,000 denn in diesem einfachen Beispiel, dass wir gerade getan haben 851 01:05:58,000 --> 01:06:04,000 Wir waren in dem Sinne, das Glück, dass die Datei- 852 01:06:04,000 --> 01:06:06,000 wir haben dieses konstruiertes Beispiel mit Äpfeln und Bananen. 853 01:06:06,000 --> 01:06:08,000 Es wurde bereits sortiert. 854 01:06:08,000 --> 01:06:19,000 Aber mit der einfachen Art Funktion können Sie sortieren ein Array, das ist ziemlich raffinierte ist. 855 01:06:19,000 --> 01:06:24,000 Das letzte, was ich wollte mit euch über wirklich schnell zu sprechen, 856 01:06:24,000 --> 01:06:31,000 ist, dass diese Art von PHP alles schön und gut ist, und es ist super handlich 857 01:06:31,000 --> 01:06:43,000 zu wissen, wie zu tun, wenn Sie jemals brauchen werden, um kleine, schnelle Dinge programmatisch tun. 858 01:06:43,000 --> 01:06:48,000 Zum Beispiel, wenn ich ein Programm, das, sagen wir schreiben, 859 01:06:48,000 --> 01:06:53,000 stellt alle in Abschnitte werde ich nicht zu gehen und schreiben Sie es in C. 860 01:06:53,000 --> 01:06:55,000 Es wird lange dauern. 861 01:06:55,000 --> 01:06:57,000 Es wird eine Art Schmerz, vor allem wenn es sich um Dateien beteiligt, 862 01:06:57,000 --> 01:07:00,000 wie euch gesehen haben. 863 01:07:00,000 --> 01:07:05,000 Es ist so schön, dass nur mit diesem viel Code hier 864 01:07:05,000 --> 01:07:08,000 konnten wir durch eine Datei rippen, ziehen alle eindeutigen Werte 865 01:07:08,000 --> 01:07:11,000 und drucken Sie sie wieder heraus. 866 01:07:11,000 --> 01:07:16,000 >> Doch für Ihre Aufgaben, für Ihre Projekte, 867 01:07:16,000 --> 01:07:20,000 wenn Sie bauen Webseiten sind mit PHP die Macht ist, dass 868 01:07:20,000 --> 01:07:25,000 wir laufen unsere PHP-Dateien über diesen Interpreter, 869 01:07:25,000 --> 01:07:29,000 und der Interpreter verarbeitet alles innerhalb der PHP-Tags, 870 01:07:29,000 --> 01:07:34,000 Verlassen alles unberührt und spuckt die Ergebnisse. 871 01:07:34,000 --> 01:07:40,000 Wir können dies tun, um HTML programmgesteuert zu erstellen. 872 01:07:40,000 --> 01:07:46,000 Nun, wenn wir wieder in der Spezifikation zu gehen, das letzte Problem in der spec 873 01:07:46,000 --> 01:07:56,000 Gespräche über diese Idee der Konzentration 874 01:07:56,000 --> 01:08:01,000 und die Schaffung einer Drop-Down-Menü 875 01:08:01,000 --> 01:08:06,000 die Sie kann oder auch nicht tun wollen, je nachdem, was das endgültige Projekt tut, 876 01:08:06,000 --> 01:08:13,000 Das erlaubt dem Benutzer, aus einer Liste von allen möglichen Konzentration zu wählen 877 01:08:13,000 --> 01:08:15,000 ihre ein-Konzentration. 878 01:08:15,000 --> 01:08:21,000 Nun, dies ist eine Art Schmerz, um dies herauszufinden geben 879 01:08:21,000 --> 01:08:25,000 und müssen all dies manuell zu tun, vor allem wenn man mit, um sicherzustellen, 880 01:08:25,000 --> 01:08:28,000 Sie haben alle die spitzen Klammern an der richtigen Stelle und alle die Anführungszeichen an der richtigen Stelle, 881 01:08:28,000 --> 01:08:34,000 so mit PHP können Sie dies programmgesteuert tun, und Sie können dies sehr schnell tun. 882 01:08:34,000 --> 01:08:36,000 >> Mal sehen, wie dies zu tun. 883 01:08:36,000 --> 01:08:42,000 Wir gehen zu öffnen eine neue Datei. 884 01:08:42,000 --> 01:08:46,000 Wir werden in unserem PHP-Tags setzen. 885 01:08:46,000 --> 01:08:53,000 Wir werden es nennen concentrations.php, 886 01:08:53,000 --> 01:08:58,000 und jetzt, wenn du das tust, die Art von einer guten Sache zu denken 887 01:08:58,000 --> 01:09:02,000 wenn Sie versuchen zu mischen und anzupassen PHP und HTML 888 01:09:02,000 --> 01:09:08,000 ist es, herauszufinden, okay, was ist der Teil, den ich will, um programmgesteuert zu generieren? 889 01:09:08,000 --> 01:09:11,000 Was ist der Teil, den ich kann programmgesteuert zu generieren? 890 01:09:11,000 --> 01:09:17,000 Es ist wahr, dass Sie alle Ihre HTML zu tun 891 01:09:17,000 --> 01:09:19,000 Innere PHP-Blöcke. 892 01:09:19,000 --> 01:09:24,000 Sie können echo alle HTML als Zeichenfolgen. 893 01:09:24,000 --> 01:09:30,000 Zum Beispiel, wenn ich will, zu tun beginnen die select-Tags innerhalb von PHP 894 01:09:30,000 --> 01:09:46,000 Ich kann echo sage, das sage auswählen Name = Konzentration, 895 01:09:46,000 --> 01:09:49,000 und dann unten, ich könnte noch einen Echo tag 896 01:09:49,000 --> 01:09:57,000 oder ein anderes Echo als nah das auszuwählen. 897 01:09:57,000 --> 01:10:00,000 Dies ist eine Möglichkeit, es zu tun, denn was wörtlich los ist zu tun 898 01:10:00,000 --> 01:10:09,000 ist Ausdruck dieser Zeichenfolge, wenn es durch den PHP-Interpreter ausgeführt ist, 899 01:10:09,000 --> 01:10:12,000 so wird das Ergebnis HTML. 900 01:10:12,000 --> 01:10:18,000 Wenn ich diese Datei speichern, wie es jetzt ist, 901 01:10:18,000 --> 01:10:24,000 und ich laufe php concentrations.php 902 01:10:24,000 --> 01:10:26,000 schauen, was ich bekam. 903 01:10:26,000 --> 01:10:30,000 Ich habe diese open close select-Tag. 904 01:10:30,000 --> 01:10:36,000 >> Wenn ich dies zu tun und ich waren, um dieses Ergebnis in einer Datei speichern, 905 01:10:36,000 --> 01:10:45,000 sagen, concentrations.html-wait, es sieht aus wie der l hat auf die andere verschwunden side- 906 01:10:45,000 --> 01:11:02,000 Jetzt, wenn ich hier oben öffnen concentrations.html Sie sehen, ich habe eine gültige HTML-Datei. 907 01:11:02,000 --> 01:11:05,000 Ist das irgendwie komisch? 908 01:11:05,000 --> 01:11:09,000 Wir verwenden PHP in HTML zu erstellen, erstellen gültigen HTML. 909 01:11:09,000 --> 01:11:13,000 Die Art, wie wir es tun ist, dass wir nur mit der PHP-Druck 910 01:11:13,000 --> 01:11:16,000 die HTML, dass wir es drucken möchten. 911 01:11:16,000 --> 01:11:20,000 Das ist buchstäblich, wie PHP-Websites arbeiten. 912 01:11:20,000 --> 01:11:24,000 Wenn Sie eine Website besuchen, die Sie sendet so etwas wie 913 01:11:24,000 --> 01:11:30,000 etwas, etwas, was dot com slash index.php 914 01:11:30,000 --> 01:11:33,000 der Computer ist buchstäblich Aufruf index.php, 915 01:11:33,000 --> 01:11:38,000 läuft es durch den PHP-Interpreter, und was Junk kommt 916 01:11:38,000 --> 01:11:49,000 Es ist wieder das Senden an den Browser und sagen hey, Browser interpretieren dies als HTML. 917 01:11:49,000 --> 01:11:54,000 Das Schöne daran ist, dass es ein Schmerz sein, ständig zu schreiben Echo, Echo, Echo, Echo 918 01:11:54,000 --> 01:11:59,000 und legen Sie alles in Anführungszeichen wie diese, so dass, wenn Sie schreiben wollen 919 01:11:59,000 --> 01:12:04,000 die HTML, werde statisch sein selbst können Sie es wie folgt tun hat, 920 01:12:04,000 --> 01:12:16,000 legte es draußen, schließen Sie es 921 01:12:16,000 --> 01:12:21,000 und dann hier nur innerhalb der PHP-Tags, denen Sie wissen, setzen 922 01:12:21,000 --> 01:12:26,000 Sie programmatisch zu erzeugen, und in diesem Fall ist es diese Option Tags 923 01:12:26,000 --> 01:12:31,000 das sind ein Schmerz zu erzeugen. 924 01:12:31,000 --> 01:12:37,000 >> Zum Beispiel könnten wir erzeugen tausend Option Tags 925 01:12:37,000 --> 01:12:48,000 by doing so etwas wie dieses, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 und sagen echo Option value = $-hoppla, das kann ich nicht tun. 927 01:13:00,000 --> 01:13:03,000 Nun, lasst uns etwas ausprobieren und sehen was passiert. 928 01:13:03,000 --> 01:13:22,000 $ I und dann sagen, $ i 01:13:27,000 Anstatt zu tippen diese Option tag tausend verschiedenen Zeiten 930 01:13:27,000 --> 01:13:33,000 Ich bin mit PHP-Code, um es automatisch zu generieren, programmatisch. 931 01:13:33,000 --> 01:13:38,000 Kind of nifty. Yeah. 932 01:13:38,000 --> 01:13:41,000 Ich erinnere mich an diese wird entweder in der Vorlesung oder der Komplettlösung erwähnt, 933 01:13:41,000 --> 01:13:43,000 aber was ist der Unterschied zwischen den Anführungszeichen, 934 01:13:43,000 --> 01:13:45,000 die normalen und diese einzelnen Dinge? 935 01:13:45,000 --> 01:13:49,000 Das ist eigentlich etwas, was ich falsch hier getan habe, dass ich werde Ihnen zeigen. 936 01:13:49,000 --> 01:13:52,000 Die einfachen Anführungszeichen erlauben keine Sonderzeichen, 937 01:13:52,000 --> 01:13:57,000 so alles in einem einzigen String in Anführungszeichen buchstäblich interpretiert. 938 01:13:57,000 --> 01:14:02,000 Wenn ich einen \ n innerhalb von einfachen Anführungszeichen und ich spare dies zum Beispiel, 939 01:14:02,000 --> 01:14:07,000 und jetzt gehe ich hier unten und führen Sie es- 940 01:14:07,000 --> 01:14:12,000 oops, wo gehe ich hin? 941 01:14:12,000 --> 01:14:19,000 Oh, es ist, weil ich die $ vergaß. 942 01:14:19,000 --> 01:14:25,000 >> Nun, wenn ich öffnen, eigentlich, hier werden wir loswerden indem Sie es in eine Datei. 943 01:14:25,000 --> 01:14:27,000 Wir müssen nur lesen. 944 01:14:27,000 --> 01:14:34,000 Hier sehen Sie, dass ich habe diese wörtliche \ n in der Zeichenfolge, wie nicht eine tatsächliche neue Linie 945 01:14:34,000 --> 01:14:38,000 und ebenso, anstatt wirklich Interpolieren der Wert dieser Variablen 946 01:14:38,000 --> 01:14:42,000 es gab mir die $ i selbst, die Art von Schmerz ist. 947 01:14:42,000 --> 01:14:46,000 Der Weg, um dieses ist es, die doppelte Anführungszeichen verwenden, 948 01:14:46,000 --> 01:14:52,000 und dann, wenn Sie Anführungszeichen verwenden, wird es tatsächlich 949 01:14:52,000 --> 01:14:56,000 richtig interpolieren die Werte aller dieser Variablen in hier 950 01:14:56,000 --> 01:14:59,000 und erkennen auch diese \ n, um die neue Linie, die sie ist 951 01:14:59,000 --> 01:15:02,000 und nicht \ n. 952 01:15:02,000 --> 01:15:07,000 Mit den einzelnen diejenigen ist schön, wenn Sie 953 01:15:07,000 --> 01:15:10,000 Zeichen, die als Sonderzeichen interpretiert werden könnte, denn dann müssen Sie nicht auf 954 01:15:10,000 --> 01:15:15,000 entziehen sie ständig. 955 01:15:15,000 --> 01:15:18,000 Dinge können sich chaotisch, und oft, wie ich es tun, 956 01:15:18,000 --> 01:15:24,000 nur um die Dinge einfach, dass, wenn ich werde alles haben 957 01:15:24,000 --> 01:15:31,000 HTML gerne in meinem Code ich bearbeiten in einfache Anführungszeichen einschließen 958 01:15:31,000 --> 01:15:36,000 und dann diese Verkettungsoperator 959 01:15:36,000 --> 01:15:43,000 die Variablen in. verketten 960 01:15:43,000 --> 01:15:47,000 Dies ist ein weiterer Weg, es zu tun 961 01:15:47,000 --> 01:15:52,000 wo wir haben den Punkt, die gehen zu verbinden ist dies ist ein String 962 01:15:52,000 --> 01:15:56,000 damit mit diesem mit diesem, 963 01:15:56,000 --> 01:15:59,000 und jetzt habe ich nicht, um diese doppelte Anführungszeichen zu entkommen. 964 01:15:59,000 --> 01:16:02,000 Ich habe nicht diesen Kerl zu verwenden, um zu entkommen. 965 01:16:02,000 --> 01:16:08,000 Sie werden buchstäblich als doppelte Anführungszeichen und dann dieser Kerl gedruckt direkt hier. 966 01:16:08,000 --> 01:16:11,000 Dies ist eine weitere Möglichkeit der Vermischung alles zusammen. 967 01:16:11,000 --> 01:16:14,000 >> [Student] Auch wenn Sie gettype hallte es gab keine Anführungszeichen überhaupt. 968 01:16:14,000 --> 01:16:22,000 Richtig, also Echo ist eine Art von speziellen in dem Sinne, dass Sie nicht brauchen, Klammern. 969 01:16:22,000 --> 01:16:29,000 Sie brauchen nicht zu haben, die Anführungszeichen notwendig um Variablen, 970 01:16:29,000 --> 01:16:37,000 wie es ist gültig zu sagen echo $ i, und es wird dies als String zu interpretieren. 971 01:16:37,000 --> 01:16:44,000 Es wird um die Besetzung zu tun, so dass wir dies tun könnte, und das ist auch gültig, aber wir brauchen es nicht. 972 01:16:44,000 --> 01:16:48,000 Es ist optional. 973 01:16:48,000 --> 01:16:53,000 In dieser Woche gestellten Aufgabe Ausschau nach einer Menge von dieser Art des Materials 974 01:16:53,000 --> 01:16:58,000 wo du Mischen und Anpassen von HTML mit PHP 975 01:16:58,000 --> 01:17:08,000 einfach so, und jetzt, wenn wir zurück und blättern laufen wir diese 976 01:17:08,000 --> 01:17:13,000 können wir sehen, dass wir eine ganze Reihe von Option Werte 977 01:17:13,000 --> 01:17:15,000 , dass gerade erst gedruckt. 978 01:17:15,000 --> 01:17:20,000 Wir haben alle diese HTML, die wirklich schnell für uns wurde generiert. 979 01:17:20,000 --> 01:17:22,000 Ich werde es als eine Übung zu verlassen. 980 01:17:22,000 --> 01:17:24,000 Es ist sehr ähnlich zu der Datei lesen, dass wir früher. 981 01:17:24,000 --> 01:17:31,000 >> Es ist ein concentrations.txt Datei, die Sie nach unten ziehen aus dem CDN, 982 01:17:31,000 --> 01:17:34,000 und öffnen Sie es mit dem gleichen foreach Trick, dass wir früher getan hat, 983 01:17:34,000 --> 01:17:39,000 und foreach müssen Sie nur eine Option und Stecker in echo 984 01:17:39,000 --> 01:17:44,000 die entsprechenden Werte, die entsprechenden Tasten und Indizes 985 01:17:44,000 --> 01:17:49,000 und dann bekommst du ein Dropdown, dass buchstäblich schafft 986 01:17:49,000 --> 01:17:54,000 programmatisch für Sie alle von den verschiedenen Konzentrationen in Harvard. 987 01:17:54,000 --> 01:17:57,000 Eine praktische Sache zu haben. 988 01:17:57,000 --> 01:18:02,000 Es gibt eine Menge von Konfigurations-Zeug für diese Aufgabe. 989 01:18:02,000 --> 01:18:07,000 Wenn Sie noch nicht getan haben es schon die nächste halbe Stunde, Stunde, 990 01:18:07,000 --> 01:18:10,000 einige Zeit heute Abend auf jeden Fall sicher, 991 01:18:10,000 --> 01:18:14,000 Spaziergang durch das Problem Satz spec, 992 01:18:14,000 --> 01:18:20,000 sehen, was los ist mit der Einrichtung der vhosts, der lokale Host, all das Zeug. 993 01:18:20,000 --> 01:18:24,000 Eine Sache, die darauf hinweisen, gerade jetzt ist, dass 994 01:18:24,000 --> 01:18:30,000 in den meisten Problemstellungen haben wir in Ihrem Dropbox-Ordner gegangen 995 01:18:30,000 --> 01:18:34,000 und dann den Download der gestellten Aufgabe ZIP-Datei und entpacken es. 996 01:18:34,000 --> 01:18:36,000 Für dieses Problem, die Sie nicht wollen. 997 01:18:36,000 --> 01:18:40,000 Sie wollen in diesem vhosts Verzeichnis. 998 01:18:40,000 --> 01:18:45,000 Sie wollen in die vhosts gehen und gehen in die lokale Host-Verzeichnis darin, 999 01:18:45,000 --> 01:18:50,000 und das ist, wo Sie wollen werden, ziehen Sie die zip-Datei, 1000 01:18:50,000 --> 01:18:55,000 entpacken Sie es und machen Sie sich bereit zu gehen. 1001 01:18:55,000 --> 01:18:57,000 Sie müssen die Schritte genau verfolgen. 1002 01:18:57,000 --> 01:19:02,000 >> Wenn Sie Fragen haben, senden Sie E-Mail, per Post auf Diskutieren, komm zu Bürozeiten. 1003 01:19:02,000 --> 01:19:08,000 Danke Jungs. Nächste Woche werden wir eine Review-Sitzung für das Quiz haben. 1004 01:19:08,000 --> 01:19:12,000 Genießen Sie Ihren letzten Problems Set. Ich hoffe, es geht alles sehr gut. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]