1 00:00:00,000 --> 00:00:04,410 >> [RIPRODUZIONE DI BRANI MUSICALI] 2 00:00:04,410 --> 00:00:12,250 3 00:00:12,250 --> 00:00:15,770 >> SPEAKER 1: Questo è CS50 e questa è la fine della settimana di sette. 4 00:00:15,770 --> 00:00:20,240 Oggi è forse dove siamo davvero l'insegnamento delle lingue. 5 00:00:20,240 --> 00:00:24,100 Abbiamo introdotto nel corso degli ultimi due settimane HTML e CSS, nessuno dei quali 6 00:00:24,100 --> 00:00:25,240 sono linguaggi di programmazione. 7 00:00:25,240 --> 00:00:28,600 E infatti, anche se non abbiamo fatto guardare quasi tutti i tag 8 00:00:28,600 --> 00:00:33,410 che l'HTML viene fornito con e quasi tutti delle proprietà che viene fornito con i CSS, 9 00:00:33,410 --> 00:00:35,007 che una specie di esso per HTML e CSS. 10 00:00:35,007 --> 00:00:36,840 Ci limiteremo a generale iniziare a patto che abbiate 11 00:00:36,840 --> 00:00:39,545 capire le idee generali di tag e attributi, 12 00:00:39,545 --> 00:00:41,850 e le pagine inviati dal client al server. 13 00:00:41,850 --> 00:00:45,280 >> Perché oggi si comincia a guardare altro linguaggio di programmazione, PHP. 14 00:00:45,280 --> 00:00:47,110 Stiamo andando a fare questo super veloce. 15 00:00:47,110 --> 00:00:50,910 Non abbiamo intenzione di insegnare PHP di per sé, proprio come noi non aspiriamo a insegnare 16 00:00:50,910 --> 00:00:52,670 C, di per sé, ma piuttosto programmazione. 17 00:00:52,670 --> 00:00:55,088 E in effetti, uno dei obiettivi per questo corso 18 00:00:55,088 --> 00:00:57,820 non è quello di insegnare C, o HTML, o CSS, o PHP, 19 00:00:57,820 --> 00:01:00,370 o un qualsiasi numero di altri parole di moda o acronimi, 20 00:01:00,370 --> 00:01:03,097 ma piuttosto l'informatica e come programmare fondamentalmente. 21 00:01:03,097 --> 00:01:05,930 E infatti, oggi cominciamo a prendere quelle ruote di formazione fuori tutto il 22 00:01:05,930 --> 00:01:10,600 ulteriormente volando attraverso un linguaggio chiamato PHP, come segue. 23 00:01:10,600 --> 00:01:13,640 >> Ecco ciò che questo linguaggio sembra. 24 00:01:13,640 --> 00:01:17,790 Si scopre che non vi è alcuna necessità di una funzione principale di un programma scritto 25 00:01:17,790 --> 00:01:19,470 in un linguaggio chiamato PHP. 26 00:01:19,470 --> 00:01:22,585 In modo che già suona un po 'più semplice di C, con cui siamo a conoscenza. 27 00:01:22,585 --> 00:01:25,370 Si scopre che, se si vuole dichiarare una variabile, 28 00:01:25,370 --> 00:01:29,470 lo si fa in modo quasi identico a C. Ma c'è chiaramente una differenza qui 29 00:01:29,470 --> 00:01:31,850 quando dichiaro una stringa, o forse due differenze. 30 00:01:31,850 --> 00:01:32,725 Che cosa ha un aspetto diverso? 31 00:01:32,725 --> 00:01:35,810 32 00:01:35,810 --> 00:01:37,160 >> PUBBLICO: Il simbolo del dollaro. 33 00:01:37,160 --> 00:01:39,951 >> SPEAKER 1: Sì, c'è dollaro segno, che non abbiamo mai visto prima. 34 00:01:39,951 --> 00:01:41,451 E che cosa manca? 35 00:01:41,451 --> 00:01:41,950 Sì? 36 00:01:41,950 --> 00:01:42,820 >> PUBBLICO: [incomprensibile] 37 00:01:42,820 --> 00:01:44,403 >> SPEAKER 1: Sì, non c'è alcun tipo di dati. 38 00:01:44,403 --> 00:01:48,410 Così si scopre che PHP è ciò che chiamare un linguaggio debolmente tipizzato, dove 39 00:01:48,410 --> 00:01:49,959 C è fortemente tipizzato. 40 00:01:49,959 --> 00:01:52,500 Debolmente tipizzato significa solo che ci sono diversi tipi di dati, 41 00:01:52,500 --> 00:01:54,470 ci sono stringhe e interi, e carri allegorici. 42 00:01:54,470 --> 00:01:56,330 Ma le cifre del computer che fuori. 43 00:01:56,330 --> 00:01:58,664 È il programmatore umano non c'è bisogno di capirlo. 44 00:01:58,664 --> 00:02:00,580 Quindi tutto quello che dovete fare per dichiarare una variabile è 45 00:02:00,580 --> 00:02:03,220 simbolo del dollaro, il nome del variabile e quindi, per esempio, 46 00:02:03,220 --> 00:02:04,760 tra virgolette, ciao mondo. 47 00:02:04,760 --> 00:02:07,662 >> Beh, questo è ciò che un condizione sembra in PHP. 48 00:02:07,662 --> 00:02:08,328 Le differenze? 49 00:02:08,328 --> 00:02:10,650 50 00:02:10,650 --> 00:02:11,150 No. 51 00:02:11,150 --> 00:02:12,540 Così si scopre questi sono identici. 52 00:02:12,540 --> 00:02:14,665 E si potrebbe avere meno rami o più rami, 53 00:02:14,665 --> 00:02:16,557 ma i giri di sintassi esattamente la stessa. 54 00:02:16,557 --> 00:02:18,390 Espressioni booleane può essere ordinato insieme. 55 00:02:18,390 --> 00:02:20,400 Espressioni booleane possono essere anded insieme. 56 00:02:20,400 --> 00:02:21,430 Hai ancora interruttori. 57 00:02:21,430 --> 00:02:23,790 Anche se non è stato utilizzato questi, questi esistono in C 58 00:02:23,790 --> 00:02:26,020 e sono funzionalmente equivalente in PHP. 59 00:02:26,020 --> 00:02:28,260 >> E infatti, in PHP sono un po 'più potente. 60 00:02:28,260 --> 00:02:32,540 In C, è possibile confrontare certo solo i tipi di dati come int e caratteri, 61 00:02:32,540 --> 00:02:36,320 mentre in PHP si può effettivamente confrontare stringhe complete fledge senza dover 62 00:02:36,320 --> 00:02:38,460 di preoccuparsi per i puntatori e simili. 63 00:02:38,460 --> 00:02:39,430 Quindi, ecco un ciclo for. 64 00:02:39,430 --> 00:02:41,270 Questo è solo pseudocodice codice, se si vuole. 65 00:02:41,270 --> 00:02:43,400 Ma strutturalmente è identico a C. 66 00:02:43,400 --> 00:02:47,520 >> Ecco un ciclo while, pseudocodice therefore-- identico a C. 67 00:02:47,520 --> 00:02:49,390 Ecco un po 'do loop-- identici. 68 00:02:49,390 --> 00:02:51,390 E quindi c'è una specie di questo schema per cui qui 69 00:02:51,390 --> 00:02:54,400 c'è qualche altro sintattica Caratteristiche stiamo davvero andando a vedere. 70 00:02:54,400 --> 00:02:57,340 Qui, infatti, è un bel modo in cui PHP, 71 00:02:57,340 --> 00:02:59,350 se volete iterare su un array, e si 72 00:02:59,350 --> 00:03:02,309 non vogliono saltare attraverso il cerchi mentali e sintattiche di avere 73 00:03:02,309 --> 00:03:05,178 int i è uguale a 0, i meno di n, i plus che plus-- 74 00:03:05,178 --> 00:03:07,040 è solo un sacco di sintassi fastidioso. 75 00:03:07,040 --> 00:03:10,654 Si può dire un po 'di più fluidamente per ogni numeri 76 00:03:10,654 --> 00:03:13,320 il numero, dove in questo caso numeri simbolo del dollaro, sto assumendo, 77 00:03:13,320 --> 00:03:15,400 è come un array chiamato numeri. 78 00:03:15,400 --> 00:03:18,810 E poi io sto assumendo il numero, singolare, sta per essere una variabile. 79 00:03:18,810 --> 00:03:22,940 >> E che il PHP farà per me, come ho iterate su questo ciclo è, ad ogni iterazione, 80 00:03:22,940 --> 00:03:28,450 sta andando aggiornare il numero variabile di l'elemento esimo in numeri, plurale. 81 00:03:28,450 --> 00:03:30,060 Così è solo gestisce tutto questo per me. 82 00:03:30,060 --> 00:03:32,750 Nessun parentesi quadre, non simbolo del dollaro, non punti e virgola. 83 00:03:32,750 --> 00:03:34,117 E 'solo un po' più semplice. 84 00:03:34,117 --> 00:03:35,950 Beh, se si vuole un array, si scopre che 85 00:03:35,950 --> 00:03:38,908 può fare qualcosa di molto simile a C. La sintassi è un po 'diverso. 86 00:03:38,908 --> 00:03:41,000 Ma qui è un array chiamato dollaro firmato numeri. 87 00:03:41,000 --> 00:03:44,261 E io uso, in PHP, piazza staffe, si scopre. 88 00:03:44,261 --> 00:03:47,260 E andiamo a vedere questi di nuovo in Javascript-- un'altra lingua. 89 00:03:47,260 --> 00:03:49,968 Mi basta usare la notazione parentesi quadra per avere un elenco separato da virgole 90 00:03:49,968 --> 00:03:51,530 di numeri interi, in questo caso. 91 00:03:51,530 --> 00:03:53,010 Ma che mi dà un array. 92 00:03:53,010 --> 00:03:56,270 >> Ma ancora più potente in PHP, abbiamo anche quali sono generalmente 93 00:03:56,270 --> 00:03:57,640 chiamato array associativi. 94 00:03:57,640 --> 00:03:59,540 E un sacco di lingue avere questi. 95 00:03:59,540 --> 00:04:03,810 La cosa su array C è che gli indici 96 00:04:03,810 --> 00:04:06,940 per un array, la cosa che utilizzare parentesi quadre via che 97 00:04:06,940 --> 00:04:08,600 si accede elementi, deve essere una cosa? 98 00:04:08,600 --> 00:04:10,620 >> PUBBLICO: [incomprensibile] 99 00:04:10,620 --> 00:04:14,220 >> SPEAKER 1: Devono essere numeri o interi, in particolare da zero in su. 100 00:04:14,220 --> 00:04:17,140 Beh, in PHP, e, si trasforma out, in altre lingue, 101 00:04:17,140 --> 00:04:20,820 si può iniziare ad avere gli indici che non sono numerici. 102 00:04:20,820 --> 00:04:23,880 Ma sono in realtà parole o frasi, in modo che, anziché 103 00:04:23,880 --> 00:04:27,070 cercare di ricordare dove qualcosa è, o memorizzato in una variabile i, 104 00:04:27,070 --> 00:04:31,720 si può effettivamente utilizzare una parola e dire che-- si può dire una parola come questo. 105 00:04:31,720 --> 00:04:34,730 >> Così il segno del dollaro citazione è il il nome di una variabile qui. 106 00:04:34,730 --> 00:04:39,360 Questo è un po 'funky sintassi questo è associare due valori chiave 107 00:04:39,360 --> 00:04:41,250 coppie per questa variabile. 108 00:04:41,250 --> 00:04:45,490 In particolare, questo mi sta dando un array è di lunghezza 2. 109 00:04:45,490 --> 00:04:47,660 Ma gli indici non sono 0 e 1. 110 00:04:47,660 --> 00:04:51,250 Gli indici sono tra virgolette simbolo e preventivo unquote. 111 00:04:51,250 --> 00:04:55,990 E i valori di tali indici, rispettivamente, è FB per Facebook 112 00:04:55,990 --> 00:05:00,360 e $ 79,53, quando ho scorso controllato un prezzo per questo. 113 00:05:00,360 --> 00:05:01,210 >> Che cosa significa? 114 00:05:01,210 --> 00:05:04,136 Ebbene, significa che invece di scrivere codice 115 00:05:04,136 --> 00:05:09,612 come questo, dove ho usato per fare qualcosa come dollaro sign-- o meglio, in C 116 00:05:09,612 --> 00:05:11,070 Non avrei nemmeno un segno di dollaro. 117 00:05:11,070 --> 00:05:13,490 Vorrei fare qualcosa come citazioni e poi 118 00:05:13,490 --> 00:05:18,410 Vorrei fare staffa io ottenga un certo arbitrariamente numericamente il valore indicizzato. 119 00:05:18,410 --> 00:05:21,430 A partire da oggi in PHP, se si vuole arrivare a un certo valore, 120 00:05:21,430 --> 00:05:24,742 noi abbiamo più di sorta espressività semantica. 121 00:05:24,742 --> 00:05:27,450 Solo un modo elegante per dire che possiamo basta chiamare le cose come sono. 122 00:05:27,450 --> 00:05:29,800 >> E se si vuole ottenere a qualcosa simbolo, 123 00:05:29,800 --> 00:05:32,180 ora si fa letteralmente citare il simbolo unquote 124 00:05:32,180 --> 00:05:34,910 tra parentesi quadre anziché la semplice numero. 125 00:05:34,910 --> 00:05:36,450 Quindi è una bella comodità. 126 00:05:36,450 --> 00:05:38,140 E questo è una sorta di esso per ora. 127 00:05:38,140 --> 00:05:40,240 Ci sono mazzi di altre caratteristiche in PHP. 128 00:05:40,240 --> 00:05:43,180 E, infatti, è dotato di PHP il lavello della cucina proverbiale. 129 00:05:43,180 --> 00:05:48,640 Decine, centinaia di funzioni vengono con PHP-- tanti più che è venuto con C. 130 00:05:48,640 --> 00:05:51,360 >> E che non è destinato a sopraffare ma piuttosto aiutare 131 00:05:51,360 --> 00:05:53,900 ti rendi conto che non siamo avere più tempo per scrivere codice 132 00:05:53,900 --> 00:05:55,590 che è una sorta di quaggiù concettualmente. 133 00:05:55,590 --> 00:05:58,465 Ora possiamo solo iniziare a prendere vantaggio di molto più avanzate caratteristiche 134 00:05:58,465 --> 00:05:59,920 che i linguaggi come PHP hanno. 135 00:05:59,920 --> 00:06:02,630 Quindi non dobbiamo preoccuparci in movimento le cose intorno a memoria. 136 00:06:02,630 --> 00:06:05,338 Noi non dobbiamo preoccuparci di malloc e tutti questi livello inferiore, 137 00:06:05,338 --> 00:06:09,390 dettagli potenti che si lotterà con, se non lottare con, pset5, 138 00:06:09,390 --> 00:06:13,380 ma si può cominciare a presto dare per scontato. 139 00:06:13,380 --> 00:06:17,770 >> Infatti, scriviamo un super semplice programma in PHP, come segue. 140 00:06:17,770 --> 00:06:21,550 Ho intenzione di andare in testa CS50 IDE qui, e quello che ho intenzione di fare 141 00:06:21,550 --> 00:06:29,370 è creare un nuovo file, che in modo molto semplice sta per essere chiamato ciao puntino PHP. 142 00:06:29,370 --> 00:06:31,860 Così, invece di punto c, è andando a essere chiamato dot PHP. 143 00:06:31,860 --> 00:06:34,260 E poi in questo file, Posso iniziare a digitare. 144 00:06:34,260 --> 00:06:36,960 Ma risulta che il una cosa che devo sapere 145 00:06:36,960 --> 00:06:41,470 è che qualsiasi file PHP in generale, ha bisogno per iniziare con qualche sintassi speciale. 146 00:06:41,470 --> 00:06:44,570 Simile nello spirito a HTML, ma ancora una volta, PHP è un linguaggio di programmazione, non 147 00:06:44,570 --> 00:06:45,590 un linguaggio di markup. 148 00:06:45,590 --> 00:06:48,700 >> Così ogni file, ed è sorta di stupido guardando lo ammetto. 149 00:06:48,700 --> 00:06:50,480 Aperto staffa, punto interrogativo, PHP. 150 00:06:50,480 --> 00:06:53,060 E questo è solo il modo di lingua per dire, 151 00:06:53,060 --> 00:06:58,400 ehi, computer ecco che arriva un po 'di codice scritto in un linguaggio chiamato PHP. 152 00:06:58,400 --> 00:07:01,900 E poi alla fine del file, fate sorta di sorta di opposto. 153 00:07:01,900 --> 00:07:04,860 Non scrivere PHP di nuovo, basta fare il punto interrogativo, parentesi angolare. 154 00:07:04,860 --> 00:07:08,500 E poi tutto quello che mette dentro di questi due tag, per così dire, 155 00:07:08,500 --> 00:07:11,490 sarà, o dovrebbe essere, il codice PHP. 156 00:07:11,490 --> 00:07:13,180 >> Quindi cerchiamo di fare qualcosa di super semplice. 157 00:07:13,180 --> 00:07:19,370 Ho intenzione di andare avanti e fare stampare def, ciao mondo, backslash n, salvare. 158 00:07:19,370 --> 00:07:27,310 E ora al mio sollecito, ho intenzione di faccio, faccio hello-- no, ho intenzione di fare, 159 00:07:27,310 --> 00:07:28,726 dot taglio su ciao. 160 00:07:28,726 --> 00:07:31,250 No, barra di punti, hm. 161 00:07:31,250 --> 00:07:32,990 Quindi, qualcosa di diverso. 162 00:07:32,990 --> 00:07:36,920 E in effetti, si tratta di una differenza fondamentale tra PHP e linguaggi come C. C 163 00:07:36,920 --> 00:07:38,730 era un cosiddetto linguaggio compilato. 164 00:07:38,730 --> 00:07:40,929 Che cosa ha significato per C da compilare? 165 00:07:40,929 --> 00:07:41,970 Qual è stata l'implicazione? 166 00:07:41,970 --> 00:07:42,898 Già. 167 00:07:42,898 --> 00:07:45,220 >> PUBBLICO: Ha scritto in codice macchina in modo che possa essere eseguito dal computer. 168 00:07:45,220 --> 00:07:46,011 >> SPEAKER 1: Esattamente. 169 00:07:46,011 --> 00:07:49,075 Dobbiamo prima convertire in cosiddetto codice macchina, zero e uno, 170 00:07:49,075 --> 00:07:51,950 prima che possa effettivamente eseguibili e compreso dal computer. 171 00:07:51,950 --> 00:07:52,840 Da Intel all'interno. 172 00:07:52,840 --> 00:07:54,530 Con la CPU all'interno del computer. 173 00:07:54,530 --> 00:07:58,170 PHP, invece, è quello che si chiama un linguaggio interpretato, che 174 00:07:58,170 --> 00:08:02,230 significa che non compilarlo in zero e uno, codice macchina, 175 00:08:02,230 --> 00:08:04,360 voi invece lasciate come codice sorgente. 176 00:08:04,360 --> 00:08:08,130 E tu invece passa come input un programma, un interprete 177 00:08:08,130 --> 00:08:11,960 che qualcun altro ha scritto anni fa, che la comprende 178 00:08:11,960 --> 00:08:14,310 riga per riga, carattere per carattere. 179 00:08:14,310 --> 00:08:16,120 Quindi, in altre parole, gli esseri umani là fuori ha scritto 180 00:08:16,120 --> 00:08:19,670 un programma che avrà un aspetto al vostro codice riga per riga, 181 00:08:19,670 --> 00:08:21,680 e capire cosa il computer dovrebbe fare, 182 00:08:21,680 --> 00:08:25,960 senza convertirlo direttamente a zero e uno. 183 00:08:25,960 --> 00:08:28,370 >> Quindi, se vede un ciclo for, questo cosiddetto interprete 184 00:08:28,370 --> 00:08:30,630 sta per essere come, va bene, dovrei fare qualcosa di nuovo e di nuovo e di nuovo. 185 00:08:30,630 --> 00:08:31,150 Cosa dovrei fare? 186 00:08:31,150 --> 00:08:32,159 Fammi vedere la riga successiva. 187 00:08:32,159 --> 00:08:33,367 Fammi vedere la riga successiva. 188 00:08:33,367 --> 00:08:35,350 E interpreta veramente riga per riga. 189 00:08:35,350 --> 00:08:37,220 Quindi, per eseguirlo, io non uso trucco. 190 00:08:37,220 --> 00:08:39,409 Io non uso dot barra in questo caso. 191 00:08:39,409 --> 00:08:43,530 Io invece faccio PHP, che è il nome di un programma, pseudonimo 192 00:08:43,530 --> 00:08:46,562 Un interprete, che è pre-installato in CS50 IDE, 193 00:08:46,562 --> 00:08:48,770 e ora ho bisogno di passare un argomento della riga di comando, che 194 00:08:48,770 --> 00:08:52,290 è semplicemente il nome del File che voglio interpretare. 195 00:08:52,290 --> 00:08:54,740 O più casualmente, che voglio correre. 196 00:08:54,740 --> 00:08:57,000 E se premete Invio, non l'abbiamo. 197 00:08:57,000 --> 00:08:57,825 Ciao mondo. 198 00:08:57,825 --> 00:08:59,950 Ora si scopre che usato def stampa deliberatamente 199 00:08:59,950 --> 00:09:01,600 per colmare noi da C a PHP. 200 00:09:01,600 --> 00:09:05,150 La maggior parte dei programmatori PHP, come vedrete, non si preoccupano neppure con stampa def. 201 00:09:05,150 --> 00:09:08,290 Hanno appena utilizzano una funzione chiamata stampa, che C non aveva. 202 00:09:08,290 --> 00:09:11,390 E così, se io eseguire di nuovo ora, in realtà si comporta funzionalmente equivalente. 203 00:09:11,390 --> 00:09:13,730 Non posso usare la percentuale s e cento i e così via, 204 00:09:13,730 --> 00:09:16,250 ma ci sono altri modi in PHP di farlo. 205 00:09:16,250 --> 00:09:18,100 Ma questo è solo dire che sintatticamente, 206 00:09:18,100 --> 00:09:21,850 altro che alcune cose strane in su superiore, e alcuni personaggi strani giù 207 00:09:21,850 --> 00:09:25,960 nella parte inferiore, i concetti di oggi programmazione in questo lingua 208 00:09:25,960 --> 00:09:27,860 stanno per essere esattamente lo stesso. 209 00:09:27,860 --> 00:09:30,120 >> In realtà, facciamo un altro esempio. 210 00:09:30,120 --> 00:09:32,520 Quindi ho intenzione di andare avanti e chiudere il file. 211 00:09:32,520 --> 00:09:37,740 Permettetemi di creare un altro che Chiamerò condizioni 1 punto PHP. 212 00:09:37,740 --> 00:09:40,770 Quindi no a zero, perché quello che ho fatto ero guardato indietro un paio di settimane fa, 213 00:09:40,770 --> 00:09:43,490 abbiamo avuto un file chiamato condizioni 1 dot C. E che 214 00:09:43,490 --> 00:09:47,590 Ho fatto è stato convertito nel mio testa, e qui su carta, 215 00:09:47,590 --> 00:09:51,290 e presto sul corso del sito web, riga per riga in PHP. 216 00:09:51,290 --> 00:09:55,520 >> Così nella versione C, abbiamo fatto qualcosa come stringa s ottiene ottenere stringa. 217 00:09:55,520 --> 00:09:58,200 Quindi è un po 'diverso farlo in PHP. 218 00:09:58,200 --> 00:10:01,390 Invece, sto solo andando a fare, o meglio, io 219 00:10:01,390 --> 00:10:05,870 potrebbe aver fatto int n ottiene arrivare int, in questo esempio precedente. 220 00:10:05,870 --> 00:10:12,600 Così, invece di questo, ho intenzione di fare n viene letto la linea, mi piacerebbe un numero intero, 221 00:10:12,600 --> 00:10:13,670 Per favore. 222 00:10:13,670 --> 00:10:15,110 Quindi questo è solo il mio sollecito. 223 00:10:15,110 --> 00:10:17,260 E così si scopre, e Vorrei sapere solo questo 224 00:10:17,260 --> 00:10:20,480 dall'aver letto o visto la funzione prima, le linee di funzione in PHP leggere 225 00:10:20,480 --> 00:10:23,810 prende un argomento che è un prompt per l'uomo, e il suo scopo nella vita 226 00:10:23,810 --> 00:10:26,220 è leggere una riga di testo che lui o lei i tipi della. 227 00:10:26,220 --> 00:10:29,160 E poi che memorizza il testo nella variabile n. 228 00:10:29,160 --> 00:10:32,200 >> E ora potrei voler fare qualcosa come ho fatto settimane fa, in settimana come 229 00:10:32,200 --> 00:10:33,290 uno della classe. 230 00:10:33,290 --> 00:10:36,600 Se n è maggiore di zero, allora, vado 231 00:10:36,600 --> 00:10:42,930 per prendere in prestito che la sintassi abbiamo appena visto, stampa def, hai scelto un numero positivo, 232 00:10:42,930 --> 00:10:44,360 backslash n. 233 00:10:44,360 --> 00:10:49,990 Altrimenti se n è uguale uguale a zero, sono intenzione di andare avanti e dire, stampa def, 234 00:10:49,990 --> 00:10:54,090 hai scelto lo zero backslash n. 235 00:10:54,090 --> 00:10:56,830 Altrimenti, nel caso di specie dovrebbe ovviamente, stampa def, 236 00:10:56,830 --> 00:10:58,620 hai scelto un numero negativo. 237 00:10:58,620 --> 00:11:00,970 >> E possiamo certamente attuare la logica di questa cosa 238 00:11:00,970 --> 00:11:03,390 in un mucchio di diverso modi, ma il punto qui 239 00:11:03,390 --> 00:11:07,210 è che sintatticamente, a malapena qualcosa è nuovo. 240 00:11:07,210 --> 00:11:09,830 E 'solo il simbolo del dollaro e una nuova funzione e riga letta. 241 00:11:09,830 --> 00:11:12,090 Ma fondamentalmente, che cosa c'è di nuovo ora è che sto interpretando questo. 242 00:11:12,090 --> 00:11:13,910 Sto passando come input ad un altro programma. 243 00:11:13,910 --> 00:11:16,620 Quindi, se voglio correre questo, se Non ho fatto alcun errore, 244 00:11:16,620 --> 00:11:20,140 Ho intenzione di eseguire PHP, di condizioni 1 dot PHP, Enter, 245 00:11:20,140 --> 00:11:23,440 Io vado a digitare il numero 50, e supponiamo per ora funziona. 246 00:11:23,440 --> 00:11:25,940 Poiché la logica è la stesse cose come prima settimana. 247 00:11:25,940 --> 00:11:28,020 >> Va bene, allora che è abbastanza deludente, giusto? 248 00:11:28,020 --> 00:11:30,240 Potremmo farlo in qualsiasi numero di lingue. 249 00:11:30,240 --> 00:11:33,200 Facciamo qualcosa molto più potente. 250 00:11:33,200 --> 00:11:35,610 Facciamo problema finitura set five. 251 00:11:35,610 --> 00:11:37,370 Quindi ho intenzione di andare avanti e fare questo. 252 00:11:37,370 --> 00:11:42,920 Ho intenzione di creare un file chiamato dizionario dot PHP, 253 00:11:42,920 --> 00:11:45,424 e inclinato come si potrebbe essere arrampicare giù un sacco di appunti, 254 00:11:45,424 --> 00:11:47,340 le note solo aiutare se si è permesso 255 00:11:47,340 --> 00:11:48,923 implementare problemi impostare cinque in PHP. 256 00:11:48,923 --> 00:11:52,706 Ma staremo a vedere quanto velocemente ora possono implementare lo stesso set di problema. 257 00:11:52,706 --> 00:11:56,830 >> Così nel dizionario puntino PHP, io vado supporre che c'è già 258 00:11:56,830 --> 00:11:58,514 un file nel mondo chiamato correttore ortografico. 259 00:11:58,514 --> 00:12:01,430 E in effetti, ho fatto questo in anticipo, e noi non attraversare questa linea 260 00:12:01,430 --> 00:12:03,596 per linea, ma se siete curioso vuole più tardi e davvero 261 00:12:03,596 --> 00:12:06,250 per avvolgere la vostra mente in tutto il Differenze tra C e PHP, 262 00:12:06,250 --> 00:12:09,030 letteralmente confrontare questo file, speller, dal codice sorgente di oggi 263 00:12:09,030 --> 00:12:11,190 che postiamo più tardi oggi, contro p set 264 00:12:11,190 --> 00:12:15,309 cinque correttore ortografico puntino c che vi diamo, ed è quasi la stessa linea per linea. 265 00:12:15,309 --> 00:12:16,600 Ci sono alcuni altri segni di dollaro. 266 00:12:16,600 --> 00:12:18,330 Un paio di funzioni sono un po 'diverso. 267 00:12:18,330 --> 00:12:20,038 Ma è un bel modo di una sorta di vedere come 268 00:12:20,038 --> 00:12:22,740 tradurre una lingua all'altra. 269 00:12:22,740 --> 00:12:24,812 Ed è la linea quasi identica per la linea. 270 00:12:24,812 --> 00:12:27,770 Ma ho intenzione di ritenere che tale esiste, e quello che ho intenzione di fare qui 271 00:12:27,770 --> 00:12:31,310 è cercare di saltare la vostra mente per reimplementare 272 00:12:31,310 --> 00:12:36,210 la totalità di problema impostato cinque vie più velocemente di quanto si sia fatto finora. 273 00:12:36,210 --> 00:12:39,330 Così, per esempio, ho intenzione di prima dichiarare una variabile globale chiamata dimensioni, 274 00:12:39,330 --> 00:12:40,444 e impostarlo uguale a zero. 275 00:12:40,444 --> 00:12:41,610 Ora che non è molto risparmio. 276 00:12:41,610 --> 00:12:44,170 Le probabilità sono voi implementati dimensioni più o meno lo stesso, 277 00:12:44,170 --> 00:12:48,440 o suggerimento suggerimento, sarà questa sera o domani, semplicemente utilizzando una variabile globale chiamata 278 00:12:48,440 --> 00:12:49,900 dimensioni, e porla uguale a zero. 279 00:12:49,900 --> 00:12:52,660 Che non è una particolarmente sorprendente spoiler. 280 00:12:52,660 --> 00:12:57,180 >> Quindi, quali sono stati i tuoi dati di strutture di scelta, quelli di voi che hanno tuffato in 281 00:12:57,180 --> 00:13:02,170 e leggere le specifiche, le strutture quali dati hanno la maggior parte di voi hanno utilizzato? 282 00:13:02,170 --> 00:13:06,840 Una tabella di hash o provare, forse alcune loro varianti. 283 00:13:06,840 --> 00:13:10,490 Quindi implementare una tabella hash almeno, è una specie di un sacco di righe di codice, 284 00:13:10,490 --> 00:13:10,990 destra? 285 00:13:10,990 --> 00:13:13,700 E non tutti potrebbero essere funzionale a questo punto nella settimana, 286 00:13:13,700 --> 00:13:14,366 ma va bene. 287 00:13:14,366 --> 00:13:19,300 Perché in PHP, se io vogliono una tabella hash, fatto. 288 00:13:19,300 --> 00:13:20,260 Destra? 289 00:13:20,260 --> 00:13:22,610 In modo che variabile che ho appena dichiarato è ovviamente 290 00:13:22,610 --> 00:13:26,180 chiamato dollaro tavolo segno, per l'introduzione prima. 291 00:13:26,180 --> 00:13:28,902 >> Ma ho davvero voglia, a Alla fine della giornata, un array. 292 00:13:28,902 --> 00:13:31,610 Ma non un numericamente indicizzati matrice, perché è come due settimane 293 00:13:31,610 --> 00:13:33,440 roba, quando abbiamo parlato di array. 294 00:13:33,440 --> 00:13:34,850 Voglio una tabella hash. 295 00:13:34,850 --> 00:13:38,070 Ma una tabella hash è davvero solo un modo concreto per dire, 296 00:13:38,070 --> 00:13:40,190 si vuole un array associativo. 297 00:13:40,190 --> 00:13:43,270 Si vuole essere in grado di Tasti associare valori. 298 00:13:43,270 --> 00:13:44,200 Tasti con i valori. 299 00:13:44,200 --> 00:13:45,640 Che cosa è un dizionario, davvero? 300 00:13:45,640 --> 00:13:47,080 Beh, è ​​un intero mazzo di chiavi. 301 00:13:47,080 --> 00:13:50,320 Parole come mela, pera e banana, e tutte queste parole in inglese 302 00:13:50,320 --> 00:13:51,490 che noi consegniamo voi. 303 00:13:51,490 --> 00:13:54,820 >> E i valori che si sono effettivamente l'inserimento nel vostro dizionario 304 00:13:54,820 --> 00:13:57,790 sono o vere, o l'assenza, falso. 305 00:13:57,790 --> 00:14:00,540 In altre parole si sta inserendo un sacco di coppie di valori chiave, 306 00:14:00,540 --> 00:14:03,720 mela, vero, pera, vero, banana, vero. 307 00:14:03,720 --> 00:14:07,446 In modo che quando si recuperano o guardare up che i dati nella tabella hash 308 00:14:07,446 --> 00:14:10,070 con la funzione di controllo, sei o tornare una risposta, 309 00:14:10,070 --> 00:14:13,260 Sì, l'ho trovato nel mio complesso hash tavolo, o no, non è lì, 310 00:14:13,260 --> 00:14:14,540 così si ritorna falso. 311 00:14:14,540 --> 00:14:19,440 >> Quindi, per fare questo, ho solo bisogno di dati struttura come ho proposto prima. 312 00:14:19,440 --> 00:14:22,050 Ho solo bisogno di essere in grado associare parole 313 00:14:22,050 --> 00:14:25,570 come, tra virgolette, simbolo, con un valore simile, vero. 314 00:14:25,570 --> 00:14:27,090 Quindi c'è la mia tabella di hash. 315 00:14:27,090 --> 00:14:28,180 Diciamo effettivamente utilizzare. 316 00:14:28,180 --> 00:14:30,310 Quindi ci sono alcune funzioni Ho bisogno di attuare. 317 00:14:30,310 --> 00:14:33,300 Ho intenzione di andare avanti e mordere fuori una dimensione funzione chiamata. 318 00:14:33,300 --> 00:14:34,390 E non accetta argomenti. 319 00:14:34,390 --> 00:14:36,660 Non devo perdere tempo con la parola, nulla, in PHP. 320 00:14:36,660 --> 00:14:38,770 Sto solo andando a tornare dimensioni. 321 00:14:38,770 --> 00:14:41,287 >> E per inciso, PHP ha questo minorly fastidioso dettaglio, 322 00:14:41,287 --> 00:14:44,620 dove se qualcosa è globale, è necessario dire la funzione in cui si sta utilizzando 323 00:14:44,620 --> 00:14:46,220 esso, hey, questo è una variabile globale. 324 00:14:46,220 --> 00:14:49,330 Così, la stupidità minore, ma si hanno a che fare comunque. 325 00:14:49,330 --> 00:14:50,920 >> E per quanto riguarda il carico? 326 00:14:50,920 --> 00:14:52,990 Ho intenzione di implementare un carico funzione chiamata 327 00:14:52,990 --> 00:14:56,790 che prende in nome di un dizionario, proprio come nel problema impostare cinque. 328 00:14:56,790 --> 00:14:59,554 E prima di procedere, notare che non ho 329 00:14:59,554 --> 00:15:00,970 state digitando abbastanza le stesse cose. 330 00:15:00,970 --> 00:15:06,060 Cosa c'è ovviamente diverso in PHP su come si dichiara una funzione rispetto a C? 331 00:15:06,060 --> 00:15:06,616 Già. 332 00:15:06,616 --> 00:15:07,490 PUBBLICO: [incomprensibile] 333 00:15:07,490 --> 00:15:08,573 SPEAKER 1: Nessun tipo di ritorno. 334 00:15:08,573 --> 00:15:12,350 E in effetti, questo è il caso, PHP nella misura in cui è liberamente digitato, 335 00:15:12,350 --> 00:15:14,190 è anche un po 'sciatto in questo senso. 336 00:15:14,190 --> 00:15:17,680 Non si specifica come il programmatore cosa questa funzione restituisce. 337 00:15:17,680 --> 00:15:20,490 Si dovrà effettivamente guardare il codice per capirlo. 338 00:15:20,490 --> 00:15:22,670 O leggere i commenti o alla documentazione. 339 00:15:22,670 --> 00:15:24,870 Così vantaggi e svantaggi di questo tipo di decisioni. 340 00:15:24,870 --> 00:15:26,750 Ma io ho da dire la parola chiave, la funzione. 341 00:15:26,750 --> 00:15:28,360 E quando impariamo JavaScript un paio di settimane 342 00:15:28,360 --> 00:15:31,026 stiamo andando a vedere la stessa cosa ancora una volta, ma è la stessa idea. 343 00:15:31,026 --> 00:15:34,220 Il nome della funzione, il suo argomento o argomenti o la loro mancanza, ed ora 344 00:15:34,220 --> 00:15:35,630 qui è l'implementazione. 345 00:15:35,630 --> 00:15:38,860 >> Quindi ho intenzione di tagliare alcuni angoli solo per essere drammatico per un momento. 346 00:15:38,860 --> 00:15:40,485 Ma ho intenzione di andare avanti e dire questo. 347 00:15:40,485 --> 00:15:44,890 Questo è come posso caricare un file in un array. 348 00:15:44,890 --> 00:15:47,580 C'è una funzione in PHP file chiamato. 349 00:15:47,580 --> 00:15:49,300 Si passi la nome di un file. 350 00:15:49,300 --> 00:15:53,950 Ti passa indietro un array, dentro di cui è ogni riga dal file. 351 00:15:53,950 --> 00:15:56,480 Da zero, uno, su up per n meno 1 righe. 352 00:15:56,480 --> 00:15:57,210 Questo è tutto, giusto? 353 00:15:57,210 --> 00:15:57,990 Non c'è f lettura. 354 00:15:57,990 --> 00:15:58,826 Non c'è F s. 355 00:15:58,826 --> 00:15:59,700 Non c'è cento s. 356 00:15:59,700 --> 00:16:00,420 Non c'è nessun mal di testa. 357 00:16:00,420 --> 00:16:01,220 Non c'è feof. 358 00:16:01,220 --> 00:16:03,950 Tutta quella roba con cui hai lottato, forse, 359 00:16:03,950 --> 00:16:06,550 con p set quattro e cinque, se ne va. 360 00:16:06,550 --> 00:16:09,450 >> Così ho appena letto quelle righe in il file, e poi si sa che cosa? 361 00:16:09,450 --> 00:16:15,510 Se voglio iterare su quelle parole, Posso fare, per ogni linea, come la linea. 362 00:16:15,510 --> 00:16:19,992 Ricordate che questo era una sorta di intelligente modo di iterazione su un array, l'indice 363 00:16:19,992 --> 00:16:25,090 per indice, e su ogni chiamata iterazione la linea corrente, riga simbolo del dollaro. 364 00:16:25,090 --> 00:16:31,560 E proprio qui ho intenzione di andare a dicono tavolo, staffa, linea, diventa vero. 365 00:16:31,560 --> 00:16:35,880 >> In altre parole, è così che inserire nella mia tabella hash in PHP. 366 00:16:35,880 --> 00:16:38,740 Dico dollaro tavolo segno, che è il mio array associativo che era 367 00:16:38,740 --> 00:16:40,690 vuoto per la riga di codice in alto. 368 00:16:40,690 --> 00:16:42,790 Poi ho indice in esso Non, utilizzando un numero, 369 00:16:42,790 --> 00:16:45,300 ma letteralmente utilizzando il parola chiave che mi interessa. 370 00:16:45,300 --> 00:16:47,730 Forse è mela o pera o banana o qualsiasi altra cosa, 371 00:16:47,730 --> 00:16:51,645 ma in particolare mi indicizzazione in esso piace ho proposto in precedenza. 372 00:16:51,645 --> 00:16:53,770 Prendo il nome del mio array associativo, e poi io 373 00:16:53,770 --> 00:16:56,450 usare tra virgolette nel parentesi quadre con una stringa, 374 00:16:56,450 --> 00:16:58,490 invece di un numero reale. 375 00:16:58,490 --> 00:17:00,250 >> E così il gioco è fatto. 376 00:17:00,250 --> 00:17:01,720 La funzione di carico è fatto. 377 00:17:01,720 --> 00:17:05,119 Una volta che itera ciclo, ho messo tutto nella tabella hash. 378 00:17:05,119 --> 00:17:07,810 Ora piccola rinuncia, c'è un paio di cose che deve essere risolto. 379 00:17:07,810 --> 00:17:10,030 E la versione io postare on-line avrà tutte le sfumature, 380 00:17:10,030 --> 00:17:12,670 ma è soprattutto solo andare a essere un po ' controllo degli errori e alcuni piccoli aggiustamenti. 381 00:17:12,670 --> 00:17:14,044 Ma questo è davvero l'essenza di esso. 382 00:17:14,044 --> 00:17:16,750 Se ora voglio implementare la funzione chiamata 383 00:17:16,750 --> 00:17:19,869 verificare, che si aspetta un parola come argomento, 384 00:17:19,869 --> 00:17:22,099 come potrei fare per fare che? 385 00:17:22,099 --> 00:17:30,020 Beh, io sto semplicemente andando a dire, se all'interno del mio tavolo, in posizione parola, 386 00:17:30,020 --> 00:17:30,652 se è impostato. 387 00:17:30,652 --> 00:17:32,360 Quindi, se ci è-- in realtà, sai una cosa? 388 00:17:32,360 --> 00:17:34,830 Ho intenzione di farlo in un po 'di pseudocodice. 389 00:17:34,830 --> 00:17:36,020 Ma l'idea è la stessa. 390 00:17:36,020 --> 00:17:41,640 Se questo è uguale a true, restituisce true. 391 00:17:41,640 --> 00:17:43,890 Tutto ok. 392 00:17:43,890 --> 00:17:46,851 Else-- puoi tipo vedere questo è going-- per restituire false. 393 00:17:46,851 --> 00:17:47,350 Fatto. 394 00:17:47,350 --> 00:17:49,640 Controllare è fatto. 395 00:17:49,640 --> 00:17:50,940 >> Piuttosto bello, giusto? 396 00:17:50,940 --> 00:17:52,560 E così ciò che è davvero arrivare? 397 00:17:52,560 --> 00:17:53,680 E anche questo, ho tagliato alcuni angoli. 398 00:17:53,680 --> 00:17:56,020 Guardate la versione on-line per tutte le lievi sfumature. 399 00:17:56,020 --> 00:17:57,103 Ma questa è l'essenza di esso. 400 00:17:57,103 --> 00:17:59,080 Indice nella vostra array associativo, pseudonimo 401 00:17:59,080 --> 00:18:02,910 Tabella di hash, vedere se c'è un valore lì, se è impostato a true, in caso affermativo, 402 00:18:02,910 --> 00:18:03,930 return true. 403 00:18:03,930 --> 00:18:05,819 Così abbiamo whittled giù tutta la complessità. 404 00:18:05,819 --> 00:18:07,110 Così sorta di salto di mente, giusto? 405 00:18:07,110 --> 00:18:09,680 Non mi dilungherò finire con scarico, perché in fact-- oh, sai una cosa? 406 00:18:09,680 --> 00:18:11,620 Gia ', finiamo con scarico. 407 00:18:11,620 --> 00:18:18,940 >> Scaricare in una tabella hash potrebbe apparire come la funzione di scarico, di ritorno. 408 00:18:18,940 --> 00:18:19,930 OK, questo è scarico. 409 00:18:19,930 --> 00:18:21,350 Perché non c'è niente scaricare, giusto? 410 00:18:21,350 --> 00:18:22,170 Non c'è malloc. 411 00:18:22,170 --> 00:18:24,280 Non ho esplicitamente chiesto il sistema operativo per qualsiasi cosa. 412 00:18:24,280 --> 00:18:25,571 Ho appena iniziato a utilizzare le variabili. 413 00:18:25,571 --> 00:18:30,510 E così anche questo è una manifestazione di caratteristiche dei linguaggi di livello superiore. 414 00:18:30,510 --> 00:18:32,940 Quindi, di nuovo, la maggior parte di questo termine abbiamo avuto a che fare qui 415 00:18:32,940 --> 00:18:34,280 con C. Livello basso eccellente. 416 00:18:34,280 --> 00:18:35,980 È possibile visualizzare la memoria del computer. 417 00:18:35,980 --> 00:18:38,440 Si può toccare tutto quello che desiderare in RAM del computer, 418 00:18:38,440 --> 00:18:39,440 nel bene e nel male. 419 00:18:39,440 --> 00:18:41,760 >> Quassù, stiamo andando a rinunciare a quel potere. 420 00:18:41,760 --> 00:18:44,730 Ma mio dio, guarda come molto meno codice che ho scritto. 421 00:18:44,730 --> 00:18:47,660 In realtà, se non parlassi e parlando sopra la mia dattilografia, 422 00:18:47,660 --> 00:18:50,190 ci sarebbe stato fatto con questo esempio cinque minuti fa. 423 00:18:50,190 --> 00:18:52,150 Allora qual è il prezzo viene pagato? 424 00:18:52,150 --> 00:18:54,100 Bene, diamo un'occhiata. 425 00:18:54,100 --> 00:18:55,340 Diamo un'occhiata. 426 00:18:55,340 --> 00:18:59,340 Ho intenzione di andare avanti e correre CS50. 427 00:18:59,340 --> 00:19:02,160 Permettetemi innanzitutto di andare in esempi di oggi dove 428 00:19:02,160 --> 00:19:03,970 Ho la directory di testi come prima. 429 00:19:03,970 --> 00:19:08,520 Ho intenzione di eseguire la soluzione che si tratta di un problema chiamato cinque set 430 00:19:08,520 --> 00:19:11,190 correttore ortografico, che è nel racconto di CS50. 431 00:19:11,190 --> 00:19:14,040 >> E ho intenzione di farlo funzionare su qualcosa grande come la Bibbia di Re Giacomo, 432 00:19:14,040 --> 00:19:16,547 solo così che abbiamo davvero messo il soluzioni del personale alla prova. 433 00:19:16,547 --> 00:19:19,130 Ora a volte internet è un po 'più lento, un po' più veloce, 434 00:19:19,130 --> 00:19:20,338 potrebbe richiedere un po 'per scorrere. 435 00:19:20,338 --> 00:19:23,730 Ma ci sono voluti un totale di .56 secondi per il controllo ortografico di Re Giacomo 436 00:19:23,730 --> 00:19:25,150 Bibbia utilizzando la soluzione personale. 437 00:19:25,150 --> 00:19:25,620 Così abbastanza bene. 438 00:19:25,620 --> 00:19:27,786 Distinti potrebbe essere molto più lento, e questo è tutto bene. 439 00:19:27,786 --> 00:19:30,090 Ma è corretto qui. 440 00:19:30,090 --> 00:19:32,440 Ecco, questo è la soluzione personale. 441 00:19:32,440 --> 00:19:34,785 Se vado in e ripulire la versione di PHP. 442 00:19:34,785 --> 00:19:36,990 E ho intenzione di fare un po ' come cottura spettacolo cosa. 443 00:19:36,990 --> 00:19:39,720 Stiamo andando a prendere il codice che ho scritto prima, quindi è perfettamente corretto. 444 00:19:39,720 --> 00:19:42,678 Poiché il codice che ho scritto non sta andando per essere perfettamente corretto solo ora. 445 00:19:42,678 --> 00:19:47,310 Ma se ho eseguito la versione di PHP, cosa devo rinunciare a oggi? 446 00:19:47,310 --> 00:19:49,980 Mi ci sono voluti cinque minuti per implementare p cinque set, rivendico. 447 00:19:49,980 --> 00:19:51,770 Che prezzo ho pagato? 448 00:19:51,770 --> 00:19:52,270 Già. 449 00:19:52,270 --> 00:19:52,937 >> PUBBLICO: Velocità. 450 00:19:52,937 --> 00:19:53,645 SPEAKER 1: Velocità. 451 00:19:53,645 --> 00:19:54,380 Cosa intendi? 452 00:19:54,380 --> 00:19:55,230 >> PUBBLICO: E 'intenzione di richiedere più tempo. 453 00:19:55,230 --> 00:19:55,660 >> SPEAKER 1: Va bene. 454 00:19:55,660 --> 00:19:56,160 Vediamo. 455 00:19:56,160 --> 00:19:59,590 Sta andando a prendere più a lungo, non scrivere, ma per eseguirlo. 456 00:19:59,590 --> 00:20:00,090 Già. 457 00:20:00,090 --> 00:20:00,960 Così proviamo questo. 458 00:20:00,960 --> 00:20:05,720 Così qui ho intenzione di andare avanti e fare PHP di correttore ortografico, e perché il file del 459 00:20:05,720 --> 00:20:06,360 chiamato correttore ortografico. 460 00:20:06,360 --> 00:20:07,580 Quindi non sto correndo il dizionario, richiamo, 461 00:20:07,580 --> 00:20:09,204 Sto facendo funzionare il programma chiamato correttore ortografico. 462 00:20:09,204 --> 00:20:12,450 Ho intenzione di passare nella stessa File, re Giacomo il quinto. 463 00:20:12,450 --> 00:20:14,377 E 'volando. 464 00:20:14,377 --> 00:20:17,210 Questo potrebbe essere solo la velocità di internet, in modo da non leggere troppo in quello. 465 00:20:17,210 --> 00:20:21,680 Ma ci si sente più a lungo di sicuro. 466 00:20:21,680 --> 00:20:23,280 1.26 secondi. 467 00:20:23,280 --> 00:20:25,150 >> Ora che è ancora abbastanza dannatamente veloce, giusto? 468 00:20:25,150 --> 00:20:28,140 E l'unico motivo che sembrava più come tre, o quattro, o cinque 469 00:20:28,140 --> 00:20:30,515 secondi, questo è solo perché Internet stava essendo lento. 470 00:20:30,515 --> 00:20:33,980 Il tempo trascorso del computer era 1.26 secondi, contro penso 0,56. 471 00:20:33,980 --> 00:20:35,880 Così più di due volte più lento. 472 00:20:35,880 --> 00:20:39,170 Ora che è ancora maledettamente veloce, ma è una manifestazione 473 00:20:39,170 --> 00:20:40,860 di, infatti, che il prezzo esatto. 474 00:20:40,860 --> 00:20:43,460 >> Perché stiamo interpretando nel codice riga per riga, 475 00:20:43,460 --> 00:20:46,740 e che il programma PHP sta leggendo il mio codice dall'alto verso il basso, da sinistra a destra, 476 00:20:46,740 --> 00:20:47,940 ha a che fare più pensare. 477 00:20:47,940 --> 00:20:50,430 Deve tipo di conversione dentro di sé 478 00:20:50,430 --> 00:20:53,464 alla relativa macchina codice al volo, per così dire, 479 00:20:53,464 --> 00:20:55,380 anche se la meccanica sono un po 'diverso. 480 00:20:55,380 --> 00:20:59,430 Invece di alimentazione alla Intel CPU gli zeri prime e quelli 481 00:20:59,430 --> 00:21:00,930 che capisce nativamente. 482 00:21:00,930 --> 00:21:04,110 >> Quindi assolutamente, giù le mani, abbiamo pagato un prezzo. 483 00:21:04,110 --> 00:21:09,120 E il codice scritto in un linguaggio come PHP tende ad essere più lento. 484 00:21:09,120 --> 00:21:10,050 Ma il mio dio. 485 00:21:10,050 --> 00:21:12,740 Così ora quando il controllo ortografico lima, spendo un extra 0,7 486 00:21:12,740 --> 00:21:17,280 o almeno così secondi contro 20 ore per l'attuazione un veloce controllo ortografico, giusto? 487 00:21:17,280 --> 00:21:18,397 E 'una specie di un compromesso. 488 00:21:18,397 --> 00:21:20,980 E se si sta appena iniziando p set di cinque, potrebbe non essere di 20 ore. 489 00:21:20,980 --> 00:21:22,188 Potrebbe essere molto meno di quello. 490 00:21:22,188 --> 00:21:23,600 Ma è un compromesso, per davvero. 491 00:21:23,600 --> 00:21:27,820 E se si sta eseguendo codice su davvero grande insiemi di dati, o su hardware ancora più antica, 492 00:21:27,820 --> 00:21:32,650 questi tipi di differenze può certamente aggiungere fino. 493 00:21:32,650 --> 00:21:34,880 >> Tutte le domande finora? 494 00:21:34,880 --> 00:21:35,617 Già. 495 00:21:35,617 --> 00:21:36,492 >> PUBBLICO: [incomprensibile] 496 00:21:36,492 --> 00:21:38,187 497 00:21:38,187 --> 00:21:39,978 SPEAKER 1: Siamo spiacenti, si può si dice che una volta di più? 498 00:21:39,978 --> 00:21:40,853 PUBBLICO: [incomprensibile] 499 00:21:40,853 --> 00:21:43,326 500 00:21:43,326 --> 00:21:44,700 SPEAKER 1: si sta dando il tempo. 501 00:21:44,700 --> 00:21:45,283 Bene, quindi sì. 502 00:21:45,283 --> 00:21:47,322 Si sta salvando tempo non dovendo compilare, 503 00:21:47,322 --> 00:21:48,530 se è questo che stai chiedendo. 504 00:21:48,530 --> 00:21:50,710 E infatti, in CS50, la maggior parte dei programmi, 505 00:21:50,710 --> 00:21:53,668 anche se potrebbe richiedere un po ' a scrivere, sono relativamente breve. 506 00:21:53,668 --> 00:21:56,860 Pochi dozzina, poche centinaia di righe di codice, e quindi compilare abbastanza rapidamente. 507 00:21:56,860 --> 00:21:58,470 Ma quando si inizia scrittura di programmi più grandi, 508 00:21:58,470 --> 00:22:01,511 come se sei Microsoft o sei Google e la scrittura davvero grandi programmi 509 00:22:01,511 --> 00:22:05,360 in C o C ++, né parimenti compilato lingue, potrebbero prendere molti secondi, 510 00:22:05,360 --> 00:22:08,577 o anche minuti o più a compilare milioni di linee di codice. 511 00:22:08,577 --> 00:22:10,660 E anche lì, che differenza sta per aggiungere. 512 00:22:10,660 --> 00:22:12,840 >> Ed infatti, una volta che transizione oggi, nello stesso giorno 513 00:22:12,840 --> 00:22:15,910 oggi, alla programmazione web utilizzando PHP, sei 514 00:22:15,910 --> 00:22:18,460 andando a trovare solo in modo molto più piacevole di scrivere codice 515 00:22:18,460 --> 00:22:21,501 quando non si hanno a che fare questi stupidi passi come modifica al tuo terminale 516 00:22:21,501 --> 00:22:24,202 finestra, tipo fanno ciao, re eseguirlo, ricaricare la finestra. 517 00:22:24,202 --> 00:22:25,910 Proprio così tanti stupidi passaggi meccanici che 518 00:22:25,910 --> 00:22:28,480 appena ottenere nel modo di fare l'interessante, il lavoro divertente. 519 00:22:28,480 --> 00:22:31,450 E infatti gettiamo via tutto con PHP. 520 00:22:31,450 --> 00:22:34,960 E possiamo interagire con più rapidamente. 521 00:22:34,960 --> 00:22:35,495 Già. 522 00:22:35,495 --> 00:22:36,370 PUBBLICO: [incomprensibile] 523 00:22:36,370 --> 00:22:40,294 524 00:22:40,294 --> 00:22:40,960 SPEAKER 1: Certo. 525 00:22:40,960 --> 00:22:42,876 Posso chiarire che cosa significa essere interpretati? 526 00:22:42,876 --> 00:22:45,870 Quando si compila una lingua come il C, scende 527 00:22:45,870 --> 00:22:48,140 come abbiamo detto a macchina codice, zero e uno. 528 00:22:48,140 --> 00:22:51,860 E Intel ha deciso anni fa che alcuni modelli di zero e uno 529 00:22:51,860 --> 00:22:56,220 rappresentare aggiunta o sottrazione, o la stampa, o di altre operazioni di base. 530 00:22:56,220 --> 00:23:00,250 Nel mondo di un linguaggio interpretato come PHP, o JavaScript, o Python, 531 00:23:00,250 --> 00:23:03,120 o Ruby, o mazzi di altri, invece qualcuno 532 00:23:03,120 --> 00:23:05,120 una ha scritto interpreter-- in questo caso, 533 00:23:05,120 --> 00:23:09,770 è anche chiamato PHP, identico al nome del language-- che essenzialmente 534 00:23:09,770 --> 00:23:13,840 ha un grande anello in esso che scorre su tutte le righe del codice 535 00:23:13,840 --> 00:23:18,170 che mi nutro come input, come ciao dot PHP, o il punto dizionario PHP. 536 00:23:18,170 --> 00:23:21,760 >> E allora si può pensare di loro grande ciclo come avente un sacco di condizioni. 537 00:23:21,760 --> 00:23:26,340 E queste condizioni dicono, se il umano ha scritto la parola chiave per, 538 00:23:26,340 --> 00:23:28,470 iniziare a fare il suo codice ancora e ancora. 539 00:23:28,470 --> 00:23:31,360 O se il umano ha scritta la riga di codice, 540 00:23:31,360 --> 00:23:34,880 se, solo eseguire il loro riga successiva condizionale. 541 00:23:34,880 --> 00:23:37,740 Quindi è davvero come interpretare in un senso umano, riga 542 00:23:37,740 --> 00:23:39,660 per riga, e che prende appena il tempo. 543 00:23:39,660 --> 00:23:41,340 Ci vuole testa. 544 00:23:41,340 --> 00:23:44,189 E così che è una prezzo-- buono interrogo paghiamo. 545 00:23:44,189 --> 00:23:46,480 Allora, facciamo un altro demo che è un po 'più drammatico. 546 00:23:46,480 --> 00:23:51,160 Vi è, direi, un ballpark questo a una probabilità del 90% di fallire orribilmente, 547 00:23:51,160 --> 00:23:53,869 ma sarete stupiti con probabilità 10%. 548 00:23:53,869 --> 00:23:55,660 Così ogni anno cerchiamo per fare questo, per cui noi 549 00:23:55,660 --> 00:23:59,061 provare a scrivere un programma che attraversa problema set a zero, per il quale hai 550 00:23:59,061 --> 00:24:02,060 presentate i vostri numeri di telefono e un molte altre informazioni demografiche, 551 00:24:02,060 --> 00:24:06,030 e noi a livello di codice inviare un messaggio di testo. 552 00:24:06,030 --> 00:24:08,540 E poi il telefono di tutti comincia a suonare o vibrare, 553 00:24:08,540 --> 00:24:11,460 ed è semplicemente incredibile, perché bene, guardare a ciò che i computer possono fare. 554 00:24:11,460 --> 00:24:13,840 >> Ciò funziona correttamente raramente a quanto pare, in gran parte 555 00:24:13,840 --> 00:24:16,800 perché io di solito messo in blacklist da Gmail o qualche altro servizio 556 00:24:16,800 --> 00:24:19,630 per realtà cercando di fare questo su scala. 557 00:24:19,630 --> 00:24:24,940 Ma cosa buffa è troppo, dal momento che non hanno tutti qui oggi, 558 00:24:24,940 --> 00:24:27,690 divertimento fatto l'ultima volta che ci siamo provato questo due anni fa, 559 00:24:27,690 --> 00:24:30,870 Credo di aver scritto un programma che sedeva in una iterazione ciclo 560 00:24:30,870 --> 00:24:34,040 su tutti gli studenti della classe, e ciascuno di loro un messaggio di testo, 561 00:24:34,040 --> 00:24:37,534 e ha detto qualcosa di simile, perché non sei a lezione? 562 00:24:37,534 --> 00:24:39,170 Amore, CS50 bot. 563 00:24:39,170 --> 00:24:42,580 >> Non avete idea di quante scuse e-mail sorta di dolorose 564 00:24:42,580 --> 00:24:46,970 Ho ricevuto in risposta dal n meno 100 persone che non erano qui 565 00:24:46,970 --> 00:24:47,960 quel giorno. 566 00:24:47,960 --> 00:24:52,116 E ancora più divertente, più vergognoso tutta-- si sa, mettiamola là fuori. 567 00:24:52,116 --> 00:24:53,740 E 'già in video qualche anno fa. 568 00:24:53,740 --> 00:24:56,810 Così si vedrà presto me scrivere un ciclo for, per cui 569 00:24:56,810 --> 00:25:00,640 è molto facile scrivere un bug in che per ciclo, in modo che la prima volta 570 00:25:00,640 --> 00:25:02,800 attraverso il loop, inviare un messaggio di testo. 571 00:25:02,800 --> 00:25:06,190 >> La seconda volta attraverso il ciclo I dovrebbe avere inviato un altro messaggio di testo, 572 00:25:06,190 --> 00:25:08,250 e poi un altro testo messaggio, e un altro. 573 00:25:08,250 --> 00:25:11,490 Ma si scopre se si commette un errore di battitura durante la programmazione, a volte si 574 00:25:11,490 --> 00:25:14,460 in grado di scrivere programmi che inviano uno messaggio di testo, quindi due messaggi di testo, 575 00:25:14,460 --> 00:25:18,742 poi tre messaggi di testo a tutti che ha già ricevuto un messaggio di testo. 576 00:25:18,742 --> 00:25:21,450 E come sapete, fare qualcosa, oltre a qualcosa, oltre a qualcosa, 577 00:25:21,450 --> 00:25:25,910 oltre a qualcosa, è grande o di un sacco di messaggi di testo, o n squadrato, 578 00:25:25,910 --> 00:25:29,830 o $ 0,10 un messaggio di testo, $ 20.000. 579 00:25:29,830 --> 00:25:33,700 >> Per fortuna mi ha colpito Control-C prima che è capitato, ma mi devo almeno una 580 00:25:33,700 --> 00:25:37,550 dei suoi predecessori $ 20 per la 200 alcuni messaggi di testo strano che, 581 00:25:37,550 --> 00:25:40,450 non solo è andato al suo telefono, ma Inoltre è stato come un vecchio telefono cellulare a conchiglia 582 00:25:40,450 --> 00:25:43,520 così come spinto fuori della sua memoria ogni altro testo personali 583 00:25:43,520 --> 00:25:45,930 messaggio che aveva effettivamente ottenuto. 584 00:25:45,930 --> 00:25:49,250 Quindi abbiamo un obiettivo oggi, non farlo. 585 00:25:49,250 --> 00:25:50,620 Forse attivare la modalità aereo. 586 00:25:50,620 --> 00:25:51,120 Tutto ok. 587 00:25:51,120 --> 00:25:56,590 Quindi cerchiamo di andare in un programma qui callled-- 588 00:25:56,590 --> 00:25:59,060 che chiamerò testo puntino PHP. 589 00:25:59,060 --> 00:26:01,074 E in anticipo, ho due file qui. 590 00:26:01,074 --> 00:26:06,030 Ho fatto un file solo per il personale, che ha ottenuto tutte le informazioni del personale, tutti i nomi 591 00:26:06,030 --> 00:26:07,260 dal sito web del corso. 592 00:26:07,260 --> 00:26:09,756 E poi per ora ho appena messo alcuni numeri falsi 555-1212. 593 00:26:09,756 --> 00:26:11,380 Quindi questi non sarebbe in realtà andare da nessuna parte. 594 00:26:11,380 --> 00:26:15,140 Ma bando l'interno di questo file CSV, che abbiamo parlato brevemente prima 595 00:26:15,140 --> 00:26:16,540 nel contesto del file di IO. 596 00:26:16,540 --> 00:26:18,730 >> Che cosa è un file CSV? 597 00:26:18,730 --> 00:26:19,970 Separati da virgola variabili. 598 00:26:19,970 --> 00:26:24,400 E questo è un po 'come un database leggero, se si vuole. 599 00:26:24,400 --> 00:26:28,650 C'è una specie di specie di quattro colonne in questo file, e non frastagliata, 600 00:26:28,650 --> 00:26:32,400 ma le virgole essenzialmente rappresentano le colonne nel file. 601 00:26:32,400 --> 00:26:35,400 La prima colonna è il TF o il nome di CA. 602 00:26:35,400 --> 00:26:37,800 Seconda colonna è il loro cognome. 603 00:26:37,800 --> 00:26:39,820 La terza colonna è il loro numero di telefono. 604 00:26:39,820 --> 00:26:44,760 E quarta colonna è-- apparentemente quarta colonna è apparentemente quello che? 605 00:26:44,760 --> 00:26:45,870 OK, quindi è il loro elemento portante. 606 00:26:45,870 --> 00:26:47,180 Così Verizon, o Sprint, o cosa non. 607 00:26:47,180 --> 00:26:48,620 E se io misspoke prima, CSV. 608 00:26:48,620 --> 00:26:51,800 Comma Separated Values ​​è CSV qui. 609 00:26:51,800 --> 00:26:54,260 >> Cosa posso fare con questo? 610 00:26:54,260 --> 00:26:56,940 Beh questo è solo un grande file di testo, ed è una specie di lungo, giusto? 611 00:26:56,940 --> 00:26:58,690 Ti piace questa sta per essere un po 'fastidioso. 612 00:26:58,690 --> 00:27:03,510 E si scopre, però, che se io desidera inviare un messaggio di testo a, diciamo 613 00:27:03,510 --> 00:27:05,180 Alex dire qui. 614 00:27:05,180 --> 00:27:09,690 Lasciami andare nel mio browser e uscire dalla modalità a schermo intero 615 00:27:09,690 --> 00:27:11,660 solo così posso passare avanti e indietro. 616 00:27:11,660 --> 00:27:20,280 Si scopre, vediamo, se vado in qui, e accedere a Gmail, tutto a posto. 617 00:27:20,280 --> 00:27:22,950 Non guardare questa parte. 618 00:27:22,950 --> 00:27:23,880 Appena riesco a vedere. 619 00:27:23,880 --> 00:27:26,551 620 00:27:26,551 --> 00:27:28,800 naturalmente il livestream può continuo a vedere quello che sto facendo. 621 00:27:28,800 --> 00:27:29,360 Tutto ok. 622 00:27:29,360 --> 00:27:31,850 >> Così qui è solo con Gmail Racconto di John Harvard. 623 00:27:31,850 --> 00:27:34,000 Quindi, se voglio inviare un messaggio di testo a Alex, 624 00:27:34,000 --> 00:27:35,530 Posso naturalmente comporre un messaggio. 625 00:27:35,530 --> 00:27:38,410 E si scopre, e non ho testato con Alex prima qui, 626 00:27:38,410 --> 00:27:42,260 in modo da poter aggiungere un certo dominio nome ai numeri di telefono delle persone, 627 00:27:42,260 --> 00:27:45,850 perché esiste nel mondo cose chiamati SMS ai gateway e-mail. 628 00:27:45,850 --> 00:27:50,000 Che è un modo elegante per dire tutto di noi che hanno telefoni cellulari che 629 00:27:50,000 --> 00:27:53,200 hanno numeri di telefono, naturalmente, ci probabilmente è per il tuo operatore, 630 00:27:53,200 --> 00:27:56,840 un certo suffisso come a Vtext.com per messaggio di testo Verizon 631 00:27:56,840 --> 00:28:00,320 dot com, che è possibile aggiungere alla vostra proprio numero di telefono personale, e quindi 632 00:28:00,320 --> 00:28:03,540 voi o gli amici, oi tuoi genitori possono ti testo in quel particolare indirizzo. 633 00:28:03,540 --> 00:28:07,380 >> E Verizon ha un server, una e-mail Server, che dopo aver ricevuto questa e-mail, 634 00:28:07,380 --> 00:28:11,180 guarda la parte numerica e poi utilizza qualunque speciale industria magia 635 00:28:11,180 --> 00:28:14,540 devono inviare effettivamente fuori sopra le onde radio per il tuo cellulare particolare 636 00:28:14,540 --> 00:28:15,040 telefono. 637 00:28:15,040 --> 00:28:18,030 Ora, questo è bello perché non lo faccio davvero sapere come inviare un messaggio di testo 638 00:28:18,030 --> 00:28:20,460 o scrivere il codice ancora per il mio cellulare, 639 00:28:20,460 --> 00:28:23,580 e si potrebbe fare esattamente questo per un progetto finale, ma per ora tutto 640 00:28:23,580 --> 00:28:24,770 Che ho è il mio computer portatile qui. 641 00:28:24,770 --> 00:28:29,830 Quindi voglio iterare su che CSV file riga per riga, per linea, per linea, 642 00:28:29,830 --> 00:28:35,160 afferrare ciascuno dei numeri di telefono del personale, e il loro vettore e programatically, 643 00:28:35,160 --> 00:28:39,770 concatenare, cioè collegare il telefono numero con il nome di dominio appropriato 644 00:28:39,770 --> 00:28:40,820 e quindi inviare una e-mail. 645 00:28:40,820 --> 00:28:41,940 >> Ecco, questo è un sacco di passi. 646 00:28:41,940 --> 00:28:45,530 E buona fortuna a farlo in C. È un incubo di una situazione 647 00:28:45,530 --> 00:28:48,350 per aprire un file, per leggerlo linea per linea, per riga, mentre 648 00:28:48,350 --> 00:28:51,100 stanno vedendo, o potrebbe presto vedere con il problema di set di cinque, se non 649 00:28:51,100 --> 00:28:53,560 problema fissato quattro, e poi per concatenare dinamicamente 650 00:28:53,560 --> 00:28:57,020 due stringhe, perché in C, di prendere due stringhe e combinarli, 651 00:28:57,020 --> 00:29:00,900 ciò che si fa minimamente bisogno di fare più probabile? 652 00:29:00,900 --> 00:29:03,020 Hai bisogno di dichiarare più memoria, giusto? 653 00:29:03,020 --> 00:29:04,710 E chiedere, malloc, posso avere più memoria? 654 00:29:04,710 --> 00:29:07,060 Così posso mettere la metà di questa qui, la metà di questo qui. 655 00:29:07,060 --> 00:29:08,150 E 'solo così tanti passi. 656 00:29:08,150 --> 00:29:10,310 E a quel punto hai perso interesse per il piccolo demo stupido 657 00:29:10,310 --> 00:29:11,851 dove si fanno bip telefono di tutti. 658 00:29:11,851 --> 00:29:14,590 Facciamo questo tipo di PHP stile, per cui dobbiamo solo 659 00:29:14,590 --> 00:29:16,210 iniziare a utilizzare più di quel lavandino della cucina. 660 00:29:16,210 --> 00:29:18,050 >> E le idee sono fondamentalmente la stessa, 661 00:29:18,050 --> 00:29:20,710 ma non dobbiamo preoccuparci troppo di molto su tale livello inferiore. 662 00:29:20,710 --> 00:29:22,950 Così vediamo come potrei andare a fare questo. 663 00:29:22,950 --> 00:29:26,664 E proprio così che io non ripetere gli errori del passato, 664 00:29:26,664 --> 00:29:28,330 Ho scritto alcune note per me qui. 665 00:29:28,330 --> 00:29:31,070 E vediamo se mi ci posso camminare attraverso alcuni dei passi fondamentali, 666 00:29:31,070 --> 00:29:33,861 e poi per amore di volta ce la faremo forse tagliare alcuni angoli alla fine. 667 00:29:33,861 --> 00:29:38,007 Ho intenzione di andare avanti e fare aprire Staffa PHP per avviare questo file. 668 00:29:38,007 --> 00:29:39,590 E ho intenzione di andare avanti e fare questo. 669 00:29:39,590 --> 00:29:41,490 Handle di file, come avrete presto vedere, in realtà 670 00:29:41,490 --> 00:29:44,790 chiama una funzione chiamata f aperto. 671 00:29:44,790 --> 00:29:46,280 E ricordi che questo apre un file. 672 00:29:46,280 --> 00:29:48,800 E la citazione, unquote, R significa ciò, ancora una volta? 673 00:29:48,800 --> 00:29:49,800 Basta aprire in lettura. 674 00:29:49,800 --> 00:29:51,210 Ora, in p set per, avete fatto queste cose. 675 00:29:51,210 --> 00:29:54,500 E gestire potrebbe essere qualsiasi cosa, fu, bar, bas, qualsiasi nome di variabile. 676 00:29:54,500 --> 00:29:57,470 Ma generalmente un computer scienziato chiamerebbe un file aperto, 677 00:29:57,470 --> 00:30:00,962 dando un handle di file, qualcosa a cui aggrapparsi per così dire. 678 00:30:00,962 --> 00:30:02,670 Sto solo andando a fare qualche controllo degli errori. 679 00:30:02,670 --> 00:30:07,260 Quindi, se il manico è falso, proprio come in C, ho intenzione di fare qualcosa di simile, 680 00:30:07,260 --> 00:30:09,545 Impossibile aprire il file, backslash n. 681 00:30:09,545 --> 00:30:11,420 E poi sto solo andando di andare avanti e uscire. 682 00:30:11,420 --> 00:30:14,340 E si scopre, in PHP, Io non sono all'interno di una funzione. 683 00:30:14,340 --> 00:30:16,160 Non c'è alcuna funzione principale qui. 684 00:30:16,160 --> 00:30:17,450 Quindi io non ritorno, di per sé. 685 00:30:17,450 --> 00:30:18,120 Esco. 686 00:30:18,120 --> 00:30:19,619 Che è essenzialmente la stessa cosa. 687 00:30:19,619 --> 00:30:22,510 E sto uscendo con un y probabilmente. 688 00:30:22,510 --> 00:30:24,220 Un mezzo solo un errore di qualche tipo. 689 00:30:24,220 --> 00:30:25,580 E 'diverso da zero, quindi è un errore. 690 00:30:25,580 --> 00:30:30,220 >> Va bene, quindi se io sono qui ora nel mio programma ho aperto il file. 691 00:30:30,220 --> 00:30:34,250 Ho intenzione di andare avanti e dichiarare un array chiamato indirizzi, 692 00:30:34,250 --> 00:30:38,610 e in C avrei dovuto conoscere il dimensione della matrice in anticipo, giusto? 693 00:30:38,610 --> 00:30:41,910 O avrei bisogno di dichiararlo è un puntatore, e quindi utilizzare malloc. 694 00:30:41,910 --> 00:30:44,720 E poi ogni volta che leggo attraverso un'altra riga nel file, 695 00:30:44,720 --> 00:30:46,620 Ho intenzione di bisogno di malloc più memoria, malloc più memoria. 696 00:30:46,620 --> 00:30:47,703 Questo è un dolore al collo. 697 00:30:47,703 --> 00:30:50,950 E per fortuna, PHP e Ruby, e Python, e JavaScript, che 698 00:30:50,950 --> 00:30:53,880 crescerà gli array automaticamente per voi. 699 00:30:53,880 --> 00:30:54,830 Niente più malloc. 700 00:30:54,830 --> 00:30:56,227 Non più gestione della memoria. 701 00:30:56,227 --> 00:30:57,560 Il computer si occupa di questo. 702 00:30:57,560 --> 00:31:00,330 Ma il prezzo da pagare. 703 00:31:00,330 --> 00:31:01,350 E 'un po' più lento. 704 00:31:01,350 --> 00:31:03,190 E per un programma come questo non stiamo andando a notare. 705 00:31:03,190 --> 00:31:04,720 Stiamo per inviare 100 messaggi di testo. 706 00:31:04,720 --> 00:31:06,136 Per esempio non andare a sentirlo. 707 00:31:06,136 --> 00:31:08,430 IT inizia davvero solo importa la lingua che preferisci 708 00:31:08,430 --> 00:31:11,490 quando i vostri dati o programmi ottenere davvero, davvero considerevole, 709 00:31:11,490 --> 00:31:14,120 come sarà il caso più con la nostra roba web based. 710 00:31:14,120 --> 00:31:15,450 >> Ma per ora facciamo andare avanti. 711 00:31:15,450 --> 00:31:20,120 Mentre si scopre c'è un la funzione in C chiamata F CSV. 712 00:31:20,120 --> 00:31:24,570 File ottenere CSV, che prende un presentare maniglia come argomento, 713 00:31:24,570 --> 00:31:28,810 e si procede poi, fila, da fila, per riga, a leggere in una riga. 714 00:31:28,810 --> 00:31:30,964 Quindi è solo legge una riga di testo dal file. 715 00:31:30,964 --> 00:31:34,130 Ma cosa c'è di bello su questa funzione, esso non solo dammi una riga di testo. 716 00:31:34,130 --> 00:31:37,320 Sembra per quelle virgole, e analizza le righe. 717 00:31:37,320 --> 00:31:41,740 E per analizzare la linea di mezzi per dividere su determinati valori in questo contesto. 718 00:31:41,740 --> 00:31:45,510 >> In altre parole, il simbolo del dollaro fila è una variabile che è 719 00:31:45,510 --> 00:31:47,010 intenzione di darmi un po 'di indici. 720 00:31:47,010 --> 00:31:49,635 Questo sarà il prima colonna nella mia CSV. 721 00:31:49,635 --> 00:31:52,510 Questo sarà il secondo colonna, questo sarà il terzo, 722 00:31:52,510 --> 00:31:53,968 e questo sarà il quarto. 723 00:31:53,968 --> 00:31:57,440 Perché richiamo, e Excel la non cooperare l'ultima volta che abbiamo fatto questo, 724 00:31:57,440 --> 00:32:03,350 ma se scarico personale punteggiano CSV. 725 00:32:03,350 --> 00:32:04,940 Ops, non rinominare. 726 00:32:04,940 --> 00:32:09,120 Se scarico puntino personale CSV, e provare ad aprire esso, 727 00:32:09,120 --> 00:32:12,510 Ho già registered-- oh non ha aggiornato Excel dall'ultima volta. 728 00:32:12,510 --> 00:32:15,880 Vedrai che a puntino personale CSV, ho quattro colonne. 729 00:32:15,880 --> 00:32:18,720 Così, quando ho letto nella prima fila per Abby qui, 730 00:32:18,720 --> 00:32:23,582 simbolo del dollaro fila 0 è Abby, simbolo del dollaro fila uno è Lione, 731 00:32:23,582 --> 00:32:27,740 simbolo del dollaro fila due è il suo numero, e poi portante del suo telefono. 732 00:32:27,740 --> 00:32:28,410 >> Ecco, questo è tutto. 733 00:32:28,410 --> 00:32:30,740 E questo è bello, perché mi non devono ora capire 734 00:32:30,740 --> 00:32:32,800 dove tutte quelle virgole realmente sono. 735 00:32:32,800 --> 00:32:35,300 Quindi ho intenzione di andare avanti e fare questo, dal momento che la definizione, 736 00:32:35,300 --> 00:32:38,960 Io vado a dire che il suo nome è in fascia fila a zero, come promesso. 737 00:32:38,960 --> 00:32:41,150 E ho intenzione di grab-- e in realtà, sai una cosa? 738 00:32:41,150 --> 00:32:42,780 Io non ho intenzione di preoccuparsi il suo nome, in questo caso. 739 00:32:42,780 --> 00:32:43,988 Ho intenzione di mantenere più semplice. 740 00:32:43,988 --> 00:32:48,610 Ho intenzione di fare il suo numero è nel supporto a due di fila, credo. 741 00:32:48,610 --> 00:32:50,510 E la sua carriera era in cui? 742 00:32:50,510 --> 00:32:53,405 Terza fila, uno sopra. 743 00:32:53,405 --> 00:32:54,280 Quindi niente di nuovo lì. 744 00:32:54,280 --> 00:32:56,770 E 'solo a zero l'indicizzazione in un array. 745 00:32:56,770 --> 00:32:58,760 >> E ora, ho intenzione di fare quanto segue. 746 00:32:58,760 --> 00:33:03,930 Se il vettore è uguale uguale AT & T-- Sto solo andando ad avere un loop-- 747 00:33:03,930 --> 00:33:06,790 Voglio creare una e-mail indirizzo che assomiglia a questo. 748 00:33:06,790 --> 00:33:12,320 Sta andando essere 617-555-1212 a, di cosa si tratta, text.ATT.net, 749 00:33:12,320 --> 00:33:13,490 è quello che voglio fare. 750 00:33:13,490 --> 00:33:15,260 Allora, come faccio a fare questo? 751 00:33:15,260 --> 00:33:16,730 Ho intenzione di fare quanto segue. 752 00:33:16,730 --> 00:33:22,460 Il suo indirizzo sarà il suo numero, e ora, lasciami andare avanti e fare questo. 753 00:33:22,460 --> 00:33:23,760 Si tratta di una sintassi funky. 754 00:33:23,760 --> 00:33:27,250 Potrei fare la percentuale s trucco, ma posso effettivamente fare solo questo. 755 00:33:27,250 --> 00:33:29,900 >> Quindi questa è una cosa di PHP, ma prendiamo in considerazione quello che sto facendo. 756 00:33:29,900 --> 00:33:31,630 Dollari firmare indirizzo su sinistra, solo una variabile. 757 00:33:31,630 --> 00:33:32,300 Dammi una variabile. 758 00:33:32,300 --> 00:33:33,390 Non ho per specificare il tipo. 759 00:33:33,390 --> 00:33:34,570 PHP capirlo. 760 00:33:34,570 --> 00:33:36,580 Sul lato destro, qual è il tipo di dati 761 00:33:36,580 --> 00:33:38,399 di che cosa tutto su il lato destro? 762 00:33:38,399 --> 00:33:40,190 Sembra una stringa, perché c'è doppio 763 00:33:40,190 --> 00:33:42,280 cita all'estrema sinistra e all'estrema destra. 764 00:33:42,280 --> 00:33:44,210 Ora c'è un po 'di funky nuova sintassi qui. 765 00:33:44,210 --> 00:33:47,550 Ci sono le parentesi graffe, e il numero simbolo del dollaro. 766 00:33:47,550 --> 00:33:52,860 Ma prendere una congettura che cosa è che la sintassi probabilmente dicendo PHP per fare per me? 767 00:33:52,860 --> 00:33:53,360 Già. 768 00:33:53,360 --> 00:33:54,630 Basta inserire il valore lì. 769 00:33:54,630 --> 00:33:55,530 Quindi no cento s. 770 00:33:55,530 --> 00:33:58,160 Potremmo usare stampa f, o s stampa f o qualcosa di simile, 771 00:33:58,160 --> 00:34:00,070 ma PHP e un sacco di linguaggi di livello superiore, 772 00:34:00,070 --> 00:34:03,070 si sta andando a vedere che si poteva fare la stessa cosa in modo funzionale, forse 773 00:34:03,070 --> 00:34:04,019 sei modi diversi. 774 00:34:04,019 --> 00:34:06,310 E così comincia a diventare una questione estetica o stile. 775 00:34:06,310 --> 00:34:09,902 Quindi questo è solo un modo criptico guardare di dire, mi danno un indirizzo email, 776 00:34:09,902 --> 00:34:12,110 ma plug-in del numero di tra queste parentesi graffe. 777 00:34:12,110 --> 00:34:15,440 E le parentesi graffe non sarà finire nel discorso finale. 778 00:34:15,440 --> 00:34:18,010 >> Ora siamo in grado di saltare alcuni dei queste righe per amor di tempo. 779 00:34:18,010 --> 00:34:21,210 Quindi, se un vettore è uguale uguale verHorizon-- whoops, 780 00:34:21,210 --> 00:34:24,989 Verizon-- Voglio fare qualcosa molto simile, in cui l'indirizzo viene, 781 00:34:24,989 --> 00:34:27,569 citazione, unquote, numero alla text.ATT.net. 782 00:34:27,569 --> 00:34:30,380 783 00:34:30,380 --> 00:34:35,050 E poi io posso fare lo stesso tipo di cosa per il resto dei vettori. 784 00:34:35,050 --> 00:34:37,090 Ma mi limiterò a fare punti, punto, punto per ora. 785 00:34:37,090 --> 00:34:43,050 E ora supponiamo che Voglio aggiungere array, spingere. 786 00:34:43,050 --> 00:34:45,969 Voglio aggiungere al matrice, chiamato indirizzi. 787 00:34:45,969 --> 00:34:50,409 >> Questo indirizzo, questo è il modo aggiungere qualcosa ad un array in PHP. 788 00:34:50,409 --> 00:34:51,610 Non c'è bisogno di fare malloc. 789 00:34:51,610 --> 00:34:53,068 Non è necessario ridimensionare la matrice. 790 00:34:53,068 --> 00:34:54,259 Basta dire array spinta. 791 00:34:54,259 --> 00:34:57,300 Che cosa vuoi di push-- cosa matrice vuoi spingere qualcosa su? 792 00:34:57,300 --> 00:34:58,000 Indirizzi. 793 00:34:58,000 --> 00:34:59,550 Che cosa si vuole spingere su indirizzi? 794 00:34:59,550 --> 00:35:00,350 Indirizzo. 795 00:35:00,350 --> 00:35:02,430 Ed infatti, se molta voglia di essere intelligente, 796 00:35:02,430 --> 00:35:05,610 po 'di zucchero sintattico per questo, per così dire, 797 00:35:05,610 --> 00:35:10,230 il che significa solo come si può fare questo a la via più bella, sarebbe quella di fare questo. 798 00:35:10,230 --> 00:35:14,060 Questo ha anche l'effetto di crescita la matrice indirizzi per dimensione uno, 799 00:35:14,060 --> 00:35:17,130 e poi plop che addizionale indirizzo di posta elettronica in esso. 800 00:35:17,130 --> 00:35:17,630 Già. 801 00:35:17,630 --> 00:35:19,730 >> PUBBLICO: [incomprensibile] 802 00:35:19,730 --> 00:35:22,520 >> SPEAKER 1: un errore di battitura sulla altro se: oh, vettore. 803 00:35:22,520 --> 00:35:23,070 Va bene. 804 00:35:23,070 --> 00:35:26,971 Inoltre, non sarà come la mia incapacità di implementare parte di questo programma 805 00:35:26,971 --> 00:35:27,470 più tardi. 806 00:35:27,470 --> 00:35:28,810 Ma grazie per la cattura. 807 00:35:28,810 --> 00:35:30,671 Un altro bug. 808 00:35:30,671 --> 00:35:31,170 Grazie. 809 00:35:31,170 --> 00:35:33,746 Vogliamo che questo sia Vtext.com. 810 00:35:33,746 --> 00:35:34,340 Sì. 811 00:35:34,340 --> 00:35:34,839 Tutto ok. 812 00:35:34,839 --> 00:35:36,330 Perché allora questa ci lascia? 813 00:35:36,330 --> 00:35:38,224 Abbiamo scritto il codice per aprire il file. 814 00:35:38,224 --> 00:35:40,390 Abbiamo un ciclo per iterare sopra le righe nel file. 815 00:35:40,390 --> 00:35:43,650 Abbiamo codice che aggiunge alla mia array, uno alla volta, il corretto 816 00:35:43,650 --> 00:35:44,790 indirizzo di posta elettronica formattato. 817 00:35:44,790 --> 00:35:48,480 Quindi tutto ciò che rimane veramente è quello di inviare una e-mail a ognuna di queste persone. 818 00:35:48,480 --> 00:35:52,830 >> Così sono andato avanti e Mi readied come segue. 819 00:35:52,830 --> 00:35:59,580 Che cosa ho intenzione di fare qui è-- e facciamo andare avanti e passare al codice vero e proprio, 820 00:35:59,580 --> 00:36:00,620 che assomiglia a questo. 821 00:36:00,620 --> 00:36:02,950 Così qui è la pre-cotto Versione ho scritto in precedenza. 822 00:36:02,950 --> 00:36:04,700 E accorgo ho finito attuazione Sprint. 823 00:36:04,700 --> 00:36:06,130 Ho finito l'attuazione di T-Mobile. 824 00:36:06,130 --> 00:36:08,020 Ho finito attuazione Virgin Mobile. 825 00:36:08,020 --> 00:36:09,622 E mi scuso in anticipo. 826 00:36:09,622 --> 00:36:12,080 Ci sono un paio di vettori che alcuni studenti della classe hanno 827 00:36:12,080 --> 00:36:14,640 che non mi preoccupai enumerare nella condizione if qui. 828 00:36:14,640 --> 00:36:16,015 Quindi non tutti i testi si spengono. 829 00:36:16,015 --> 00:36:17,556 Ma vediamo cosa altro devo fare. 830 00:36:17,556 --> 00:36:19,660 Chiudo il file, basta come in p impostare quattro. 831 00:36:19,660 --> 00:36:20,835 >> E questo è nuova sintassi. 832 00:36:20,835 --> 00:36:22,710 E vedremo un po ' bit di questo nel tempo, 833 00:36:22,710 --> 00:36:24,450 soprattutto con p set sette e otto. 834 00:36:24,450 --> 00:36:28,140 Ma questo è sintassi per creare un particolare tipo di struttura. 835 00:36:28,140 --> 00:36:31,490 Si scopre c'è una libreria che viene fornito con PHP, chiamata mailer PHP. 836 00:36:31,490 --> 00:36:33,840 Il suo scopo nella vita è quello inviare e-mail a livello di programmazione. 837 00:36:33,840 --> 00:36:36,840 E 'il codice che qualcun altro ha scritto che rende più facile per noi di inviare messaggi di posta elettronica, 838 00:36:36,840 --> 00:36:39,131 così non dobbiamo tenere andando avanti e indietro a Gmail, 839 00:36:39,131 --> 00:36:41,151 e incollando in indirizzi e-mail delle persone. 840 00:36:41,151 --> 00:36:44,150 C'è un sacco di linee qui che onestamente, ho solo tipo di copiato 841 00:36:44,150 --> 00:36:45,660 e incollato dalla documentazione. 842 00:36:45,660 --> 00:36:47,409 E infatti, se siete curioso, ho lasciato tutto 843 00:36:47,409 --> 00:36:50,550 degli URL della documentazione nel codice che postiamo in seguito. 844 00:36:50,550 --> 00:36:52,360 E notare che tra le cose che sto facendo 845 00:36:52,360 --> 00:36:55,710 è, sto dicendo questo biblioteca, utilizzare il server di Gmail, giusto? 846 00:36:55,710 --> 00:36:59,360 SMTP abbiamo parlato brevemente quando erano a Yale di essere semplice posta 847 00:36:59,360 --> 00:37:00,110 protocollo di trasferimento. 848 00:37:00,110 --> 00:37:02,920 È il protocollo server utilizzati per inviare e-mail, 849 00:37:02,920 --> 00:37:05,150 e that's-- Gmail è uno di quelli. 850 00:37:05,150 --> 00:37:07,290 Un porto, questo è il numero di porta TCP. 851 00:37:07,290 --> 00:37:09,630 Va bene se si non hanno visto 587 prima. 852 00:37:09,630 --> 00:37:11,420 Basta sapere che dalla documentazione. 853 00:37:11,420 --> 00:37:12,250 Ecco il mio nome utente. 854 00:37:12,250 --> 00:37:13,670 Ho intenzione di utilizzare il bot CF50. 855 00:37:13,670 --> 00:37:16,690 E in un attimo, sto solo andando a digitare la password attuale del bot. 856 00:37:16,690 --> 00:37:18,690 E poi qui, notare ciò che rimane. 857 00:37:18,690 --> 00:37:22,840 >> Ho impostato la mia dall'indirizzo da bot a CS50.net. 858 00:37:22,840 --> 00:37:26,240 Penso che non ve ne pentirete invio di un messaggio di testo a 800 persone che 859 00:37:26,240 --> 00:37:30,590 dice, manchi, amore CS50 bot, forse per coloro che non hanno potuto fare oggi. 860 00:37:30,590 --> 00:37:33,160 E poi, in linea 76, che cosa devo fare? 861 00:37:33,160 --> 00:37:39,010 Questo tipo di assomiglia C. Così, per i è uguale a 0, n equals-- ora contare è nuovo. 862 00:37:39,010 --> 00:37:42,077 Si scopre che, se si vuole ottenere il numero di cose in un array, 863 00:37:42,077 --> 00:37:43,660 non c'è bisogno di ricordare più. 864 00:37:43,660 --> 00:37:45,370 Si può solo chiedere un funzione chiamata count, 865 00:37:45,370 --> 00:37:48,320 e vi dirà quanti indirizzi sono in tale matrice. 866 00:37:48,320 --> 00:37:53,210 >> E poi ho intenzione di aggiungere l'indirizzo al di posta elettronica. 867 00:37:53,210 --> 00:37:55,090 E so che questo da utilizzando la documentazione. 868 00:37:55,090 --> 00:37:56,900 C'è una funzione di indirizzo aggiuntivo. 869 00:37:56,900 --> 00:37:58,980 E ora ci notare è un pezzo di sintassi. 870 00:37:58,980 --> 00:38:01,470 Abbiamo visto questo prima in C. simile nello spirito. 871 00:38:01,470 --> 00:38:04,100 Si può pensare a simbolo del dollaro posta come variabile, che è. 872 00:38:04,100 --> 00:38:08,100 Ma è una struttura all'interno di che non sono solo le proprietà, 873 00:38:08,100 --> 00:38:09,400 variabili, se vuoi. 874 00:38:09,400 --> 00:38:13,480 Ma si scopre che in PHP, che è un programmazione orientata agli oggetti 875 00:38:13,480 --> 00:38:16,520 il linguaggio, come Java se hai preso APCS. 876 00:38:16,520 --> 00:38:21,420 >> Segno del dollaro posta elettronica, se volete a-- ha anche funzioni all'interno di esso, 877 00:38:21,420 --> 00:38:22,380 o metodi. 878 00:38:22,380 --> 00:38:24,720 Quindi questo vuol dire che speciale mailer PHP 879 00:38:24,720 --> 00:38:29,280 biblioteca, se ho una variabile dello stesso, se voglio chiamare una funzione che 880 00:38:29,280 --> 00:38:31,559 viene fornito con quella libreria, per scopi di oggi, 881 00:38:31,559 --> 00:38:33,100 basta sapere si utilizza la notazione freccia. 882 00:38:33,100 --> 00:38:34,150 Non c'è notazione del punto. 883 00:38:34,150 --> 00:38:35,220 E 'solo la freccia. 884 00:38:35,220 --> 00:38:36,380 Ma non è un puntatore. 885 00:38:36,380 --> 00:38:38,680 E 'solo preso in prestito dalla sintassi C. 886 00:38:38,680 --> 00:38:43,620 Così chiamata aggiungere l'indirizzo all'interno di oggetto di questa libreria o variabile. 887 00:38:43,620 --> 00:38:44,440 >> Tutto ok. 888 00:38:44,440 --> 00:38:45,570 Questa è la linea magica. 889 00:38:45,570 --> 00:38:46,740 Ecco come io mando un'e-mail. 890 00:38:46,740 --> 00:38:50,040 Questo è l'equivalente di apertura Gmail, digitando fuori, e colpire inviare. 891 00:38:50,040 --> 00:38:54,870 Ma sta andando per inviare invece un e-mail a questo indirizzo, con questo corpo, 892 00:38:54,870 --> 00:38:57,120 dal bot CS50. 893 00:38:57,120 --> 00:38:58,710 E ora la linea chiave. 894 00:38:58,710 --> 00:39:03,130 Questa linea è stata assente nel 2011 come quando penso scorso provato questo. 895 00:39:03,130 --> 00:39:05,640 Quella linea lì, ovviamente, cancella gli indirizzi. 896 00:39:05,640 --> 00:39:07,920 Quindi logicamente, se non cancellare l'indirizzo 897 00:39:07,920 --> 00:39:11,740 dopo ogni iterazione, il primo e-mail o un messaggio di testo va a Alice, 898 00:39:11,740 --> 00:39:14,320 il secondo va Alice e Bob, il terzo 899 00:39:14,320 --> 00:39:17,870 va ad Alice e Bob e Charlie, da qui l'errore molto costoso 900 00:39:17,870 --> 00:39:18,760 Ho fatto quello stesso anno. 901 00:39:18,760 --> 00:39:21,080 >> Quindi cerchiamo di vedere. 902 00:39:21,080 --> 00:39:24,200 Ci sono domande prima di inviare a tutti voi un testo 903 00:39:24,200 --> 00:39:28,210 messaggio con probabilità del 10 per cento? 904 00:39:28,210 --> 00:39:28,940 Qualsiasi domanda? 905 00:39:28,940 --> 00:39:30,330 Tutto ok. 906 00:39:30,330 --> 00:39:36,100 Permettetemi di andare qui e cambiamento la password per quello che dovrebbe funzionare, 907 00:39:36,100 --> 00:39:37,780 sarà probabilmente ottenere lista nera di Gmail. 908 00:39:37,780 --> 00:39:39,821 Così potrebbero non andare tutti out, poiché probabilmente 909 00:39:39,821 --> 00:39:42,960 non mi piace l'invio di 800 messaggi di posta elettronica noi in un ciclo for tutti in una volta. 910 00:39:42,960 --> 00:39:45,140 Dal momento che non è comportamento particolarmente umano. 911 00:39:45,140 --> 00:39:47,460 >> Oh, ho intenzione di cambiare un'altra cosa. 912 00:39:47,460 --> 00:39:50,850 In cima, ho intenzione di sent-- modificare il file di studenti dot CSV. 913 00:39:50,850 --> 00:39:55,420 E io non apro questo, ma questo è un file CSV identico a non 100 dipendenti, 914 00:39:55,420 --> 00:39:58,970 ma 800 studenti, solo da Harvard, Yale perché 915 00:39:58,970 --> 00:40:00,207 ha Ottobre recesso questa settimana. 916 00:40:00,207 --> 00:40:03,290 E sembra come una specie di cosa coglione a fare al testo tutti loro sul perché 917 00:40:03,290 --> 00:40:04,750 non sono in classe in vacanza. 918 00:40:04,750 --> 00:40:05,250 Va bene. 919 00:40:05,250 --> 00:40:08,310 A soli studenti di Harvard oggi all'interno di quel file. 920 00:40:08,310 --> 00:40:12,320 E ora torniamo indietro alla mia finestra di terminale. 921 00:40:12,320 --> 00:40:13,710 Sono un po 'nervoso. 922 00:40:13,710 --> 00:40:22,000 >> OK, ora ho intenzione di andare in directory, e il testo PHP puntino PHP. 923 00:40:22,000 --> 00:40:24,950 Che ne dite di un volontario coraggioso? 924 00:40:24,950 --> 00:40:26,690 Quindi non voglio questo su di me. 925 00:40:26,690 --> 00:40:28,410 OK, andiamo su. 926 00:40:28,410 --> 00:40:29,162 Come ti chiami? 927 00:40:29,162 --> 00:40:29,662 MAYA: Maya. 928 00:40:29,662 --> 00:40:30,328 SPEAKER 1: Maya. 929 00:40:30,328 --> 00:40:31,610 Vieni su, Maya. 930 00:40:31,610 --> 00:40:34,120 Tutto ok. 931 00:40:34,120 --> 00:40:35,389 Vediamo se funziona. 932 00:40:35,389 --> 00:40:38,430 Ho messo il mio indirizzo email nella file-- il mio numero di telefono nel file, 933 00:40:38,430 --> 00:40:40,110 in modo che spero di ottenere uno pure. 934 00:40:40,110 --> 00:40:40,819 Felice di conoscerti. 935 00:40:40,819 --> 00:40:41,443 MAYA: Allo stesso modo. 936 00:40:41,443 --> 00:40:44,510 SPEAKER 1: Quindi tutto quello che dovete fare è premere Invio per inviare 800 messaggi di testo, 937 00:40:44,510 --> 00:40:45,466 se non mi rovinare. 938 00:40:45,466 --> 00:40:51,106 939 00:40:51,106 --> 00:40:51,606 Bello. 940 00:40:51,606 --> 00:40:55,556 941 00:40:55,556 --> 00:40:58,430 Potrebbe volerci un po ', statisticamente, fino ad arrivare ad una email address-- 942 00:40:58,430 --> 00:41:00,573 un messaggio di testo che è nella stanza al momento. 943 00:41:00,573 --> 00:41:03,880 944 00:41:03,880 --> 00:41:05,390 Andiamo a indugiare e vediamo. 945 00:41:05,390 --> 00:41:06,940 >> PUBBLICO: [FISCHIO] 946 00:41:06,940 --> 00:41:08,270 >> SPEAKER 1: Oh, sì. 947 00:41:08,270 --> 00:41:09,230 >> PUBBLICO: Oh, Gotcha. 948 00:41:09,230 --> 00:41:16,720 949 00:41:16,720 --> 00:41:19,180 >> SPEAKER 1: Per i cicli are-- questo non è lento a causa di PHP. 950 00:41:19,180 --> 00:41:21,810 Questo è lento perché Gmail ci sta strozzamento e non 951 00:41:21,810 --> 00:41:25,170 facendoci inviare più di come una e-mail al secondo. 952 00:41:25,170 --> 00:41:26,300 Niente? 953 00:41:26,300 --> 00:41:29,990 Questa era una cosa difficile per me prova a a casa con solo io e mio un telefono, così. 954 00:41:29,990 --> 00:41:37,630 955 00:41:37,630 --> 00:41:41,111 È che si spera dal bot? 956 00:41:41,111 --> 00:41:41,610 Sì? 957 00:41:41,610 --> 00:41:42,110 No? 958 00:41:42,110 --> 00:41:44,760 959 00:41:44,760 --> 00:41:46,620 Dì di si. 960 00:41:46,620 --> 00:41:47,479 No? 961 00:41:47,479 --> 00:41:49,374 E 'da un amico? 962 00:41:49,374 --> 00:41:49,874 Awkward. 963 00:41:49,874 --> 00:41:50,374 OK. 964 00:41:50,374 --> 00:41:56,580 965 00:41:56,580 --> 00:42:00,090 Abbastanza sicuro che sta funzionando però. 966 00:42:00,090 --> 00:42:00,910 Uh Oh. 967 00:42:00,910 --> 00:42:03,190 Essi black-- Oh, aspetta un minuto. 968 00:42:03,190 --> 00:42:04,280 Oh, sai una cosa? 969 00:42:04,280 --> 00:42:06,100 Un momento per favore. 970 00:42:06,100 --> 00:42:07,802 Solo Maya e io-- Mia, vero? 971 00:42:07,802 --> 00:42:08,301 MAYA: Maya. 972 00:42:08,301 --> 00:42:12,110 SPEAKER 1: Maya, stanno per so cosa ho fatto di sbagliato qui. 973 00:42:12,110 --> 00:42:14,890 Oh, aspetta un minuto. 974 00:42:14,890 --> 00:42:23,320 Credo di aver appena inviato 100 messaggi di testo a 555-1212. 975 00:42:23,320 --> 00:42:24,346 Stand-by. 976 00:42:24,346 --> 00:42:28,080 977 00:42:28,080 --> 00:42:29,270 Non posso vincere qualsiasi anno. 978 00:42:29,270 --> 00:42:30,180 OK. 979 00:42:30,180 --> 00:42:30,680 Maya? 980 00:42:30,680 --> 00:42:33,530 981 00:42:33,530 --> 00:42:36,219 Fissare che in post-produzione. 982 00:42:36,219 --> 00:42:36,718 Dannazione! 983 00:42:36,718 --> 00:42:39,430 984 00:42:39,430 --> 00:42:40,390 In seguito dall'indirizzo. 985 00:42:40,390 --> 00:42:41,301 OK, stand by. 986 00:42:41,301 --> 00:42:41,800 Scusate. 987 00:42:41,800 --> 00:42:44,550 988 00:42:44,550 --> 00:42:47,080 E 'doloroso ogni anno. 989 00:42:47,080 --> 00:42:48,640 OK, un momento. 990 00:42:48,640 --> 00:42:50,530 Questo è buono. 991 00:42:50,530 --> 00:42:54,010 Sto invece intenzione di fare questo. 992 00:42:54,010 --> 00:42:55,470 Indirizzo Stampa. 993 00:42:55,470 --> 00:42:56,030 OK, stand by. 994 00:42:56,030 --> 00:43:01,340 Indirizzi di stampa, supporto i. 995 00:43:01,340 --> 00:43:02,710 Sì, mi piace. 996 00:43:02,710 --> 00:43:10,220 Dollaro sign-- OK ti spiego quello che sto facendo in un attimo, dopo che ho eseguito questo. 997 00:43:10,220 --> 00:43:11,670 Ogni anno. 998 00:43:11,670 --> 00:43:13,125 Ok, qui andiamo. 999 00:43:13,125 --> 00:43:15,750 Ho solo-- e non voglio per mostrare il numero di telefono di tutti, 1000 00:43:15,750 --> 00:43:17,740 ma Maya può confermare con un cenno del capo, 1001 00:43:17,740 --> 00:43:20,800 che vede tutti sono numero di telefono nella classe 1002 00:43:20,800 --> 00:43:26,750 che ho intenzione di copiare in un programma chiamato Gmail. 1003 00:43:26,750 --> 00:43:30,860 E se in Gmail, che cosa vogliamo dire? 1004 00:43:30,860 --> 00:43:32,137 Mi manchi. 1005 00:43:32,137 --> 00:43:33,220 Love-- non è da me. 1006 00:43:33,220 --> 00:43:35,230 Non ho nemmeno colpire inviare ancora. 1007 00:43:35,230 --> 00:43:39,450 Quindi cerchiamo di andare avanti e fare questo, se posso ingrandire. 1008 00:43:39,450 --> 00:43:40,300 OK. 1009 00:43:40,300 --> 00:43:42,480 Così sto usando un programma chiamato Gmail ora. 1010 00:43:42,480 --> 00:43:44,490 Se Maya, desideri fare clic sul pulsante Invia, 1011 00:43:44,490 --> 00:43:46,970 simuleremo che cosa codice avrebbe dovuto fare. 1012 00:43:46,970 --> 00:43:54,630 1013 00:43:54,630 --> 00:43:55,254 >> Niente? 1014 00:43:55,254 --> 00:43:56,062 >> [BIP] 1015 00:43:56,062 --> 00:43:56,870 >> PUBBLICO: Sì. 1016 00:43:56,870 --> 00:43:58,030 >> SPEAKER 1: Sì? 1017 00:43:58,030 --> 00:43:59,210 La salvezza? 1018 00:43:59,210 --> 00:44:00,427 >> PUBBLICO: Sì. 1019 00:44:00,427 --> 00:44:01,260 SPEAKER 1: Miss you. 1020 00:44:01,260 --> 00:44:02,718 E ho intenzione di inviare il resto. 1021 00:44:02,718 --> 00:44:06,060 Ho inviato la metà perché non ci ho pensato Gmail avrebbe lasciato passare attraverso quelli. 1022 00:44:06,060 --> 00:44:12,410 Quindi basta ricordare, oggi è il giorno che hai imparato che posso utilizzare Gmail. 1023 00:44:12,410 --> 00:44:14,977 1024 00:44:14,977 --> 00:44:15,810 E 'stato orribile. 1025 00:44:15,810 --> 00:44:17,140 Un grande applauso a Maya. 1026 00:44:17,140 --> 00:44:18,980 Grazie. 1027 00:44:18,980 --> 00:44:21,280 Va bene, così. 1028 00:44:21,280 --> 00:44:22,210 che cosa 1029 00:44:22,210 --> 00:44:23,140 >> [BIP] 1030 00:44:23,140 --> 00:44:25,010 1031 00:44:25,010 --> 00:44:26,580 >> Abbiamo avuto un paio di beep, sì? 1032 00:44:26,580 --> 00:44:27,080 Tutto ok. 1033 00:44:27,080 --> 00:44:30,590 Ora ho intenzione di ottenere 700 davvero email infelici indietro da compagni di classe. 1034 00:44:30,590 --> 00:44:32,400 Così almeno si vedrà se era valsa la pena. 1035 00:44:32,400 --> 00:44:33,300 Allora, cosa è andato storto? 1036 00:44:33,300 --> 00:44:35,300 Io a capire che cosa è andato sbagliato dopo il fatto, 1037 00:44:35,300 --> 00:44:38,340 ma basta guardare quanto sia facile era di farlo in PHP. 1038 00:44:38,340 --> 00:44:44,598 Allora, cosa possiamo realmente fare ora che abbiamo questa espressività di PHP. 1039 00:44:44,598 --> 00:44:45,970 Quella era-- che era orribile. 1040 00:44:45,970 --> 00:44:46,480 Tutto ok. 1041 00:44:46,480 --> 00:44:48,430 Così che era quello che avrebbe dovuto andare fuori. 1042 00:44:48,430 --> 00:44:52,770 Questo è stato mi testando questa mattina sul mio telefono, screenshot effettivo del mio telefono. 1043 00:44:52,770 --> 00:44:56,180 >> Ma ora prendiamo in considerazione perché in realtà stiamo introducendo 1044 00:44:56,180 --> 00:44:57,840 tutte queste cose, in primo luogo. 1045 00:44:57,840 --> 00:45:01,625 Quindi l'obiettivo non è quello di scrivere questi programmi che 1046 00:45:01,625 --> 00:45:03,250 sono scritti nella riga di comando, giusto? 1047 00:45:03,250 --> 00:45:05,000 Così ho scritto un semplice ciao programma, ho scritto 1048 00:45:05,000 --> 00:45:09,155 un piccolo programma che fa condizionali, e una linea di lettura utilizzato e così via. 1049 00:45:09,155 --> 00:45:11,530 E in teoria, ho appena scritto un programma che inviato 1050 00:45:11,530 --> 00:45:14,290 800 messaggi di testo, più o meno 800. 1051 00:45:14,290 --> 00:45:16,830 E questo programma era tutto eseguire ancora nella riga di comando. 1052 00:45:16,830 --> 00:45:18,538 E questo, naturalmente, è non il web, giusto? 1053 00:45:18,538 --> 00:45:22,160 L'obiettivo è ora di iniziare a utilizzare quello che io sostengo è più facile da usare 1054 00:45:22,160 --> 00:45:24,720 lingua, oserei dire più potente linguaggio in termini 1055 00:45:24,720 --> 00:45:27,104 delle caratteristiche che venire con esso, per iniziare 1056 00:45:27,104 --> 00:45:29,850 la scrittura di codice che genera pagine web. 1057 00:45:29,850 --> 00:45:33,248 >> Così l'ultima volta e la settimana scorsa, abbiamo parlato di HTTP e HTML. 1058 00:45:33,248 --> 00:45:36,350 E cosa c'è di bello su HTML è che è solo puro testo. 1059 00:45:36,350 --> 00:45:38,220 E il testo è certamente qualcosa che si può 1060 00:45:38,220 --> 00:45:42,040 stampare letteralmente chiamando la stampa funzione f, o la funzione di stampa. 1061 00:45:42,040 --> 00:45:46,160 E in effetti, questo è ciò che PHP è ora sta per permetterci di fare. 1062 00:45:46,160 --> 00:45:48,610 Così tra gli esempi avere nel codice sorgente di oggi, 1063 00:45:48,610 --> 00:45:51,610 in aggiunta alla parte del codice che ho messo lì un attimo fa, 1064 00:45:51,610 --> 00:45:55,440 abbiamo programmi come questo, per esempio. 1065 00:45:55,440 --> 00:45:58,760 Froshims, o Freshman Intramurale sport, era in realtà 1066 00:45:58,760 --> 00:46:01,500 uno dei primi extracurriculars Sono stato coinvolto con anni fa. 1067 00:46:01,500 --> 00:46:03,750 E il mio compagno di stanza e io, con alcuni altri ragazzi nel campus, 1068 00:46:03,750 --> 00:46:05,280 utilizzato per eseguire il programma froshims. 1069 00:46:05,280 --> 00:46:07,420 Ricevo i miei messaggi di testo ora. 1070 00:46:07,420 --> 00:46:14,030 >> Ora così noi, back in the day, quindi questo Era il 1996 o giù di lì, c'era un internet, 1071 00:46:14,030 --> 00:46:17,395 ma non c'era process-- lì non era il sito per froshims. 1072 00:46:17,395 --> 00:46:20,270 E così se si voleva firmare per calcio o pallavolo o qualsiasi altra cosa, 1073 00:46:20,270 --> 00:46:22,240 si potrebbe compilare questa cosa chiamato un pezzo di carta, 1074 00:46:22,240 --> 00:46:25,060 e si dovrebbe attraversare Harvard cortile, e si dovrebbe farlo scorrere 1075 00:46:25,060 --> 00:46:29,230 nella fessura posta elettronica del procuratore, che era in Wigglesworth, uno dei dormitori. 1076 00:46:29,230 --> 00:46:31,270 E questo si sono stati registrati. 1077 00:46:31,270 --> 00:46:33,570 E lui o lei avrebbe poi comporre un e-mail a voi 1078 00:46:33,570 --> 00:46:36,514 manualmente, proprio come io appena fatto qui con Maya, 1079 00:46:36,514 --> 00:46:38,930 e poi si sarebbe confermato come essere stato registrato. 1080 00:46:38,930 --> 00:46:40,840 >> Quindi questo è stato come basso appeso frutta, per così dire. 1081 00:46:40,840 --> 00:46:42,930 E 'stato un po' stupido che stavamo usando carta per questo. 1082 00:46:42,930 --> 00:46:45,024 Volevo noi essere in grado andare solo su un sito web, 1083 00:46:45,024 --> 00:46:47,440 o hanno le matricole andare su una sito, registrarsi per lo sport, 1084 00:46:47,440 --> 00:46:50,398 e solo automatizzare sacco di questa roba mettendo i loro nomi e le email 1085 00:46:50,398 --> 00:46:51,850 e così via in un database. 1086 00:46:51,850 --> 00:46:56,510 Ed infatti, la prima versione del sito web, utilizzando super-brutto HTML, 1087 00:46:56,510 --> 00:46:58,195 poteva sembrare qualcosa di simile. 1088 00:46:58,195 --> 00:47:01,070 In realtà è stato, ironia della sorte, più imbarazzante bello di questo ritorno 1089 00:47:01,070 --> 00:47:01,460 poi. 1090 00:47:01,460 --> 00:47:02,890 Ma ho usato un linguaggio di programmazione. 1091 00:47:02,890 --> 00:47:06,060 Non PHP, ma piuttosto chiamato Perl, che è un linguaggio vecchio, 1092 00:47:06,060 --> 00:47:07,251 ma molto simile nello spirito. 1093 00:47:07,251 --> 00:47:09,000 E ho appena completamente ha insegnato a me stesso. 1094 00:47:09,000 --> 00:47:12,208 E mi ci è voluto un po 'per capirlo, chiedendo un sacco di domande di amici. 1095 00:47:12,208 --> 00:47:14,080 Ma le idee là erano esattamente la stessa. 1096 00:47:14,080 --> 00:47:18,050 Perché quello che PHP è stato realmente progettato per non è la roba da riga di comando 1097 00:47:18,050 --> 00:47:20,450 abbiamo giocato con, ma per la programmazione web. 1098 00:47:20,450 --> 00:47:24,960 >> E 'davvero legato a sua caratteristica impostare al web, come segue. 1099 00:47:24,960 --> 00:47:26,370 Questo è froshims. 1100 00:47:26,370 --> 00:47:28,720 E se volessi iscriversi in questa forma, 1101 00:47:28,720 --> 00:47:30,930 questo è abbastanza brutto, certamente, ma lasciami andare avanti 1102 00:47:30,930 --> 00:47:34,440 e essere uno studente meno confortevole, e tutto ciò che lo sport per Matthews, 1103 00:47:34,440 --> 00:47:35,630 fare clic su Registra. 1104 00:47:35,630 --> 00:47:39,780 Quello che voglio essere in grado di fare è inviare informazioni da un modulo, 1105 00:47:39,780 --> 00:47:42,400 non al server di Google come abbiamo fatto l'ultima volta, completamente 1106 00:47:42,400 --> 00:47:47,100 barare utilizzando il loro backend, ho desidera implementare il mio codice backend. 1107 00:47:47,100 --> 00:47:51,410 Il che significa scrittura PHP codice che vive in un URL 1108 00:47:51,410 --> 00:47:54,180 che i dati del modulo possono essere presentate. 1109 00:47:54,180 --> 00:47:57,510 >> E poi il vostro codice, scritto in PHP su un server, 1110 00:47:57,510 --> 00:47:59,400 possono poi rispondere che l'input dell'utente. 1111 00:47:59,400 --> 00:48:03,287 Come il suo nome, o il livello di comfort, o dormitorio, e poi fare qualcosa con esso. 1112 00:48:03,287 --> 00:48:05,120 In questo caso, ho solo stupidamente stampato fuori 1113 00:48:05,120 --> 00:48:06,750 come testo, che non è poi così bello. 1114 00:48:06,750 --> 00:48:09,590 Ma si potrebbe certamente immaginare, se si conosce HTML, 1115 00:48:09,590 --> 00:48:13,010 e presto sapere come generare HTML con stampa f, e la stampa, 1116 00:48:13,010 --> 00:48:16,500 e funzioni simili, si può certamente generare una pagina web più bella che dice: 1117 00:48:16,500 --> 00:48:17,929 ehi David, si è ora registrato. 1118 00:48:17,929 --> 00:48:20,220 Sei un meno confortevole studente di Matthews, giusto? 1119 00:48:20,220 --> 00:48:23,880 >> Si può semplicemente utilizzare un intero gruppo di% ses, o le parentesi graffe e il simbolo del dollaro 1120 00:48:23,880 --> 00:48:27,750 Notazione Ho usato un momento fa, a generare il testo che è più facile da usare 1121 00:48:27,750 --> 00:48:28,567 di questo. 1122 00:48:28,567 --> 00:48:30,150 Quindi, diamo un'occhiata a questo file. 1123 00:48:30,150 --> 00:48:34,666 Froshim zero virgola PHP assomiglia a questo. 1124 00:48:34,666 --> 00:48:37,860 1125 00:48:37,860 --> 00:48:43,500 Quando ricarico CS50 IDE, lo zero froshim simile a questa. 1126 00:48:43,500 --> 00:48:45,700 Questo è froshim zero virgola PHP. 1127 00:48:45,700 --> 00:48:47,730 E che cosa si nota di questo file? 1128 00:48:47,730 --> 00:48:49,506 >> PUBBLICO: [incomprensibile] 1129 00:48:49,506 --> 00:48:50,922 SPEAKER 1: Siamo spiacenti, un po 'più forte? 1130 00:48:50,922 --> 00:48:53,250 PUBBLICO: [incomprensibile] E 'tutto in HTML. 1131 00:48:53,250 --> 00:48:57,130 Ed infatti, è, perché ciò che è interessante di PHP 1132 00:48:57,130 --> 00:48:58,880 è che è stato progettato essere, per una migliore 1133 00:48:58,880 --> 00:49:02,110 e nel male, mescolati con il codice HTML. 1134 00:49:02,110 --> 00:49:05,850 Ed infatti, anche se questo File, froshim zero virgola PHP, 1135 00:49:05,850 --> 00:49:11,470 ha un commento PHP in cima di esso, è tutto solo HTML. 1136 00:49:11,470 --> 00:49:17,655 Ma al contrario, se apro, cerchiamo di per esempio, registrare zero virgola PHP, che 1137 00:49:17,655 --> 00:49:19,550 solo ha un grande commento in alto. 1138 00:49:19,550 --> 00:49:26,500 Anche questo sembra quasi del tutto come HTML, tranne che per che cosa? 1139 00:49:26,500 --> 00:49:29,350 Linea, quello che, 21 sembra un po 'strano. 1140 00:49:29,350 --> 00:49:32,739 >> Ma accorgo che sto entrando in modalità PHP con staffa aperto punto interrogativo PHP. 1141 00:49:32,739 --> 00:49:33,780 Poi ho un po 'di roba. 1142 00:49:33,780 --> 00:49:36,724 E poi alla fine della riga quasi ho, Punto interrogativo PHP. 1143 00:49:36,724 --> 00:49:38,390 E questo è ciò che intendo per Interlacciati. 1144 00:49:38,390 --> 00:49:41,910 È possibile scrivere codice HTML che hai appena desidera che il server di sputare. 1145 00:49:41,910 --> 00:49:45,090 Ma se si vuole fare qualcosa parzialmente dinamica attraverso la pagina, 1146 00:49:45,090 --> 00:49:47,699 come inserire il mio nome o dormitorio o livello di comfort, 1147 00:49:47,699 --> 00:49:49,490 Posso usare una funzione come la stampa R, che è 1148 00:49:49,490 --> 00:49:52,492 stampare ricorsivo, il che significa che solo stampare questa variabile, formattazione 1149 00:49:52,492 --> 00:49:53,200 Comunque tu voglia. 1150 00:49:53,200 --> 00:49:55,880 Non è proprio per scopi umani, è solo 1151 00:49:55,880 --> 00:49:58,290 per il debugging o diagnostici. 1152 00:49:58,290 --> 00:49:59,460 Ecco come ho fatto. 1153 00:49:59,460 --> 00:50:06,100 >> Se io invece vado froshims due punti PHP, notare che l'azione di questa forma 1154 00:50:06,100 --> 00:50:09,680 non è registrato zero virgola PHP come old-- quello precedente in realtà. 1155 00:50:09,680 --> 00:50:11,222 Ma è registrato due punti PHP. 1156 00:50:11,222 --> 00:50:13,680 Quindi diamo un'occhiata a come questo si comporta un po 'diverso. 1157 00:50:13,680 --> 00:50:15,140 Se entro in versione a due. 1158 00:50:15,140 --> 00:50:20,430 Se qui, se mi iscrivo come David, meno comodo, da dormitorio di Mathews, 1159 00:50:20,430 --> 00:50:21,480 registrarsi. 1160 00:50:21,480 --> 00:50:23,770 Così questa volta ha detto, è sono registrati, non proprio. 1161 00:50:23,770 --> 00:50:25,370 Vediamo quello che ho fatto qui. 1162 00:50:25,370 --> 00:50:29,760 Se guardo il registro di due punti PHP, questo ha un po 'di codice PHP. 1163 00:50:29,760 --> 00:50:35,410 E 'un po' più pulita, anche se avvolge ancora un po 'lungo su questa linea. 1164 00:50:35,410 --> 00:50:36,260 Notate qui. 1165 00:50:36,260 --> 00:50:40,300 Stampo il mio tag HTML, la mia tag head, il mio tag del titolo, la testa, il corpo. 1166 00:50:40,300 --> 00:50:45,410 >> E poi comincio a dire cose come entrare in modalità PHP. 1167 00:50:45,410 --> 00:50:48,540 E così quel tag, parentesi aperta PHP-- punto interrogativo PHP dice: 1168 00:50:48,540 --> 00:50:53,460 ehi, server execute-- interpretare il seguente roba come PHP 1169 00:50:53,460 --> 00:50:55,030 fino a visualizzare il tag di chiusura. 1170 00:50:55,030 --> 00:50:58,590 E anche se si potrebbe non conoscere alcun altro PHP che avete visto fino ad ora, 1171 00:50:58,590 --> 00:51:01,290 è possibile tipo di letto abbastanza intuitivo. 1172 00:51:01,290 --> 00:51:10,670 Se il nome è vuoto, o il comfort è vuoto, o dormitorio è vuoto, cosa devo fare? 1173 00:51:10,670 --> 00:51:12,830 Cosa dico per l'utente? 1174 00:51:12,830 --> 00:51:15,330 È necessario fornire il proprio nome, il comfort, e dormitorio, e così via. 1175 00:51:15,330 --> 00:51:17,750 Altrimenti, io dico che sei registrato, beh non proprio. 1176 00:51:17,750 --> 00:51:19,190 >> E non dico davvero perché non c'è nessun database. 1177 00:51:19,190 --> 00:51:20,200 Io non sto facendo nulla con i dati. 1178 00:51:20,200 --> 00:51:22,408 Sto solo buttarlo via a scopo dimostrativo. 1179 00:51:22,408 --> 00:51:24,320 Ora mi sorta di lesinato sulla linea 22. 1180 00:51:24,320 --> 00:51:26,400 C'è di più sintassi lì, ma il segno del dollaro 1181 00:51:26,400 --> 00:51:28,320 sottolineatura post è piuttosto interessante. 1182 00:51:28,320 --> 00:51:30,300 E questo è ciò che è bello su PHP. 1183 00:51:30,300 --> 00:51:35,610 In PHP, si dispone di ciò che sono chiamati un paio di variabili globali eccellenti. 1184 00:51:35,610 --> 00:51:38,430 Essi sono una sorta di ancora di più importante di variabili globali. 1185 00:51:38,430 --> 00:51:41,370 E questi, tutto maiuscolo come tale, vieni con PHP. 1186 00:51:41,370 --> 00:51:44,550 Quindi, se si dispone di un server che ha un server web installato, come Apache, 1187 00:51:44,550 --> 00:51:49,390 e si installa la lingua supporto per PHP, tutto ad un tratto si 1188 00:51:49,390 --> 00:51:52,250 può iniziare a utilizzare questi super- variabili globali nel codice. 1189 00:51:52,250 --> 00:51:54,330 >> E che cosa c'è di bello PHP è che se si 1190 00:51:54,330 --> 00:51:57,540 scrivere un file che termina in dot PHP, metterlo su un server web, 1191 00:51:57,540 --> 00:52:01,260 e quindi si invia un modulo ad esso via che action tag e un tag form, 1192 00:52:01,260 --> 00:52:05,110 tale attributo azione nel tag form, PHP e il web 1193 00:52:05,110 --> 00:52:09,360 completamente capisce come per afferrare tutte queste coppie di valori chiave fuori 1194 00:52:09,360 --> 00:52:11,633 dell'URL come domanda marchio q uguale gatti, 1195 00:52:11,633 --> 00:52:14,782 sarà capire come q e gatti. 1196 00:52:14,782 --> 00:52:17,710 Se si invia una foto, o di un nome utente, o una password per come Facebook, 1197 00:52:17,710 --> 00:52:21,360 PHP capire per voi dove tutti quei dati è. 1198 00:52:21,360 --> 00:52:23,821 E sarà proprio consegnerà Sei un array associativo 1199 00:52:23,821 --> 00:52:27,560 chiamato dollaro segno di sottolineatura postale, o il simbolo del dollaro di sottolineatura ottenere, 1200 00:52:27,560 --> 00:52:30,590 a seconda se si è utilizzando GET o POST osservazioni. 1201 00:52:30,590 --> 00:52:32,950 E sarà solo te mano una variabile globale super, 1202 00:52:32,950 --> 00:52:37,254 in modo che se si desidera ottenere nel nome che l'utente inviato tramite quella rete 1203 00:52:37,254 --> 00:52:41,894 modulo, è letteralmente basta pronunciare il nome della variabile globale super, citazione, 1204 00:52:41,894 --> 00:52:43,380 unquote, nome. 1205 00:52:43,380 --> 00:52:46,144 E citazione, il comfort unquote, e citazione, dormitorio unquote. 1206 00:52:46,144 --> 00:52:48,810 E abbiamo intenzione di essere in grado di fare questo e molto di più con PHP. 1207 00:52:48,810 --> 00:52:50,540 E anche se questo era uno sguardo turbine a lui, 1208 00:52:50,540 --> 00:52:51,980 ci immergeremo in più la prossima settimana. 1209 00:52:51,980 --> 00:52:54,247 Noi presenteremo un database in modo che si sta effettivamente 1210 00:52:54,247 --> 00:52:56,816 sta per avviare l'attuazione il proprio based-- commercio elettronico 1211 00:52:56,816 --> 00:52:59,150 come sito web in tempo solo una settimana. 1212 00:52:59,150 --> 00:53:02,750 Quindi ci vediamo la prossima volta, e spero che tu hai messaggi di testo. 1213 00:53:02,750 --> 00:53:05,450 Ciao. 1214 00:53:05,450 --> 00:53:06,950 >> [RIPRODUZIONE DI BRANI MUSICALI] 1215 00:53:06,950 --> 00:53:11,450 1216 00:53:11,450 --> 00:53:12,950 >> [APERTURA PORTA] 1217 00:53:12,950 --> 00:53:14,475 >> SPEAKER 2: Hey. 1218 00:53:14,475 --> 00:53:15,350 SPEAKER 3: Che cosa succede? 1219 00:53:15,350 --> 00:53:17,750 SPEAKER 2: Che cosa stai facendo? 1220 00:53:17,750 --> 00:53:19,850 SPEAKER 3: Lavorare su un set problema. 1221 00:53:19,850 --> 00:53:21,050 SPEAKER 2: Nizza. 1222 00:53:21,050 --> 00:53:22,550 Batti il ​​cinque. 1223 00:53:22,550 --> 00:53:23,150 >> [BATTI IL CINQUE] 1224 00:53:23,150 --> 00:53:25,584 >> Cosa are-- uh, che ci fai qui? 1225 00:53:25,584 --> 00:53:26,750 SPEAKER 3: Basta appendere fuori. 1226 00:53:26,750 --> 00:53:28,134 Sono appena tornato dalla palestra. 1227 00:53:28,134 --> 00:53:30,050 Non ho potuto fare a meno di notare quando abbiamo alta fived, 1228 00:53:30,050 --> 00:53:32,450 che avete le mani piuttosto ruvide. 1229 00:53:32,450 --> 00:53:33,950 Vai in palestra? 1230 00:53:33,950 --> 00:53:35,150 >> SPEAKER 2: No. 1231 00:53:35,150 --> 00:53:36,650 No. 1232 00:53:36,650 --> 00:53:38,450 >> SPEAKER 3: Amico, sei abbastanza grande. 1233 00:53:38,450 --> 00:53:45,950 Quale è male, perché tutti sanno 8-ball è il grande uomo del campus. 1234 00:53:45,950 --> 00:53:48,050 Batti il ​​cinque. 1235 00:53:48,050 --> 00:53:49,550 >> SPEAKER 2: Uh, no. 1236 00:53:49,550 --> 00:53:50,450 No, penso di essere bravo. 1237 00:53:50,450 --> 00:53:52,300 Penso di essere bravo. 1238 00:53:52,300 --> 00:53:54,097