1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: so haben wir eine Menge Arbeit in C durchgeführt, 3 00:00:07,370 --> 00:00:09,536 und C ist eine wirklich coole Sprache, weil es Ihnen 4 00:00:09,536 --> 00:00:12,840 die Fähigkeit, wirklich zu tauchen niedrigen Niveau in Ihre Programme. 5 00:00:12,840 --> 00:00:16,810 Wir bekommen, die Dinge so zu tun wirklich Minute als Manipulation 6 00:00:16,810 --> 00:00:18,800 einzelnen Bytes des Speichers. 7 00:00:18,800 --> 00:00:21,420 Recall, die wirklich Zeiger ermöglichen es uns, dass die Flexibilität. 8 00:00:21,420 --> 00:00:25,260 >> Aber brauchen wir immer zu haben, daß feinkörnige Detaillierungsgrad 9 00:00:25,260 --> 00:00:26,820 in unseren Programmen? 10 00:00:26,820 --> 00:00:28,210 Wahrscheinlich nicht, oder? 11 00:00:28,210 --> 00:00:30,376 Und wenn wir gehen zu müssen ein Kompromiss zwischen Sein 12 00:00:30,376 --> 00:00:32,911 in der Lage, wirklich, wirklich Minute Dinge und wirklich, wirklich 13 00:00:32,911 --> 00:00:35,910 große Dinge, die wir nicht zu denken, etwa, haben wir nicht zu implementieren 14 00:00:35,910 --> 00:00:40,290 diese wirklich große Ideen, wenn sie sind bereits für uns gebaut, 15 00:00:40,290 --> 00:00:43,980 in der Regel für den Bau von großen Programme oder Großprojekte, 16 00:00:43,980 --> 00:00:49,130 wir sind wahrscheinlich zu irren auf der Seite der mit mehr Sprach Sachen in gebaut 17 00:00:49,130 --> 00:00:51,300 für uns, anstatt die Low-Level-Zeug. 18 00:00:51,300 --> 00:00:53,970 Und das ist, wo PHP kommt wirklich in. 19 00:00:53,970 --> 00:00:58,200 >> Jetzt, einer der Gründe, dass wir in PHP CS50 lehren 20 00:00:58,200 --> 00:01:01,020 ist, dass es stark von inspiriert C. Und in der Tat, meiner Meinung nach, 21 00:01:01,020 --> 00:01:05,140 gibt es eigentlich zwei Vorläufer Sprachen, 22 00:01:05,140 --> 00:01:08,200 sind heutzutage sehr verbreitet. 23 00:01:08,200 --> 00:01:10,110 C und Lisp. 24 00:01:10,110 --> 00:01:13,280 Und sie sind Vorläufer Sprachen weil jeder anderen modernen Programmiersprachen 25 00:01:13,280 --> 00:01:17,380 Sprache, die entwickelt wurde Seitdem ist inspiriert 26 00:01:17,380 --> 00:01:20,330 durch die eine oder andere syntaktisch. 27 00:01:20,330 --> 00:01:26,160 PHP ist sehr ähnlich syntaktisch bis C, während Sprachen wie Scheme, 28 00:01:26,160 --> 00:01:27,900 zum Beispiel, die können Sie gehört haben, 29 00:01:27,900 --> 00:01:32,070 ist stark von einer Sprache inspiriert genannt LISP, die eine ältere Sprache ist. 30 00:01:32,070 --> 00:01:34,220 >> Also der Grund, warum wir lehren PHP in CS50 ist, dass, 31 00:01:34,220 --> 00:01:37,730 durch das Wissen, C, wie grundlegend wie Sie an dieser Stelle tun, 32 00:01:37,730 --> 00:01:41,280 Aufnehmen von PHP, die Sie das verleiht Fähigkeit, viel Höherem Niveau zu tun 33 00:01:41,280 --> 00:01:44,710 als C tut, ist nicht so viel von einem Hindernis, 34 00:01:44,710 --> 00:01:48,230 weil Sie bereits über die Grundidee der Syntax. 35 00:01:48,230 --> 00:01:50,590 C ist schon seit fast gewesen 45 Jahre an dieser Stelle. 36 00:01:50,590 --> 00:01:52,780 PHP ist schon seit über 20 Jahren. 37 00:01:52,780 --> 00:01:57,080 Und dadurch, dass 25 Jahre dazwischen, Programmierer 38 00:01:57,080 --> 00:02:01,540 festgestellt, dass sie es sehr viel lieber höhere Fähigkeiten, 39 00:02:01,540 --> 00:02:04,970 und die Fehler und Kämpfe von den 20 Jahren dazwischen 40 00:02:04,970 --> 00:02:08,210 führte zu PHP und andere moderne Sprachen. 41 00:02:08,210 --> 00:02:11,039 >> PHP ist eine großartige Wahl der Sprache für Software- 42 00:02:11,039 --> 00:02:14,042 dass allow-- für Software dass--, wo Sie 43 00:02:14,042 --> 00:02:16,250 benötigen, um Dinge zu tun, dass in C sind wirklich kompliziert. 44 00:02:16,250 --> 00:02:18,480 So zum Beispiel, arbeitet mit Zeichenfolgen in C 45 00:02:18,480 --> 00:02:21,709 ist sehr kompliziert, weil wie wir wissen, Zeichenfolgen in C 46 00:02:21,709 --> 00:02:23,250 sind wirklich nur Arrays von Zeichen. 47 00:02:23,250 --> 00:02:25,230 Es ist nicht über einen eingebauten Datentyp. 48 00:02:25,230 --> 00:02:28,220 Oder vielleicht noch grundsätzlicher, etwas, das wir noch nicht einmal in C abdecken, 49 00:02:28,220 --> 00:02:30,360 was ist, wenn Sie tun müssen, einige Computer-Vernetzung? 50 00:02:30,360 --> 00:02:30,860 Gut? 51 00:02:30,860 --> 00:02:34,920 >> C hat die Fähigkeit, es zu tun, aber es ist so Arkane und so schwer zu tatsächlich tun. 52 00:02:34,920 --> 00:02:37,580 Wäre es nicht schön, wenn das sein, Sprache hatte einen eingebauten, einfachen Weg 53 00:02:37,580 --> 00:02:38,910 um Vernetzung zu implementieren? 54 00:02:38,910 --> 00:02:43,420 Und PHP ist eine Sprache, das macht, oder erleichtert, dass ein bisschen mehr. 55 00:02:43,420 --> 00:02:47,740 Wie ich schon sagte, ist PHP sehr stark inspiriert C. Die Syntax ist sehr ähnlich. 56 00:02:47,740 --> 00:02:51,760 Und so sollte es hoffentlich machen die Übergang von einem zum anderen 57 00:02:51,760 --> 00:02:54,710 ein wenig weicher als einige andere Sprachen sein könnte. 58 00:02:54,710 --> 00:02:58,800 >> Zu schreiben, PHP zu starten, öffnen gerade eine Datei mit der Dateierweiterung .php. 59 00:02:58,800 --> 00:03:00,670 Technisch ist das nicht tatsächlich erforderlich, 60 00:03:00,670 --> 00:03:04,495 aber wenn Sie Dinge wie Syntax möchten Hervorhebung im IDE, so dass diese Art 61 00:03:04,495 --> 00:03:07,620 Namen oder Variablennamen, Funktionen, Sie wissen, die Schlüsselwörter der Sprache 62 00:03:07,620 --> 00:03:10,090 werden in einem hervorgehobenen spezifische Farbe, die Sie in der Regel 63 00:03:10,090 --> 00:03:14,020 möchten Sie Ihre Dateien mit dem Namen eine bestimmte Dateierweiterung. 64 00:03:14,020 --> 00:03:18,430 So haben wir unsere Datei mit einer .php benannt Erweiterung, dann aber auch mit PHP, 65 00:03:18,430 --> 00:03:23,310 alle PHP-Code zu schreiben, dass wir in Datei muss in diesen PHP eingeschlossen werden 66 00:03:23,310 --> 00:03:25,190 Trennzeichen, die wir sehen, hier auf dem Bildschirm. 67 00:03:25,190 --> 00:03:27,910 Befestigungswinkel? Php zu starten. 68 00:03:27,910 --> 00:03:30,860 Dann schreiben wir alle unsere PHP Code, die wir wollen dazwischen. 69 00:03:30,860 --> 00:03:32,260 Und dann ? 70 00:03:32,260 --> 00:03:34,710 spitze Klammer zu schließen. 71 00:03:34,710 --> 00:03:37,170 >> Wenn wir dies nicht tun, dann was wird passieren? 72 00:03:37,170 --> 00:03:38,170 Es wird nicht zum Absturz zu bringen. 73 00:03:38,170 --> 00:03:39,410 Es ist nicht zu gehen wirklich ruinieren unser Programm. 74 00:03:39,410 --> 00:03:41,440 Aber es ist nicht zu haben, die Wirkung, die wir wollen. 75 00:03:41,440 --> 00:03:44,540 Was wird passieren, wirklich, dass, wenn wir versuchen, und führen Sie dieses Programm, 76 00:03:44,540 --> 00:03:50,330 alles, was nicht zwischen diesen Trennzeichen wird sich heraus wörtlich gedruckt werden. 77 00:03:50,330 --> 00:03:52,210 Es ist nicht zu gehen tatsächlich führen Sie den Code, 78 00:03:52,210 --> 00:03:56,010 es wird nur drucken Sie es aus wörtlich. 79 00:03:56,010 --> 00:03:57,320 >> Nun, warum ist das so? 80 00:03:57,320 --> 00:04:00,416 So C ist, was bekannt als eine kompilierte Sprache. 81 00:04:00,416 --> 00:04:03,040 Du bist wahrscheinlich kennen der Schritt der Herstellung Ihrer Programme, 82 00:04:03,040 --> 00:04:07,820 Drehen der .c-Dateien und H-Dateien in einer einzigen ausführbaren mit Make, 83 00:04:07,820 --> 00:04:11,130 insbesondere unter Verwendung von Clang als unsere Compiler. 84 00:04:11,130 --> 00:04:13,030 PHP, obwohl, nicht haben diese gleichwertig. 85 00:04:13,030 --> 00:04:15,600 PHP ist, was ein genannt interpretierte Sprache. 86 00:04:15,600 --> 00:04:16,760 Und was bedeutet das? 87 00:04:16,760 --> 00:04:20,680 >> Na ja, bedeutet dies, wir haben nicht zu konvertieren unseren Quellcode in Nullen und Einsen 88 00:04:20,680 --> 00:04:21,470 vorher. 89 00:04:21,470 --> 00:04:23,900 Vielmehr gibt es ein Programm, das heißt auch 90 00:04:23,900 --> 00:04:29,771 PHP, die PHP und versteht, kann Art machen es im laufenden Betrieb. 91 00:04:29,771 --> 00:04:32,520 Das ist nicht wirklich genau, präzise, aber es ist eine ziemlich gute Analogie 92 00:04:32,520 --> 00:04:33,760 von dem, was passiert ist. 93 00:04:33,760 --> 00:04:37,230 Es ist jene Interpretation Nullen und Einsen im laufenden Betrieb. 94 00:04:37,230 --> 00:04:40,160 Und so, wenn sie nicht wissen, wie etwas zu verarbeiten, 95 00:04:40,160 --> 00:04:42,800 wenn er nicht weiß, wie man Prozess PHP, werden Sie wahrscheinlich 96 00:04:42,800 --> 00:04:44,680 wollte, dass Text in es gesetzt, nicht wahr? 97 00:04:44,680 --> 00:04:48,960 >> Sie wollten wahrscheinlich den Code setzen da, auch wenn es nicht zwischen PHP-- 98 00:04:48,960 --> 00:04:50,035 die PHP-Trennzeichen. 99 00:04:50,035 --> 00:04:51,910 Aber-- so wird es nicht um es für Sie zu löschen, 100 00:04:51,910 --> 00:04:53,576 ist es nur geht, um im Grunde verwerfen. 101 00:04:53,576 --> 00:04:55,550 Also, es wird gedruckt it out auf den Bildschirm. 102 00:04:55,550 --> 00:04:57,150 >> Dies scheint, wie es eine schlechte Sache, aber eigentlich ist es 103 00:04:57,150 --> 00:04:58,220 gehen, um eine wirklich sein gute Sache, wie wir 104 00:04:58,220 --> 00:05:00,390 zu sehen, wenn wir sprechen PHP-Web-Entwicklung, 105 00:05:00,390 --> 00:05:04,010 weil es bedeutet, dass wir setzen PHP und HTML. 106 00:05:04,010 --> 00:05:06,640 Wir können sie zusammen, um zu verwenden erstellen eine dynamischere Web-Seite. 107 00:05:06,640 --> 00:05:10,650 Aber mehr dazu in der Video-on-PHP-Web-Entwicklung. 108 00:05:10,650 --> 00:05:12,021 >> Also, was ist die Syntax von PHP? 109 00:05:12,021 --> 00:05:13,520 Das ist, was das Video geht. 110 00:05:13,520 --> 00:05:14,850 Lass uns darüber reden. 111 00:05:14,850 --> 00:05:16,490 >> So zu beginnen, Variablen. 112 00:05:16,490 --> 00:05:18,030 PHP-Variablen existieren. 113 00:05:18,030 --> 00:05:20,067 Es gibt nur zwei große Differenzen aus C. 114 00:05:20,067 --> 00:05:21,900 Die erste ist, dass es keine Typangabe. 115 00:05:21,900 --> 00:05:24,245 Wir haben nicht zu sagen, int, char, float, all das Zeug. 116 00:05:24,245 --> 00:05:25,620 Wir müssen nicht mehr tun. 117 00:05:25,620 --> 00:05:26,810 PHP ist eine moderne Sprache. 118 00:05:26,810 --> 00:05:28,910 Es kann herausfinden, was du bist versuche zu tun oder einen besten 119 00:05:28,910 --> 00:05:30,451 erraten, was Sie zu tun versuchen. 120 00:05:30,451 --> 00:05:31,700 Also das ist sehr schön. 121 00:05:31,700 --> 00:05:35,330 >> Die andere Sache ist, dass alle variablen Namen müssen mit einem Dollar-Zeichen beginnen. 122 00:05:35,330 --> 00:05:36,940 Das ist nur etwas, was sich daran zu gewöhnen. 123 00:05:36,940 --> 00:05:39,496 Es ist ein wenig seltsam, denn es ist so, dass PHP kann verstehen, 124 00:05:39,496 --> 00:05:40,870 Was ist eine Variable ist und was nicht. 125 00:05:40,870 --> 00:05:43,340 Also jeden Variablennamen beginnt mit einem Dollar-Zeichen. 126 00:05:43,340 --> 00:05:46,884 So in C könnten wir etwas sagen wie diese, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Wir müssen nicht mehr so ​​in PHP zu tun. 128 00:05:48,550 --> 00:05:52,540 Wir können nur sagen, $ x = 54. 129 00:05:52,540 --> 00:05:55,920 Und wir könnten sagen, dass zum Beispiel in C, wenn wir pound-gehörten die CS50 .h 130 00:05:55,920 --> 00:06:00,314 Header-Datei, könnten wir sagen, String Begriff = "Dies ist CS50." 131 00:06:00,314 --> 00:06:01,980 Wir haben nicht zu, dass in PHP zu tun, wenn. 132 00:06:01,980 --> 00:06:04,865 Wir können nur sagen, $ Begriff = "Dies ist CS50." 133 00:06:04,865 --> 00:06:08,760 Und in der Tat ist nun Zeichenfolge einen eingebauten Datentyp in PHP, 134 00:06:08,760 --> 00:06:10,950 oder vielmehr versteht PHP was ein String ist. 135 00:06:10,950 --> 00:06:15,612 Es ist getrennt von einem Array von Zeichen, wie es in C ist 136 00:06:15,612 --> 00:06:17,570 Alle Ihre Lieblings- Bedingungsanweisungen von C 137 00:06:17,570 --> 00:06:19,520 noch verfügbar sind für Sie zu nutzen. 138 00:06:19,520 --> 00:06:21,140 So dass keine große Übergang gibt. 139 00:06:21,140 --> 00:06:23,400 Wir können sagen-- wir haben können if-Anweisungen wie diese. 140 00:06:23,400 --> 00:06:28,210 wenn $ y 43 oder $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Also das ist ziemlich einfach. 142 00:06:29,690 --> 00:06:31,980 Wir können, wenn und anderes. 143 00:06:31,980 --> 00:06:34,210 Wir können, wenn und else if. 144 00:06:34,210 --> 00:06:36,430 >> Und beachten Sie, etwas, sehr schön hier, und dieses 145 00:06:36,430 --> 00:06:39,620 ist eine Art einer von denen, Vorteile von PHP gegenüber C, Ankündigung 146 00:06:39,620 --> 00:06:41,510 welche Funktion wir hier nicht gerade verwenden? 147 00:06:41,510 --> 00:06:47,737 Wir verwenden ==, um eine Vergleichs Variable $ name, in einen String. 148 00:06:47,737 --> 00:06:49,070 Wir konnten nicht tun, dass in C, oder? 149 00:06:49,070 --> 00:06:53,200 Wir mussten eine Funktion namens verwenden StrComp oder StrEndComp oder jede 150 00:06:53,200 --> 00:06:54,840 der mit ihm verbundenen Cousins. 151 00:06:54,840 --> 00:06:56,980 >> Und so sehen wir bereits diese Vorteile. 152 00:06:56,980 --> 00:07:00,930 Wir haben nicht, etwas zu tun so dumm oder vielleicht unintuitive 153 00:07:00,930 --> 00:07:03,540 so rufen Sie eine Funktion namens StrComp wenn ich will nur, um zu testen, 154 00:07:03,540 --> 00:07:05,237 ob ein Wert einem String. 155 00:07:05,237 --> 00:07:07,820 Ich konnte es einfach verwenden, gleich equals, wie konnte ich nichts anderes tun. 156 00:07:07,820 --> 00:07:09,560 Es gibt also ein Vorteil. 157 00:07:09,560 --> 00:07:13,350 >> Manchmal, übrigens, könnten Sie siehe else if als ein Wort, elseif. 158 00:07:13,350 --> 00:07:14,910 Und das ist OK in PHP als gut. 159 00:07:14,910 --> 00:07:17,020 Also manchmal könnte man sehen, dass. 160 00:07:17,020 --> 00:07:17,790 Es ist kein Tippfehler. 161 00:07:17,790 --> 00:07:21,830 PHP tatsächlich versteht, elseif. 162 00:07:21,830 --> 00:07:23,980 Ich weiß nicht, warum sie beschlossen, zu implementieren, dass, 163 00:07:23,980 --> 00:07:28,220 aber wie wir schon viele Male gesehen in unserer Videos so weit, 164 00:07:28,220 --> 00:07:30,460 wir Programmierern liebe es, wenn wir können die Dinge schnell zu tun, 165 00:07:30,460 --> 00:07:33,660 so am Anfang des Raumes zu befreien ist offensichtlich ein großer Vorteil. 166 00:07:33,660 --> 00:07:34,800 >> Also das ist, if und elseif. 167 00:07:34,800 --> 00:07:37,540 Wir haben auch den ternären Operator, Rückruffragezeichen, Doppelpunkt, 168 00:07:37,540 --> 00:07:43,262 für wirklich Kurzform, wenn sonst oder eine bedingte Verzweigung. 169 00:07:43,262 --> 00:07:45,470 Und es scheint, in diesem, was wir versuchen, hier zu tun 170 00:07:45,470 --> 00:07:49,720 wird die Variable zuweisen $ Brief entweder wahr oder falsch, 171 00:07:49,720 --> 00:07:54,110 je nachdem, ob $ var ein alphabetisches Zeichen. 172 00:07:54,110 --> 00:07:57,320 Also das ist ziemlich ähnlich wie isalpha dass wir mit der von C kennen 173 00:07:57,320 --> 00:07:59,010 Dies ist eine Art der Gegenwert in PHP. 174 00:07:59,010 --> 00:08:01,550 Die Funktion ist offensichtlich genannt ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 aber das ist, wie wir es in PHP. 176 00:08:03,450 --> 00:08:08,560 Also all das sein wird, ist, wenn $ var ist ein Buchstabe, ist $ Brief wahr. 177 00:08:08,560 --> 00:08:13,820 Wenn $ var ist kein Brief, $ Brief ist falsch. 178 00:08:13,820 --> 00:08:15,820 >> Wir haben auch Switch-Anweisungen immer noch. 179 00:08:15,820 --> 00:08:17,870 Wir erinnern daran, diejenigen, die aus C als gut. 180 00:08:17,870 --> 00:08:22,480 An der Spitze gibt, das ist, wie wir es tun so etwas wie get int oder erhalten String. 181 00:08:22,480 --> 00:08:23,845 So PHP hat, dass in gebaut. 182 00:08:23,845 --> 00:08:25,470 Wir brauchen nicht den CS50-Bibliothek nicht mehr. 183 00:08:25,470 --> 00:08:27,237 Wir können einfach die Funktion readline. 184 00:08:27,237 --> 00:08:29,820 Wie das geht zu tun ist, Druck aus der Meldung "Ihr Zustand ist, 185 00:08:29,820 --> 00:08:33,820 bitte ", und dann blinkt Aufforderung Warten auf den Benutzer zur Eingabe von 186 00:08:33,820 --> 00:08:34,739 einige Informationen. 187 00:08:34,739 --> 00:08:36,530 Nun beachtet, was sonst wir mit Schalter tun können. 188 00:08:36,530 --> 00:08:39,105 Wenn Sie es verwendet haben, bevor, Sie können diesen Schalter erinnern 189 00:08:39,105 --> 00:08:44,960 ist so ziemlich auf ganze Zahlen beschränkt und Zeichen, aber jetzt können wir Zeichenfolgen verwenden. 190 00:08:44,960 --> 00:08:50,190 Und in der Tat der switch-Anweisung in PHP ist ein bisschen flexibler 191 00:08:50,190 --> 00:08:54,880 als sein Cousin aus C. 192 00:08:54,880 --> 00:08:55,380 Schleifen. 193 00:08:55,380 --> 00:08:58,130 Genau wie conditionals alle Ihre alten Favoriten sind immer noch da. 194 00:08:58,130 --> 00:09:00,740 Wir haben while-Schleifen, die zählen 1-100 in diesem Fall. 195 00:09:00,740 --> 00:09:03,940 Wir haben beim Schleifen zu tun daß zählen von 1 bis 100, 196 00:09:03,940 --> 00:09:06,200 und wir für Schleifen haben daß zählen von 1 bis 100. 197 00:09:06,200 --> 00:09:07,220 Also keine großen Sprung gibt. 198 00:09:07,220 --> 00:09:09,360 Die Syntax ist ziemlich sehr genau das gleiche, 199 00:09:09,360 --> 00:09:11,760 mit der Ausnahme, jetzt sind wir mit Dollar-Zeichen Variable statt 200 00:09:11,760 --> 00:09:17,260 erklären Integer-Variablen oder etwas wie das für unsere Zähler. 201 00:09:17,260 --> 00:09:20,090 >> Hier ist, wo die Dinge ein viel besser als C, though. 202 00:09:20,090 --> 00:09:21,020 Arrays. 203 00:09:21,020 --> 00:09:23,020 So erinnern, als wir reden über C, um 204 00:09:23,020 --> 00:09:25,560 für uns zu wachsen und schrumpfen Sätze von Informationen, 205 00:09:25,560 --> 00:09:28,310 wir brauchten, um von Standard Sortieren auf diese Idee einer verknüpften Liste, 206 00:09:28,310 --> 00:09:30,780 weil C-Arrays wurden eine feste Größe. 207 00:09:30,780 --> 00:09:31,800 Wir konnten nicht schrumpfen. 208 00:09:31,800 --> 00:09:32,930 Wir konnten nicht wachsen sie. 209 00:09:32,930 --> 00:09:36,074 Wir hatten in den Speicher umzuschichten und alles tun, diesen Wahnsinn 210 00:09:36,074 --> 00:09:38,490 oder verwenden verkettete Listen, die nehmen ziemlich viel mehr Platz. 211 00:09:38,490 --> 00:09:41,590 Aber in PHP, sind Arrays in der Größe nicht mehr fixiert. 212 00:09:41,590 --> 00:09:43,240 Sie können wachsen und schrumpfen kann. 213 00:09:43,240 --> 00:09:46,660 Also noch einmal, diese 20 Jahre, die bestanden zwischen dem ersten Release von C 214 00:09:46,660 --> 00:09:49,440 und das erste Release von PHP, wir beschlossen, dass, wissen Sie, 215 00:09:49,440 --> 00:09:51,670 es wäre wirklich toll, wenn wir dies tun. 216 00:09:51,670 --> 00:09:54,100 Und so setzten wir dies. 217 00:09:54,100 --> 00:09:58,040 >> So PHP Arrays sind nicht festgelegt Größe, und weil PHP nicht wirklich 218 00:09:58,040 --> 00:10:03,090 haben Programmierer vorn gerichtete Vorstellungen von Arten, 219 00:10:03,090 --> 00:10:05,110 können wir Datentypen mischen in unserem Arrays, auch. 220 00:10:05,110 --> 00:10:08,100 So wissen wir nicht einmal, um alle verwenden Zahlen oder alle schwimmenden Punkten, 221 00:10:08,100 --> 00:10:12,826 können wir eine Mischung aus alle verschiedene Arten in einem einzigen Array. 222 00:10:12,826 --> 00:10:14,700 Deklarieren ein Array ziemlich einfach. 223 00:10:14,700 --> 00:10:16,116 Es ist genau wie jede andere Variable. 224 00:10:16,116 --> 00:10:20,020 $ nums = array (1, 2, 3, 4), wobei Array eine Funktion 225 00:10:20,020 --> 00:10:22,760 das ist in PHP gebaut, wird ein Array für Sie erstellen. 226 00:10:22,760 --> 00:10:28,315 Dies schafft eine Anordnung von vier Werten, Zahlen in diesem Fall mit dem Namen $ nums. 227 00:10:28,315 --> 00:10:29,940 Und es gibt mehr als einen Weg, es zu tun. 228 00:10:29,940 --> 00:10:32,420 Und wir sind zu gehen sehen dies viel in PHP. 229 00:10:32,420 --> 00:10:36,380 PHP wird von vielen unterschiedlichen entwickelt Menschen und wächst und wächst und wächst. 230 00:10:36,380 --> 00:10:40,050 Es ist in der Regel nicht nur zwei oder drei Möglichkeiten, um etwas in PHP zu tun, 231 00:10:40,050 --> 00:10:42,170 es gibt in der Regel wie 10 oder 20. 232 00:10:42,170 --> 00:10:45,300 Hier ist nur eine weitere gemeinsame Weg, um ein Array deklarieren. 233 00:10:45,300 --> 00:10:48,310 $ nums = eckige Klammer 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 So ist diese Art der ähnlich wie C-Winkel br-- geschweifte Klammer-Notation, statt. $ - 235 00:10:53,170 --> 00:10:58,525 oder es würde int nums quadratisch sein Klammern gleich geschweifte Klammer 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 In PHP ist es $ nums = square Halterungen 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Aber diesen beiden Beispielen mich hier zu geben eine Anordnung von in diesem Fall vier Zahlen. 238 00:11:08,920 --> 00:11:10,920 >> Was, wenn ich etwas auf jetzt heften? 239 00:11:10,920 --> 00:11:14,760 Nun, ich kann nur sagen, $ nums 4, die wieder, wir sind immer noch das Zählen von 0 hier 240 00:11:14,760 --> 00:11:17,800 in PHP, würden die fünfte sein Element des Arrays. 241 00:11:17,800 --> 00:11:18,990 Ich kann nur sagen, dass. 242 00:11:18,990 --> 00:11:22,860 Ich werde nicht um eine seg leiden Schuld, weil mein Array ist nur 243 00:11:22,860 --> 00:11:24,337 gehen zu wachsen, dass unterzubringen. 244 00:11:24,337 --> 00:11:25,420 Das ist ziemlich nett, nicht wahr? 245 00:11:25,420 --> 00:11:28,400 Und in der Tat, ich weiß nicht einmal, um anzugeben, wo ich will sie setzen. 246 00:11:28,400 --> 00:11:31,220 Ich kann nur sagen, das und nur tack es richtig bis zum Ende, 247 00:11:31,220 --> 00:11:34,099 oder ich konnte auch nur sagen $ nums 20 oder 1000. 248 00:11:34,099 --> 00:11:35,140 Es spielt eigentlich keine Rolle. 249 00:11:35,140 --> 00:11:38,330 Es ist immer noch gerade dabei, tack es richtig bis zum Ende. 250 00:11:38,330 --> 00:11:41,490 >> So kann ich wachsen und as-- wir sind nicht dabei, es hier zu decken, 251 00:11:41,490 --> 00:11:45,360 aber ich kann spleißen oder Streifen Elemente aus dem Array sowie, 252 00:11:45,360 --> 00:11:50,064 und das Array wird schrumpfen, um unterzubringen dass jetzt fehlenden oder leeren Raum. 253 00:11:50,064 --> 00:11:52,230 Es gibt einen anderen Weg, um tack etwas auf eine Anordnung, 254 00:11:52,230 --> 00:11:54,330 der eine Funktion aufgerufen array_push. 255 00:11:54,330 --> 00:11:57,860 Also noch einmal, nur dieses eine Idee, Lage, Dinge zu viele verschiedene Möglichkeiten zu tun. 256 00:11:57,860 --> 00:12:01,950 Also haben wir drei verschiedene Arten jetzt gesehen, ein weiteres Element auf eine Anordnung anzuheften. 257 00:12:01,950 --> 00:12:06,900 So dies fügt ein weiteres Element bis zum Ende des $ nums Array. 258 00:12:06,900 --> 00:12:08,340 Und wir können unsere Datentypen mischen. 259 00:12:08,340 --> 00:12:13,110 So konnte ich eine Reihe von nicht 1, 2, 3, 4, aber 1, wahr, 3, 4, 260 00:12:13,110 --> 00:12:16,420 wo die wahre ist ein Boolean, und dann wenn ich auf ein anderes Element tack 261 00:12:16,420 --> 00:12:20,860 für dieses Array, vielleicht ein String, die Zeichenfolge "fünf" Ich könnte das tun. 262 00:12:20,860 --> 00:12:26,110 Und nun meine Array würde 1 sein, wahr, 3, 4, fünf. 263 00:12:26,110 --> 00:12:28,640 Das Wort fünf, nicht die ganze Zahl 5. 264 00:12:28,640 --> 00:12:31,270 So viel Flexibilität gibt. 265 00:12:31,270 --> 00:12:33,290 >> Die Flexibilität wird noch besser, wenn, 266 00:12:33,290 --> 00:12:37,530 weil PHP hat die Unterstützung für etwas, rief ein assoziatives Array. 267 00:12:37,530 --> 00:12:40,660 Und wir irgendwie vage gesprochen zu assoziativen Arrays in C 268 00:12:40,660 --> 00:12:44,740 im Zusammenhang mit der Hash-Tabellen, weil was assoziativen Arrays sind wirklich alle 269 00:12:44,740 --> 00:12:48,950 zu machen Schlüssel Wert-Paar-Mappings. 270 00:12:48,950 --> 00:12:53,410 Und in diesem Fall ist der, wenn keys-- wir sind mit Arrays von C vertraut sind, 271 00:12:53,410 --> 00:12:55,440 die Tasten sind Indexnummern. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 Und die Werte sind, was wir finden, dass Array 0, Feld 1, Feld 2, und so weiter. 274 00:13:03,070 --> 00:13:06,310 So sind die Tasten Indizes, und die Werte sind 275 00:13:06,310 --> 00:13:10,060 was ist in diesem Array Lage, durch diesen Index angegeben. 276 00:13:10,060 --> 00:13:15,130 >> Aber in PHP, haben wir nicht, dies zu tun Begriff der Array 0, Feld 1, Feld 2 277 00:13:15,130 --> 00:13:15,830 nicht mehr. 278 00:13:15,830 --> 00:13:21,025 Wir können jetzt mit tatsächlichen Worte Schlüssel, Werte abzubilden. 279 00:13:21,025 --> 00:13:22,650 Und so konnte ich so etwas wie dies zu sagen. 280 00:13:22,650 --> 00:13:26,710 Ich könnte ein Array mit dem Knopf eckigen Klammer-Syntax wie folgt. 281 00:13:26,710 --> 00:13:30,685 $ Pizzen = eckige Klammer "Käse" und dann 282 00:13:30,685 --> 00:13:37,210 diese Art der Doppelpfeil-Notation, 8.99 "pepperoni" arrow 10.99-- 9.99, 283 00:13:37,210 --> 00:13:37,880 und so weiter. 284 00:13:37,880 --> 00:13:39,060 Und was ist denn hier los? 285 00:13:39,060 --> 00:13:41,040 Was bin ich eigentlich? 286 00:13:41,040 --> 00:13:43,990 Ich erstelle Schlüssel-Wert-Paar-Mappings. 287 00:13:43,990 --> 00:13:49,060 Also anstatt zu sagen, zum Beispiel, Pizzen 0, 1 Stück, Pizzas 2, 288 00:13:49,060 --> 00:13:52,350 Ich kann jetzt sagen, Pizzas Käse, Pizza Peperoni, 289 00:13:52,350 --> 00:13:55,120 und beziehen sich auf die Werte zugeordnet. 290 00:13:55,120 --> 00:13:56,970 >> So, hier sind unsere Schlüssel in grün. 291 00:13:56,970 --> 00:13:59,870 Käse, Peperoni, Gemüse, Buffalo Chicken. 292 00:13:59,870 --> 00:14:04,200 Hier ist der Pfeil, der macht dieser Schlüssel-Wert-Paar-Mapping. 293 00:14:04,200 --> 00:14:07,420 Und dann sind hier die Werte in diesem Array Lage. 294 00:14:07,420 --> 00:14:10,330 Also ist es wie wenn man sagt Array 0 gleich 8,99. 295 00:14:10,330 --> 00:14:11,720 Der Schlüssel ist 0. 296 00:14:11,720 --> 00:14:13,600 Der Wert ist 8.99. 297 00:14:13,600 --> 00:14:19,370 Ich kann jetzt sagen, Array-Käse, oder in diesem Bei Pizza-Käse, Käse ist der Schlüssel, 298 00:14:19,370 --> 00:14:23,340 und was finde ich zumin Pizza-Käse ist 8.99. 299 00:14:23,340 --> 00:14:25,540 Das ist der Wert, den ich dort zu finden. 300 00:14:25,540 --> 00:14:28,124 >> So kann ich sagen Dinge wie. $ Pizzakäse = 7.99. 301 00:14:28,124 --> 00:14:29,040 Sagen, ich bin mit einem Verkauf. 302 00:14:29,040 --> 00:14:31,750 Ich möchte dis-- Ich möchte Drop der Preis für die Käse-Pizza. 303 00:14:31,750 --> 00:14:35,620 Oder ich kann das Gemüse verwenden Pizza als Teil einer Bedingung, 304 00:14:35,620 --> 00:14:39,990 oder ich kann ein neues Element hinzuzufügen meinen Array, so wie ich vorher tun könnte. 305 00:14:39,990 --> 00:14:44,680 Ich kann ein neues Element, um dieses Add assoziatives Array mit dem Schlüssel "Speck" 306 00:14:44,680 --> 00:14:49,250 und der Wert 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Aber diese Art stellt ein Problem, Wenn man darüber nachdenkt, für eine Sekunde. 308 00:14:53,820 --> 00:14:55,721 Wie würden wir durchlaufen dieses Array? 309 00:14:55,721 --> 00:14:56,220 Recht? 310 00:14:56,220 --> 00:14:59,820 In C, wir haben nur wäre eine for-Schleife, in der Regel, dass 311 00:14:59,820 --> 00:15:03,650 würden von 0 auf der Flucht Größe der Anordnung minus 1. 312 00:15:03,650 --> 00:15:08,060 Das Array hat n Elemente an, die gültig Indizes sind 0 bis n minus 1. 313 00:15:08,060 --> 00:15:11,530 Also haben wir eine for-Schleife zu verwenden Schritt durch jedes einzelne Element. 314 00:15:11,530 --> 00:15:13,530 >> Aber das ist nicht wirklich mehr der Fall, nicht wahr? 315 00:15:13,530 --> 00:15:17,360 Jetzt, wo wir Schlüssel-Wert-Paar Mappings, wo die Schlüssel sind Worte, 316 00:15:17,360 --> 00:15:19,970 wie können wir überlaufen allen Wörtern? 317 00:15:19,970 --> 00:15:22,420 Nun, zum Glück hat PHP ein Weg, um mit diesen zu beschäftigen, 318 00:15:22,420 --> 00:15:24,580 und so werden wir wieder springen für eine zweite Schleife 319 00:15:24,580 --> 00:15:30,780 um eine vierte Art von Schleife einzuführen, dass existiert in PHP genannt foreach-Schleife. 320 00:15:30,780 --> 00:15:34,430 Und was für eine foreach-Schleife tut, ist, es ist im Grunde die gleiche Idee. 321 00:15:34,430 --> 00:15:36,060 Sie können es für jede Art von Array zu verwenden. 322 00:15:36,060 --> 00:15:38,100 Aber es ist im Grunde die gleiche Idee wie eine for-Schleife, 323 00:15:38,100 --> 00:15:40,750 mit der Ausnahme, statt mit Indexnummern, die Sie gerade 324 00:15:40,750 --> 00:15:45,830 haben diese seltsame Syntax, wo Sie jedes einzelne Element nennen 325 00:15:45,830 --> 00:15:47,550 ein Name für die Zwecke dieser Schleife. 326 00:15:47,550 --> 00:15:49,258 >> So dass in diesem Fall foreach ($ array as $ key). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Grundsätzlich wie Kommentar Noten, innerhalb dieser foreach-Schleife, 329 00:15:56,450 --> 00:16:00,466 es wird gehen über jedes einzelne Element $ Array, das typischerweise 330 00:16:00,466 --> 00:16:03,340 werde ein assoziatives Array sein, aber kann wirklich jede Art von Array sein 331 00:16:03,340 --> 00:16:05,419 dass Sie möchten, in PHP. 332 00:16:05,419 --> 00:16:07,210 Und jedes Mal, dass in eine for-Schleife, die Dir vielleicht 333 00:16:07,210 --> 00:16:13,780 haben gesagt, $ array eckigen Klammern $ i, könnte man einfach sagen, $ key. 334 00:16:13,780 --> 00:16:22,340 So dass $ key wird einen Alias ​​für jeden Index Ihrer PHP assoziatives Array, 335 00:16:22,340 --> 00:16:23,710 und so kann man es so zu verwenden. 336 00:16:23,710 --> 00:16:25,897 >> So zum Beispiel, haben wir Jetzt haben unsere Pizzen Array. 337 00:16:25,897 --> 00:16:27,730 Ich habe Art steckte sie in die Ecke 338 00:16:27,730 --> 00:16:31,080 so können wir es verwenden, um ein kleines Beispiel zu tun. 339 00:16:31,080 --> 00:16:36,420 Wenn ich sage: foreach ($ Pizzen $ Pizza), nun, was passiert? 340 00:16:36,420 --> 00:16:42,400 Nun, ich werde durch jede Iteration einzigen Element des Arrays $ Pizzen, 341 00:16:42,400 --> 00:16:46,670 und auf diese Weise, ich werde nennen jedes Element, wenn ich innen 342 00:16:46,670 --> 00:16:49,400 des Körpers, dass for-Schleife, $ Pizza. 343 00:16:49,400 --> 00:16:52,440 >> Also das ist eine Art Stand-in, Rückruf, dass $ pizza 344 00:16:52,440 --> 00:16:59,140 ist ein Stand-in für das Sagen $ Pizzen eckigen Klammern $ i 345 00:16:59,140 --> 00:17:03,370 wenn wir verwendet haben eine for-Schleife, wo wir könnten von $ i = 0 bis, in diesem Fall gehen, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Wenn wir keine Schlüsselwertpaare Hier würde dieses Element 0, 1, 2, 3 sein kann, 348 00:17:09,780 --> 00:17:16,390 und wir würden eine for-Schleife verwenden, um zu gehen $ Pizzen 0, $ Pizzen 1, $ 2 Pizzen, 349 00:17:16,390 --> 00:17:17,750 $ 3 Pizzen. 350 00:17:17,750 --> 00:17:23,130 So, jetzt nur $ Pizza wird Substitution für diese individuellen Schlüssel. 351 00:17:23,130 --> 00:17:25,630 >> Also, was wird das wohl ausdrucken? 352 00:17:25,630 --> 00:17:29,030 Ich Ausdrucken $ Pizza. 353 00:17:29,030 --> 00:17:35,270 Was soll ich zu finden at-- wenn ich drucken Sie $ Pizzen, $ i? 354 00:17:35,270 --> 00:17:35,770 Recht? 355 00:17:35,770 --> 00:17:38,680 Wenn ich schon zum Ausdrucken das i-te Element der Pizzas, 356 00:17:38,680 --> 00:17:40,070 was soll ich drucken? 357 00:17:40,070 --> 00:17:42,580 Ich werde aus dem Druck Werte an dieser Stelle, nicht wahr? 358 00:17:42,580 --> 00:17:45,370 Wie, wenn wir taten, Diese im Rahmen des C, 359 00:17:45,370 --> 00:17:49,786 wir normalerweise nicht nutzen Sie unser Iterator Variable int i = 0, i ist kleiner als 3, 360 00:17:49,786 --> 00:17:52,900 i ++, um aus 0, 1, 2, 3 zu drucken. 361 00:17:52,900 --> 00:17:57,500 Wir Ausdrucken Array 0, Feld 1, Feld 2, Anordnung 3. 362 00:17:57,500 --> 00:17:59,580 Und so, was diese druckt das ist. 363 00:17:59,580 --> 00:18:01,150 Es ist die Liste der Preise. 364 00:18:01,150 --> 00:18:05,750 8.99, 9.99, 10.99, 11.99. 365 00:18:05,750 --> 00:18:06,900 >> Jetzt eine kurze Anmerkung hier. 366 00:18:06,900 --> 00:18:10,900 Ein foreach-Schleife nicht unbedingt drucken Sie die Dinge in Ordnung. 367 00:18:10,900 --> 00:18:12,770 Es ist nicht garantiert. 368 00:18:12,770 --> 00:18:13,550 Es spielt in der Regel. 369 00:18:13,550 --> 00:18:17,667 Es ist in der Regel auf der Reihenfolge, in der Basis wobei die Elemente zum Array hinzugefügt werden, 370 00:18:17,667 --> 00:18:18,750 so einfach vergessen Sie das nicht. 371 00:18:18,750 --> 00:18:20,830 Es ist vielleicht nicht in Ordnung zu sein. 372 00:18:20,830 --> 00:18:23,930 Aber eine foreach-Schleife wird durchlaufen für jedes einzelne Element 373 00:18:23,930 --> 00:18:25,060 des Arrays in Frage. 374 00:18:25,060 --> 00:18:27,980 In diesem Fall wird wieder dass Array $ Pizzen. 375 00:18:27,980 --> 00:18:32,920 >> Ich kann die Syntax ändern, aber, wenn Ich möchte sowohl den Schlüssel und den Wert. 376 00:18:32,920 --> 00:18:37,179 Anstatt zu sagen $ Pizzen wie $ Pizza, kann ich sagen. 377 00:18:37,179 --> 00:18:39,470 Und wenn Sie bei dem, was ich sehen grün markiert hier, 378 00:18:39,470 --> 00:18:42,130 es sieht aus wie ein Schlüssel-Wert-Paar-Mapping. 379 00:18:42,130 --> 00:18:45,980 Und so, wenn Sie-- selbst wenn Sie nicht sind ganz sicher, was er tun wird, 380 00:18:45,980 --> 00:18:49,300 Sie vermutlich schätzen können dass $ Topping wird 381 00:18:49,300 --> 00:18:53,800 der Schlüssel in diesem Fall, und $ Preis wird sich der Wert sein. 382 00:18:53,800 --> 00:18:59,200 Also ich bin jetzt Substitution jedes Element von $ Pizzen als ein Schlüssel-Wert-Paar, 383 00:18:59,200 --> 00:19:03,900 und jetzt kann ich auf die Taste beziehen und Der Wert, der könnte sich als nützlich, 384 00:19:03,900 --> 00:19:05,590 beispielsweise wie folgt. 385 00:19:05,590 --> 00:19:10,170 >> "Eine ganze" - das ist eine Menge von Druck los hier-- "Eine ganze" 386 00:19:10,170 --> 00:19:17,300 Richtfest "Pizza kostet $" Preis und dann Ich drucken Sie eine Periode und einen Backslash n. 387 00:19:17,300 --> 00:19:23,420 So, jetzt, Ankündigung wieder habe ich Zugang zu a key, $ Richtfest, und ein Wert, $ Preis. 388 00:19:23,420 --> 00:19:26,647 So können Sie sich vorstellen, was diese wird sich ausdrucken? 389 00:19:26,647 --> 00:19:29,480 Es gibt eine Menge von print-Anweisungen, aber es gibt nur einen Backslash-n, 390 00:19:29,480 --> 00:19:33,410 so es geht um etwas auf zu drucken ein entire-- auf eine einzige Zeile Code. 391 00:19:33,410 --> 00:19:36,965 >> Wenn ich auf die Taste beziehen und der Wert, dann jetzt, 392 00:19:36,965 --> 00:19:39,090 statt nur in der Lage um aus den Preisen zu drucken, 393 00:19:39,090 --> 00:19:41,330 Ich ausdrucken können so etwas wie dieses. 394 00:19:41,330 --> 00:19:43,780 "Eine ganze Käse Pizza kostet $ 8,99." 395 00:19:43,780 --> 00:19:47,150 Und jetzt bin ich mit all der keys-- Käse, Peperoni, Gemüse, 396 00:19:47,150 --> 00:19:49,640 Büffel chicken-- und die Werte. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 So das ist nur eine andere Art und Weise 398 00:19:53,980 --> 00:19:57,840 um eine foreach-Schleife zu tun, daß anstelle von nur geben Ihnen Zugriff auf die Werte, 399 00:19:57,840 --> 00:20:02,950 sie gibt nur Sie-- es gibt Ihnen Zugriff auf die Schlüssel und die Werte. 400 00:20:02,950 --> 00:20:04,411 >> So Ausdrucken von Informationen. 401 00:20:04,411 --> 00:20:07,410 Ich habe es bereits getan ein paar verschiedene Arten, könnten Sie bemerkt haben. 402 00:20:07,410 --> 00:20:11,080 Die beiden Funktionen wir haben in erster Linie gesehen sind Print- und Echo. 403 00:20:11,080 --> 00:20:14,380 Und für so ziemlich jeder Hinsicht Zwecke, sie sind genau die gleichen. 404 00:20:14,380 --> 00:20:17,130 They're-- gibt es eine sehr subtile Unterschied, dass nicht einmal wert ist 405 00:20:17,130 --> 00:20:21,130 immer in, aber im Grunde überall Sie können die Druck verwenden Sie wahrscheinlich verwenden können 406 00:20:21,130 --> 00:20:22,370 Echo als gut. 407 00:20:22,370 --> 00:20:23,610 >> Und das ist nicht die einzige zwei. 408 00:20:23,610 --> 00:20:26,970 PHP hat eine Menge von verschiedenen Möglichkeiten, Dinge zu drucken, 409 00:20:26,970 --> 00:20:30,520 und es hat auch Möglichkeiten zur Integration Variablen in der Mitte der Saite. 410 00:20:30,520 --> 00:20:32,860 So erinnern die aus C, sind Sie daran erinnern, was Funktion 411 00:20:32,860 --> 00:20:37,580 wir nutzen, um Variablen zu ersetzen in Dinge, die wir wollen, drucken Sie? 412 00:20:37,580 --> 00:20:40,160 Sie verwenden diese wahrscheinlich Funktion eine ganze Menge. 413 00:20:40,160 --> 00:20:42,290 printf, nicht wahr? 414 00:20:42,290 --> 00:20:45,290 Also das ist, was wir vorher hatten im Inneren der Rahmen unserer foreach-Schleife. 415 00:20:45,290 --> 00:20:48,000 Wir hatten diese fünf getrennte print-Anweisungen, 416 00:20:48,000 --> 00:20:50,330 denn das war das einzige, wie ich wirklich zu der Zeit wusste, 417 00:20:50,330 --> 00:20:52,450 wie zum Ausdrucken Nachrichten. 418 00:20:52,450 --> 00:20:59,560 Ich wusste nicht, wie man die Integration Variable $ Richtfest in meine PHP-Code. 419 00:20:59,560 --> 00:21:03,700 Nun, wenn ich nur genommen eine wilde Vermutung, printf, es tatsächlich funktioniert hätte. 420 00:21:03,700 --> 00:21:08,980 printf ist eine Funktion, die ich verwenden kann in PHP, genau wie ich es in C verwenden 421 00:21:08,980 --> 00:21:11,880 >> Und so etwas wie dieses, printf, wieder, wir sind damit vertraut. 422 00:21:11,880 --> 00:21:16,420 Das erste% s wird ersetzt mit dem Wert von $ Richtfest. 423 00:21:16,420 --> 00:21:19,700 Das zweite% s wird ersetzt mit dem Wert von $ Preis. 424 00:21:19,700 --> 00:21:22,630 Und so bin ich interpellating, Das ist nur eine andere Art 425 00:21:22,630 --> 00:21:25,400 zu sagen, ich bleibe die Variablen in diesem Ort. 426 00:21:25,400 --> 00:21:31,000 Also ich bin Einstecken $ Richtfest, wo die red% s ist und $ Preis wo der blaue% s 427 00:21:31,000 --> 00:21:36,060 ist, und dann würde ich die Meldung, "Eine ganze Käse Pizza kostet $ 8,99." 428 00:21:36,060 --> 00:21:37,750 >> Nicht der einzige Weg, ich kann es tun, wenn. 429 00:21:37,750 --> 00:21:39,760 Vielleicht sollte ich diese Methode verwenden. 430 00:21:39,760 --> 00:21:44,890 Dies ist eigentlich, was am häufigsten genannte variable Interpellation. 431 00:21:44,890 --> 00:21:45,690 Ich kann ein Echo zu verwenden. 432 00:21:45,690 --> 00:21:47,737 Ich konnte einen Druck zu verwenden, wie wir sehen werden. 433 00:21:47,737 --> 00:21:48,820 Aber was hier passiert? 434 00:21:48,820 --> 00:21:51,520 >> Zuallererst muss ich Flucht der Dollar-Zeichen. 435 00:21:51,520 --> 00:21:55,140 Denn denken Sie daran, wenn wir tatsächlich waren Drucken Sie sich die Preise der Pizza, 436 00:21:55,140 --> 00:21:59,370 Ich war eigentlich Formatierung sie als Geld Zahlen mit einem Dollarzeichen. 437 00:21:59,370 --> 00:22:05,635 Aber wir sind mit Dollarzeichen auch Variablennamen in PHP dar, 438 00:22:05,635 --> 00:22:08,010 insbesondere, wenn ich Mit dieser Methode der geschweiften 439 00:22:08,010 --> 00:22:10,040 Klammer variable Interpellation Verfahren, brauche ich 440 00:22:10,040 --> 00:22:13,490 auf meine Dollarzeichen zu entkommen, so das nicht der Fall glaube, ich bin über eine Variable im Gespräch. 441 00:22:13,490 --> 00:22:16,920 Es wird tatsächlich, buchstäblich drucken Sie ein Dollarzeichen. 442 00:22:16,920 --> 00:22:19,530 >> So Art von analogize es was Sie sehen, am Ende gibt. 443 00:22:19,530 --> 00:22:22,832 Es ist nicht wirklich Druckbackslash n, nicht wahr? 444 00:22:22,832 --> 00:22:24,290 Es druckt eine neue Zeile. 445 00:22:24,290 --> 00:22:26,750 Dies ist-- es nicht zu gehen Druckbackslash-Dollar-Zeichen, 446 00:22:26,750 --> 00:22:30,130 es wird einfach nur auszudrucken ein Dollarzeichen. 447 00:22:30,130 --> 00:22:30,640 Dieselbe Idee. 448 00:22:30,640 --> 00:22:32,760 Escape-Sequenzen, was diese Dinge sind nicht genannt. 449 00:22:32,760 --> 00:22:37,080 >> Aber beachten Sie, dass ich nicht tun, jede Art von% s Substitutionen, 450 00:22:37,080 --> 00:22:40,050 Ich bin einfach nur buchstäblich einstecken in diesen Variablen. 451 00:22:40,050 --> 00:22:45,110 Und so in this--, was hier passieren würde, ist, dass der Wert von $ topping-- wieder 452 00:22:45,110 --> 00:22:48,390 nur halten mit dem, was wir gewesen sind reden über so far-- Käse bekommen würde 453 00:22:48,390 --> 00:22:49,720 in es eingesteckt ist. 454 00:22:49,720 --> 00:22:54,780 Und $ Preis wäre, was Wert ist an Pizzen, eckige Klammern, Käse, 455 00:22:54,780 --> 00:22:56,270 die 8.99 war. 456 00:22:56,270 --> 00:23:01,860 Und so würde dies auch ausdrucken "Eine ganze Käse Pizza kostet $ 8,99." 457 00:23:01,860 --> 00:23:05,160 Und wie ich schon sagte, ich verwenden könnte Drucken Sie hier anstelle von echo, 458 00:23:05,160 --> 00:23:08,040 und die Funktionalität sein so ziemlich genau das gleiche. 459 00:23:08,040 --> 00:23:09,660 Es wäre ausdrucken dasselbe. 460 00:23:09,660 --> 00:23:12,680 >> Es gibt einen anderen Weg, es zu tun, und dies ist ein weiterer Vorteil, 461 00:23:12,680 --> 00:23:14,710 PHP-Arbeit mit Strings. 462 00:23:14,710 --> 00:23:17,130 Wir können die String-Verkettung zu tun. 463 00:23:17,130 --> 00:23:19,660 Wir konnten dies in C auch tun, Verwendung einer Funktion namens strcat, 464 00:23:19,660 --> 00:23:21,180 aber wieder, wir mussten rufen separate Funktionen. 465 00:23:21,180 --> 00:23:22,640 Es war dieses ganze Durcheinander zu tun. 466 00:23:22,640 --> 00:23:24,590 Wir mussten pound-schließen string.h. 467 00:23:24,590 --> 00:23:25,780 Es war eine Produktion, nicht wahr? 468 00:23:25,780 --> 00:23:30,070 Aber jetzt kann ich nur mit diesem Punktoperator um Zeichenfolgen verketten. 469 00:23:30,070 --> 00:23:34,910 >> Also ich bin Verkettung "Eine ganze" und dann was auch immer der Wert von $ Topping ist, 470 00:23:34,910 --> 00:23:38,860 und dann eine andere String, "Pizza kostet $" 471 00:23:38,860 --> 00:23:42,340 und was auch immer verketten der Wert von $ Preis ist, 472 00:23:42,340 --> 00:23:45,670 und dann ganz am Ende bin ich Heften auf Periode umgekehrten Schrägstrich n. 473 00:23:45,670 --> 00:23:47,926 Und so würde dies auch drucken Sie "Eine ganze" - wieder, 474 00:23:47,926 --> 00:23:50,550 wenn wir über das erste Gespräch Element dieser Pizzas array-- 475 00:23:50,550 --> 00:23:54,710 "Eine ganze Käse Pizza kostet $ 8,99." 476 00:23:54,710 --> 00:24:01,260 Zeitraum, umgekehrten Schrägstrich n wieder mit die $ Topping und $ Preis substituierende 477 00:24:01,260 --> 00:24:06,580 für das, was wir in unserem foreach angegeben hatte Schleife als Schlüssel-Wert-Paar-Mapping. 478 00:24:06,580 --> 00:24:08,050 >> PHP-Funktionen zu handhaben. 479 00:24:08,050 --> 00:24:11,250 Funktionen waren Art integraler Bestandteil C, wie wir sahen. 480 00:24:11,250 --> 00:24:14,870 Wie Variablen, wissen wir nicht brauchen, um geben Sie den Rückgabetyp der Funktion, 481 00:24:14,870 --> 00:24:16,350 denn es ist nicht wirklich wichtig. 482 00:24:16,350 --> 00:24:18,660 Und wir nicht angeben, die Datentypen der Parameter auf, 483 00:24:18,660 --> 00:24:21,410 weil sie nicht wirklich Egal, wie wir es in PHP gesehen habe. 484 00:24:21,410 --> 00:24:24,510 Jede Funktion wird eingeführt mit dem Schlüsselwort function. 485 00:24:24,510 --> 00:24:27,920 Das ist, wie wir uns zu zeigen, dass PHP was wir hier reden, ist eine Funktion. 486 00:24:27,920 --> 00:24:29,720 >> Und wir wollen nicht zu haben, befassen sich mit Hauptüberhaupt, 487 00:24:29,720 --> 00:24:33,690 weil der Dolmetscher, die PHP- Dolmetscher arbeitet von oben nach unten, 488 00:24:33,690 --> 00:24:34,190 ungeachtet. 489 00:24:34,190 --> 00:24:35,640 Wenn es sieht, die Sie machen können ein Funktionsaufruf, wird es 490 00:24:35,640 --> 00:24:37,850 gehen Sie finden den Funktionsaufruf, auch wenn er später kommt. 491 00:24:37,850 --> 00:24:40,360 Aber es wird von oben nach gelesen Boden, so dass wir nicht brauchen, um anzugeben, 492 00:24:40,360 --> 00:24:41,500 hier, wo Sie starten. 493 00:24:41,500 --> 00:24:46,700 Sie beginnen in Zeile 1 des PHP und arbeiten von dort herunter. 494 00:24:46,700 --> 00:24:49,690 >> Also hier ist, wie wir schaffen würde eine Funktion namens hard_square. 495 00:24:49,690 --> 00:24:54,100 Es dauert offenbar ein Parameter, die ich rufe $ x. 496 00:24:54,100 --> 00:24:58,424 Diese Funktion ist nur kompliziert , um verschiedene Dinge zu veranschaulichen. 497 00:24:58,424 --> 00:24:59,590 Wir haben immer noch die Rückgabewerte. 498 00:24:59,590 --> 00:25:00,870 Ich bin mit einer for-Schleife hier. 499 00:25:00,870 --> 00:25:04,970 Aber es ist im Grunde nur, was diese beläuft sich auf nur $ x $ x-mal. 500 00:25:04,970 --> 00:25:10,520 Was ich eigentlich tun, ist einfach nur mit x 0 x-mal oder $ x auf Null $ x-mal. 501 00:25:10,520 --> 00:25:15,850 Aber es ist effektiv genau die elbe wie Multiplizieren $ x $ x-mal. 502 00:25:15,850 --> 00:25:18,700 Ich kann immer noch einen Wert zurückgeben, in diesem Fall $ result, 503 00:25:18,700 --> 00:25:22,060 und ich habe eine Funktion in PHP geschrieben. 504 00:25:22,060 --> 00:25:24,160 >> Hier ist, wie Sie es im Kontext zu verwenden könnte. 505 00:25:24,160 --> 00:25:26,020 Also vielleicht bin ich innerhalb von einigen PHP-Datei. 506 00:25:26,020 --> 00:25:29,240 Beachten Sie, dass es in blau Ich habe mein PHP-Trennzeichen verwendet wird, 507 00:25:29,240 --> 00:25:31,010 Winkel Fragezeichen php. 508 00:25:31,010 --> 00:25:35,180 Zwischen denen alle von Die PHP, die ich schreiben möchte. 509 00:25:35,180 --> 00:25:37,840 Also ich bin offenbar werde get-- Ich werde den Benutzer auffordern 510 00:25:37,840 --> 00:25:41,550 mir eine Zahl, Geschäft zu geben, dass variable, Geschäft in dieser Variable $ x, 511 00:25:41,550 --> 00:25:43,320 Was auch immer sie mir. 512 00:25:43,320 --> 00:25:48,590 Dann werde ich echo hard_square dieses Wertes, 513 00:25:48,590 --> 00:25:50,370 und anscheinend geht um in einer neuen Zeile tack 514 00:25:50,370 --> 00:25:53,590 als auch, und dann später an werde ich Definieren Sie die Funktion so hard_square 515 00:25:53,590 --> 00:25:55,550 dass, wenn ich die rufen hard_square, 516 00:25:55,550 --> 00:25:58,160 er weiß, was ich rede. 517 00:25:58,160 --> 00:26:00,705 >> Nun, ich könnte auch tun, etwas wie das. 518 00:26:00,705 --> 00:26:02,050 Dies ist etwas anders. 519 00:26:02,050 --> 00:26:04,190 Es ist fast genau die gleiche wie das, was wir zuvor gesehen haben, 520 00:26:04,190 --> 00:26:08,400 außer, statt nur $ sagen x es als Parameter für hard_square, 521 00:26:08,400 --> 00:26:11,730 Ich sage, $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Das ist also ein Beispiel für defensive Programmierung, 523 00:26:14,330 --> 00:26:17,070 bewachen Ihre Programme vor böswilligen Benutzern. 524 00:26:17,070 --> 00:26:20,020 >> Dies ist ein Weg, um einige Fehler zu tun Überprüfung, dass wir nicht wirklich 525 00:26:20,020 --> 00:26:24,670 haben als Option in C. Wir konnten nie geben Sie den Standardwert von etwas. 526 00:26:24,670 --> 00:26:27,010 Wir hatten immer zu prüfen, ob beispielsweise 527 00:26:27,010 --> 00:26:30,820 wenn wir einen Aufruf an GetString, war es eigensten, wenn unmittelbar nach dem wir 528 00:26:30,820 --> 00:26:33,300 überprüft, dass wir überprüft ob die Saite 529 00:26:33,300 --> 00:26:35,504 dass der Nutzer gaben uns nicht gleich null, 530 00:26:35,504 --> 00:26:37,920 denn wir wollen nicht starten Arbeiten mit einem Null-String. 531 00:26:37,920 --> 00:26:39,670 >> Hier ist dies ein Weg, um gegen die zu schützen. 532 00:26:39,670 --> 00:26:43,480 Wenn der Benutzer nicht geben uns etwas irgendwie, was sollen wir tun? 533 00:26:43,480 --> 00:26:46,080 Nun, wir werden einfach sagen, was auch immer sie nicht geben uns, 534 00:26:46,080 --> 00:26:47,705 wir sind gerade dabei, statt in 10 stecken. 535 00:26:47,705 --> 00:26:52,030 Also, wenn sie nicht einen Wert geben uns, benutzen Sie einfach 10 standardmäßig. Und hier, 536 00:26:52,030 --> 00:26:53,940 feststellen, dass ich mache Ein Anruf bei hard_square, 537 00:26:53,940 --> 00:26:55,980 aber es gibt keine Eingabeaufforderung dem Benutzer, nicht wahr? 538 00:26:55,980 --> 00:26:57,540 Ich mache nur eine leere Ruf. 539 00:26:57,540 --> 00:27:00,860 >> Aber meine Funktion hard_square erwartet einen Parameter. 540 00:27:00,860 --> 00:27:02,222 Was wird das wohl ausdrucken? 541 00:27:02,222 --> 00:27:03,680 Es wird aus 100 ausdrucken, oder? 542 00:27:03,680 --> 00:27:05,720 Da der Benutzer nicht geben Sie mir etwas. 543 00:27:05,720 --> 00:27:08,970 Und so bin ich nur davon ausgehen, dass 10-- 10 ist der Standardwert. 544 00:27:08,970 --> 00:27:13,760 Und so würde dies zu drucken aus 100 in einer eigenen Zeile. 545 00:27:13,760 --> 00:27:16,390 >> PHP-Dateien nicht haben, sein, nur eine einzige Datei. 546 00:27:16,390 --> 00:27:19,480 Sie können mehrere Dateien miteinander zu kombinieren, Ebenso wie Sie in C. Die Art und Weise 547 00:27:19,480 --> 00:27:24,330 wir haben das in C war in der Regel ein zu tun # include um die Header-Dateien in gezogen. 548 00:27:24,330 --> 00:27:26,180 Wir tun das nicht in PHP. 549 00:27:26,180 --> 00:27:29,110 Wir tun so etwas wie require_once. 550 00:27:29,110 --> 00:27:33,360 Und dann gibt es diese ganze Sache, was ist das __dir__? 551 00:27:33,360 --> 00:27:36,510 Das ist nur ein Sonder Variable oder spezielle Konstante, 552 00:27:36,510 --> 00:27:39,030 wirklich, gibt an, dass das, was Ihr aktuelles Verzeichnis ist. 553 00:27:39,030 --> 00:27:41,320 Und so, es wird aussehen im aktuellen Verzeichnis 554 00:27:41,320 --> 00:27:44,900 nach einer Datei namens cs50.php in diesem Beispiel hier, 555 00:27:44,900 --> 00:27:50,490 und es geht um die Datei-Stick an der Spitze der Ihre PHP-Programm, 556 00:27:50,490 --> 00:27:56,980 vorausgesetzt, dass Sie die erfordern setzen einmal Linie an der Spitze der Ihre PHP-Datei. 557 00:27:56,980 --> 00:28:01,474 >> So PHP wird hauptsächlich verwendet, aber nicht ausschließlich, verwendet, 558 00:28:01,474 --> 00:28:03,140 als Sprache für Web-basierte Programmierung. 559 00:28:03,140 --> 00:28:05,270 Das ist wirklich, wie es kam zu sein. 560 00:28:05,270 --> 00:28:06,980 Aber es ist ein Voll Sprache, wie wir gesehen haben. 561 00:28:06,980 --> 00:28:10,105 Wir haben so ziemlich alles, was zu sehen dass sie tun, die ähnlich wie C gibt, 562 00:28:10,105 --> 00:28:13,290 und es kann ein Heck tun viel mehr als das. 563 00:28:13,290 --> 00:28:16,950 >> Aber weil es eine vollständige Sprache, und wir können Befehlszeile Programmierung zu tun. 564 00:28:16,950 --> 00:28:18,630 Wir können Befehlszeilenprogramme ausführen. 565 00:28:18,630 --> 00:28:22,580 Alles, was erforderlich ist, um einen Befehl auszuführen Zeilenprogramm, das in PHP geschrieben ist 566 00:28:22,580 --> 00:28:24,260 ist, dass Sie ein PHP-Interpreter haben. 567 00:28:24,260 --> 00:28:27,460 Es ist also eine Art analog zu mit einem Compiler auf Ihrem System 568 00:28:27,460 --> 00:28:31,100 wenn Sie Ihre C-Code kompilieren wollen um es in ausführbaren Dateien zu verwandeln. 569 00:28:31,100 --> 00:28:33,810 Sie müssen sich ein PHP-Interpreter haben , dass auf Ihrem System vorhanden ist 570 00:28:33,810 --> 00:28:37,330 so dass Sie PHP-Dateien zu interpretieren. 571 00:28:37,330 --> 00:28:40,370 >> Angenommen, Sie haben, und in der Regel Diese Dolmetscher heißt PHP, 572 00:28:40,370 --> 00:28:44,300 und es ist in der Regel mit den meisten gebündelten Downloads oder Installationen von PHP 573 00:28:44,300 --> 00:28:47,430 dass Sie online gehen können, und sicher den Namen der PHP-Interpreter 574 00:28:47,430 --> 00:28:49,550 Wir haben in CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Alles, was Sie tun, ist Typ PHP-Datei. 576 00:28:51,819 --> 00:28:53,610 Und was Ihr Programm zu tun ist, ist es 577 00:28:53,610 --> 00:28:55,360 gehen zu durchlaufen der Dolmetscher, es ist 578 00:28:55,360 --> 00:28:58,040 gehen, um alles, was es zu ignorieren nicht in Frage zwischen mark-- 579 00:28:58,040 --> 00:29:03,160 oder, Winkel Fragezeichen php, die PHP-Trennzeichen, und drucken Sie es aus, 580 00:29:03,160 --> 00:29:07,660 und es wird interpretieren und ausführen die Code innerhalb der PHP-Trennzeichen. 581 00:29:07,660 --> 00:29:12,850 >> Lassen Sie uns also über Pop bis CS50 IDE und einen Blick auf ein paar PHP-Dateien, 582 00:29:12,850 --> 00:29:19,850 läuft ein paar PHP-Dateien, in Befehlszeilenschnittstelle des CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Also hier in CS50 IDE sind wir und ich habe mir die Freiheit genommen 584 00:29:22,100 --> 00:29:25,800 Öffnen einer Datei mit dem Namen hello1.php. 585 00:29:25,800 --> 00:29:29,920 Und offensichtlich, wird der Inhalt dieses Datei sind nur die PHP-Trennzeichen gibt, 586 00:29:29,920 --> 00:29:32,220 und dazwischen, echo ("Hallo Welt"). 587 00:29:32,220 --> 00:29:34,710 Dies ist eine ziemlich einfache PHP-Programm. 588 00:29:34,710 --> 00:29:37,670 Ich werde einfach nach unten scrollen zu meinem Terminal-Fenster hier 589 00:29:37,670 --> 00:29:44,320 und ich werde PHP-Typ hello1.php, drücken Sie Enter. 590 00:29:44,320 --> 00:29:44,950 Hallo Welt. 591 00:29:44,950 --> 00:29:48,110 Das ist wahrscheinlich das, was wir waren erwartet, dass es zu tun, oder? 592 00:29:48,110 --> 00:29:51,140 >> Lass uns gehen und zu nehmen Ein weiterer Blick auf ein Programm. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 So ziemlich die gleiche Sache, nicht viel los hier. 595 00:29:55,090 --> 00:29:57,190 Dieses Mal jedoch, werde ich aufgefordert, dem Benutzer, mir ihre Namen. 596 00:29:57,190 --> 00:29:59,290 Ich verwende wieder diese readline-Funktion. 597 00:29:59,290 --> 00:30:01,340 $ name = readline. 598 00:30:01,340 --> 00:30:03,070 Das ist die Aufforderung, "Wie ist Ihr Name?" 599 00:30:03,070 --> 00:30:04,880 >> Anscheinend bin ich Druck es in einer eigenen Zeile. 600 00:30:04,880 --> 00:30:07,220 Und dann, so dass die Zeile unter das wird die Aufforderung sein, 601 00:30:07,220 --> 00:30:08,750 wo der Benutzer seinen Namen eingeben. 602 00:30:08,750 --> 00:30:12,030 Und dann bin ich mit ein wenig variable Interpellation hier in Zeile 3 603 00:30:12,030 --> 00:30:14,780 zum Ausdrucken "Hallo" und was auch immer der Benutzer. 604 00:30:14,780 --> 00:30:22,040 Das ist also analog zu sagen: Hallo, Komma,% s, wenn wir mit printf in C 605 00:30:22,040 --> 00:30:24,910 >> Also lass uns gehen und zu interpretieren, dieses Programm. 606 00:30:24,910 --> 00:30:27,400 Also noch einmal, ich werde nach unten scrollen zu meinem Terminal-Fenster. 607 00:30:27,400 --> 00:30:29,070 php hello2.php. 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 Wie heißt du? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Hallo, Doug. 612 00:30:36,526 --> 00:30:39,440 Ich habe auch eine andere Datei namens hello3.php. 613 00:30:39,440 --> 00:30:42,850 Ich werde klar mein Bildschirm mit Control L, 614 00:30:42,850 --> 00:30:46,210 und ich werde das auszuführen. 615 00:30:46,210 --> 00:30:47,640 Wie heißt du? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Hallo, Doug. 618 00:30:49,780 --> 00:30:56,540 So ist das Verhalten identisch ist hello2.php, aber warum ist es hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Nun, hier ist der Unterschied. 620 00:30:58,040 --> 00:31:00,620 In diesem Fall kann die Mitteilung dass in Zeile 1 hier, 621 00:31:00,620 --> 00:31:04,270 Ich habe etwas, das nicht zwischen den PHP Begrenzer. 622 00:31:04,270 --> 00:31:07,760 Ich bin einfach nur Druck out-- oder I gerade eingegeben haben, "Wie ist Ihr Name?" 623 00:31:07,760 --> 00:31:12,060 Wenn der PHP-Interpreter sieht dies, es hat keine Ahnung, wie man es als PHP interpretiert, 624 00:31:12,060 --> 00:31:15,060 und so anstatt zu scheitern, ist es nur geht es ausspucken. 625 00:31:15,060 --> 00:31:19,010 >> So bemerkt der Linie 3 nun, mein Aufruf an readline, gibt es keine Eingabeaufforderung mehr. 626 00:31:19,010 --> 00:31:21,750 Ich bin einfach nur eigentlich vor sich geht, wenn zu-- der PHP-Interpreter sieht dies, 627 00:31:21,750 --> 00:31:23,400 es wird zum Ausdrucken "Wie heißt du?" 628 00:31:23,400 --> 00:31:25,941 Dann sieht sie, oh, OK, here's-- alles, was sein wird, 629 00:31:25,941 --> 00:31:29,970 als PHP interpretiert, so das ist, warum es funktioniert. 630 00:31:29,970 --> 00:31:34,990 Ich habe nicht unbedingt auffordern der Benutzer zu-- Innenseite readline, 631 00:31:34,990 --> 00:31:37,490 Ich kann nur noch nach draußen! der PHP Begrenzer 632 00:31:37,490 --> 00:31:41,490 und lassen den Interpreter nur drucken Sie es aus für mich. 633 00:31:41,490 --> 00:31:45,364 >> So dass Sie nicht wirklich nur um einen Satz von PHP-Trennzeichen haben 634 00:31:45,364 --> 00:31:46,030 in Ihrem Programm. 635 00:31:46,030 --> 00:31:49,887 Sie können tatsächlich haben mehrere von ihnen, Öffnen und Schließen von ihnen je nach Bedarf. 636 00:31:49,887 --> 00:31:51,720 Werfen wir also einen Blick auf ein paar Programme 637 00:31:51,720 --> 00:31:55,070 in CS50 IDE, wo wir illustrieren diese Idee, 638 00:31:55,070 --> 00:31:58,376 mehrere Sätze von abgegrenzten PHP. 639 00:31:58,376 --> 00:32:02,010 >> OK, also habe ich eine Datei geöffnet Hier add1.php genannt. 640 00:32:02,010 --> 00:32:03,390 Und beachten Sie, was hier passiert. 641 00:32:03,390 --> 00:32:08,077 Nach wie vor, ich habe eine Einzel PHP Satz von Trennzeichen. 642 00:32:08,077 --> 00:32:10,660 Ich werde aus dem Druck Meldung "Bitte geben Sie mir eine Nummer." 643 00:32:10,660 --> 00:32:13,394 Dann werde ich, um eine Zeile zu lesen und speichern sie in der Variablen $ num1. 644 00:32:13,394 --> 00:32:14,810 Dann werde ich wieder drucken. 645 00:32:14,810 --> 00:32:16,310 Geben Sie mir eine zweite Zahl. 646 00:32:16,310 --> 00:32:20,450 Lesen Sie eine Linie von der Benutzer, speichern was sie tippte in $ num2. 647 00:32:20,450 --> 00:32:23,980 Fügen Sie sie zusammen und speichern, dass führen zu einer Variable namens $ Summe, 648 00:32:23,980 --> 00:32:26,180 und drucken Sie dann aus: "Die Summe dieser beiden Zahlen 649 00:32:26,180 --> 00:32:29,254 ist ", und dann interpellieren gibt die Variable $ Summe. 650 00:32:29,254 --> 00:32:31,170 Lassen Sie uns also einfach laufen diese durch den Dolmetscher 651 00:32:31,170 --> 00:32:33,720 , um zu bestätigen, dass dies, was wir erwarten. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Bitte geben Sie mir eine Zahl, 3. 654 00:32:38,665 --> 00:32:40,410 Bitte geben Sie mir eine zweite Nummer, 4. 655 00:32:40,410 --> 00:32:43,370 Die Summe dieser beiden Zahlen ist 7. 656 00:32:43,370 --> 00:32:45,030 Das ist 3 plus 4. 657 00:32:45,030 --> 00:32:45,530 OK? 658 00:32:45,530 --> 00:32:47,770 So schrecklich nichts Besonderes gibt. 659 00:32:47,770 --> 00:32:51,080 >> Und nun öffnen add2.php. 660 00:32:51,080 --> 00:32:54,460 Hier habe ich ein paar PHP bekam begrenzt Sätze gibt, nicht wahr? 661 00:32:54,460 --> 00:32:59,107 Linien 1, 3-- Linien 1 und 3 haben keine PHP-Trennzeichen. 662 00:32:59,107 --> 00:33:00,940 Also, wenn der Dolmetscher sie sieht, es ist nur, 663 00:33:00,940 --> 00:33:03,220 werde genau ausspucken was ich dort eingegeben. 664 00:33:03,220 --> 00:33:05,011 Also das ist, wo ich bin tun alle meine Nachfrage. 665 00:33:05,011 --> 00:33:11,220 In den Zeilen 2 und 4 sehen wir die sehr vertraut $? php Art von Trennzeichen, 666 00:33:11,220 --> 00:33:15,210 so dass diese beiden Zeilen sind werde als PHP ausführen. 667 00:33:15,210 --> 00:33:18,270 Und dann auf der Linie 5, habe ich diese seltsame Sache hier, nicht wahr? 668 00:33:18,270 --> 00:33:20,480 Dieser Winkel Fragezeichen Gleichheitszeichen. 669 00:33:20,480 --> 00:33:22,660 Ich werde sogar heranzoomen ein bisschen weiter. 670 00:33:22,660 --> 00:33:29,270 Sie können sehen, das ist, was ich genau dort reden, diese $? =. 671 00:33:29,270 --> 00:33:33,420 >> Es stellt sich heraus, dass es so verbreitet, dass der Grund, dass wir eröffnen eine Reihe von PHP- 672 00:33:33,420 --> 00:33:36,055 Trennzeichen ist, drucken Sie einen Wert ein. 673 00:33:36,055 --> 00:33:37,430 Und das ist alles, was wir tun werden. 674 00:33:37,430 --> 00:33:39,220 Aber es gibt auch eine Abkürzung für das. 675 00:33:39,220 --> 00:33:46,490 $? = Ist eine Abkürzung für PHP sagen so etwas wie $? php echo die Summe 676 00:33:46,490 --> 00:33:48,350 von num1 und num2. 677 00:33:48,350 --> 00:33:51,900 So ist das nur eine Abkürzung für das. 678 00:33:51,900 --> 00:33:55,550 >> Also, wenn ich dieses Programm, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Ich werde heran unten ein wenig. 680 00:33:57,530 --> 00:33:59,000 Bitte geben Sie mir eine Zahl, 4. 681 00:33:59,000 --> 00:34:00,350 Bitte geben Sie mir eine zweite Nummer. 682 00:34:00,350 --> 00:34:04,650 Und da ich nicht wirklich interessieren Datentypen in PHP, kann ich sagen, 4.8. 683 00:34:04,650 --> 00:34:07,160 Die Summe dieser beiden Zahlen ist 8,8. 684 00:34:07,160 --> 00:34:10,179 Diese Funktion verhält sich ziemlich genau das gleiche wie zu erwarten, 685 00:34:10,179 --> 00:34:10,989 auch. 686 00:34:10,989 --> 00:34:13,114 Und ich habe noch eine geöffnet hier oben genannten dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Versuchen Sie, diese erneut. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Ich habe noch eine hier genannte dice1.php, das auch finden, 691 00:34:33,280 --> 00:34:37,440 hat diese Winkel Frage markieren Gleichheitszeichen-Notation in dort, 692 00:34:37,440 --> 00:34:40,659 aber beachten Sie, dass in diesem Fall bin ich Aufruf der Funktion rand, der, wie Sie 693 00:34:40,659 --> 00:34:42,790 könnte erwarten, eine Zufallszahl erzeugt. 694 00:34:42,790 --> 00:34:46,889 "Sie rollte ein," und es ist zu gehen berechnen eine Zufallszahl, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 So dass sie mich Nummer angeben im Bereich von 1 bis 6. 697 00:34:49,989 --> 00:34:53,040 >> Denken Sie daran, dass mod 6 würde mir eine Zahl im Bereich von 0 bis 5, 698 00:34:53,040 --> 00:34:56,630 aber wenn ich die Simulation Würfel rollt, Das ist das, was ich hier mache, 699 00:34:56,630 --> 00:35:00,040 Ich will nicht, diese Würfel, um von 0 gehen bis 5, Ich möchte Würfel, die von 1 bis 6 zu gehen. 700 00:35:00,040 --> 00:35:02,800 Und so ist dies ein Weg, um me im Bereich von 1 bis 6. 701 00:35:02,800 --> 00:35:04,720 Ich tue dies zweimal. 702 00:35:04,720 --> 00:35:08,630 So scheinbar Ich Roll zwei Würfel in diesem Programm. 703 00:35:08,630 --> 00:35:15,210 >> Also werde ich meinen Bildschirm zu löschen, und ich werde php dice1.php zu tun. 704 00:35:15,210 --> 00:35:16,640 Sie rollte A 4 und A 2. 705 00:35:16,640 --> 00:35:19,156 Und wenn ich das Programm wieder, rollte Sie eine 5 und eine 5. 706 00:35:19,156 --> 00:35:21,780 Also jedes Mal, wenn ich das Programm ausführen, Ich erhalte eine unterschiedliche Anzahl, 707 00:35:21,780 --> 00:35:24,280 denn jedes Mal, wenn ich Also, es anzufangen. 708 00:35:24,280 --> 00:35:27,250 Es wird ein neues generiert Set von Zufallszahlen für mich. 709 00:35:27,250 --> 00:35:29,790 >> Also, wenn wir es gewohnt sind laufende Programme aus C, 710 00:35:29,790 --> 00:35:32,520 Wir fahren nach Eingabe ./ das verwendete Name eines Programms, nicht wahr? 711 00:35:32,520 --> 00:35:35,090 Das ist, wie wir alle getan unserer Programme in C so weit. 712 00:35:35,090 --> 00:35:37,555 Wir können dies in PHP als gut tun durch Zugabe von etwas namens 713 00:35:37,555 --> 00:35:40,026 a Kram an die Spitze unseres PHP-Datei. 714 00:35:40,026 --> 00:35:41,400 Ich weiß, es ist eine Art dummes Wort. 715 00:35:41,400 --> 00:35:44,540 Es ist die Abkürzung für Hash-Bang. 716 00:35:44,540 --> 00:35:46,300 Das ist die ersten beiden Zeichen gibt. 717 00:35:46,300 --> 00:35:50,030 Denken Sie daran, wir nennen Ausrufezeichen häufig einen Knall in der Informatik. 718 00:35:50,030 --> 00:35:51,690 Es könnte auch für scharfe Knall sein. 719 00:35:51,690 --> 00:35:53,273 Es gibt ein paar Möglichkeiten, es zu interpretieren. 720 00:35:53,273 --> 00:35:57,320 Aber es ist im Grunde eine besondere Art der Befehl, dass der PHP-Interpreter 721 00:35:57,320 --> 00:36:00,160 versteht, wie, oh, ich will Sie dieses Programm ausführen, 722 00:36:00,160 --> 00:36:05,250 Das ist offensichtlich / user / bin / php, die ist eigentlich, wo der PHP-Interpreter 723 00:36:05,250 --> 00:36:08,590 speziell lebt in unserem System. 724 00:36:08,590 --> 00:36:12,530 So it's--, was hier passiert, ist der Dolmetscher versteht, oh, 725 00:36:12,530 --> 00:36:17,270 Ich bin anscheinend angeblich verwenden in diesem Programm diese Datei ausführen. 726 00:36:17,270 --> 00:36:20,010 Und so ist es Ihnen erlaubt, über den Schritt überspringen 727 00:36:20,010 --> 00:36:22,979 zu müssen, php something.php sagen. 728 00:36:22,979 --> 00:36:25,020 Es gibt einen anderen Fang Hier, nämlich, dass, wenn wir 729 00:36:25,020 --> 00:36:27,320 unsere Programme zu wollen wie erwartet, haben wir 730 00:36:27,320 --> 00:36:30,220 brauchen, um so etwas wie zu tun a Dateiberechtigungen zu ändern. 731 00:36:30,220 --> 00:36:33,380 Und wir werden go-- und wir ein wenig sprechen wenig mehr über Dateiberechtigungsänderungen 732 00:36:33,380 --> 00:36:37,550 in unserem Video-on-MVC, aber es genügt zu sagen, dass dies ist, was Sie tun müssen, 733 00:36:37,550 --> 00:36:42,760 um Ihre .php Dateien ausführbar. 734 00:36:42,760 --> 00:36:49,330 Werfen wir also einen Blick auf diese als unser letztes Beispiel über in CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Also hier in IDE Ich habe zwei Dateien in diesem PHP Verzeichnis, das nicht zu sein scheinen, 736 00:36:53,910 --> 00:36:55,310 genannt .php. 737 00:36:55,310 --> 00:36:58,170 Ich habe eine Funktion namens add-- Ich habe eine Datei namens add3 738 00:36:58,170 --> 00:37:00,650 und eine Datei namens dice2. 739 00:37:00,650 --> 00:37:03,680 Also lassen Sie uns einen kurzen schauen und eröffnen add3. 740 00:37:03,680 --> 00:37:08,300 Und wie Sie zu Beginn zu sehen, meiner Datei Ich habe diesen Kram, oder? 741 00:37:08,300 --> 00:37:11,420 Das Rautenzeichen Ausrufezeichen. 742 00:37:11,420 --> 00:37:15,115 Nun, werden Sie auch vielleicht feststellen, dass aus irgendeinem Grund, 743 00:37:15,115 --> 00:37:16,990 Ich habe keine Syntax mehr hervorhebt, 744 00:37:16,990 --> 00:37:20,198 und das ist, was ich spielte auf frühere, was war, dass, wenn ich meinen Dateinamen 745 00:37:20,198 --> 00:37:23,040 .php, habe ich nicht den Nutzen Syntaxhervorhebung mehr. 746 00:37:23,040 --> 00:37:26,220 Diese Datei wird gerade angerufen add3. 747 00:37:26,220 --> 00:37:30,960 So dass ich es später laufen mit ./ add3 und nicht ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Also die reason-- es ist immer noch fein, ist es immer noch gültig, PHP, 749 00:37:33,680 --> 00:37:37,000 aber es ist nicht hervorgehoben Syntax, weil Diese Datei wird nicht aufgerufen something.php. 750 00:37:37,000 --> 00:37:41,580 Das ist der einzige wirkliche Unterschied hier, plus den Kram. 751 00:37:41,580 --> 00:37:45,170 Also mal sehen, was passiert, wenn Ich versuche, und führen Sie dieses Programm. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, genau wie ich mit C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Add3 Berechtigung verweigert. 754 00:37:53,190 --> 00:37:55,390 Dies ist, was du gehst um zu sehen, wenn Sie vergessen, 755 00:37:55,390 --> 00:37:59,280 um mit dem Befehl chmod ändern die Rechte der Datei. 756 00:37:59,280 --> 00:38:03,845 >> Wie sich herausstellt, regelmäßige PHP Dateien können nicht einfach durchgeführt werden. 757 00:38:03,845 --> 00:38:06,970 Sie können interpretiert werden, aber wir sind hier etwas ein wenig anders zu tun. 758 00:38:06,970 --> 00:38:07,761 Wir Ausführung. 759 00:38:07,761 --> 00:38:12,970 Und so muss ich die Erlaubnis hinzufügen der Ausführung, chmod a + x zu add3. 760 00:38:12,970 --> 00:38:15,680 Dann kann ich ./ add3 sagen. 761 00:38:15,680 --> 00:38:16,860 Bitte geben Sie mir eine Nummer. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Die Summe dieser beiden Zahlen ist 11. 764 00:38:20,490 --> 00:38:26,530 >> In ähnlicher Weise habe ich schon chmoded dice2, so kann ich Sie einfach ./ dice2, 765 00:38:26,530 --> 00:38:31,260 Sie rollte A 1 und A 1, die Sie rollte A 5 und A 4, und so weiter. 766 00:38:31,260 --> 00:38:33,680 >> Also das ist so ziemlich das Idee von einem PHP-Syntax, nicht wahr? 767 00:38:33,680 --> 00:38:35,221 Es gibt eine Menge, um durchzukommen, ich weiß. 768 00:38:35,221 --> 00:38:39,160 Aber hoffentlich jetzt, dass PHP gesehen haben ist nicht wirklich so verschieden von C 769 00:38:39,160 --> 00:38:43,670 und gibt uns wirklich die Fähigkeit die Dinge nehmen eine Kerbe oder zwei. 770 00:38:43,670 --> 00:38:48,230 Wir wissen nicht wirklich Sorgen zu machen, zu viel about-- wir nicht wirklich 771 00:38:48,230 --> 00:38:51,605 zu viel Sorgen zu machen die Details, die wir Low-Level- 772 00:38:51,605 --> 00:38:52,980 musste mit C sorgen sich um, nicht wahr? 773 00:38:52,980 --> 00:38:56,170 Wir können auf der höheren konzentrieren Ebene Zeug, dass PHP 774 00:38:56,170 --> 00:39:01,090 ermöglicht es uns, zu tun und zu nehmen selbstverständlich, dass es für uns arbeiten. 775 00:39:01,090 --> 00:39:04,350 Also es gibt uns die Möglichkeit, jetzt, Übergang von C, PHP, 776 00:39:04,350 --> 00:39:08,280 In den Programmen, die viel mehr sind zu machen komplexe und vielleicht viel mehr robust. 777 00:39:08,280 --> 00:39:13,070 >> So dass ich hoffe, dass Sie Spaß haben Arbeits mit PHP, und ich bin Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Dies ist CS50. 779 00:39:15,050 --> 00:39:17,637