1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Sezione 8] [meno confortevole] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [Questo è CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Benvenuti nel nostro secondo per ultima sezione. 5 00:00:11,000 --> 00:00:13,000 In questa settimana andremo a parlare di PHP, e poi la prossima settimana 6 00:00:13,000 --> 00:00:17,000 faremo una piccola recensione per Quiz 1. 7 00:00:17,000 --> 00:00:20,000 Stiamo per iniziare a pagina 3 del problema set pack, 8 00:00:20,000 --> 00:00:28,000 e lavoreremo attraverso la sezione di domande abbastanza rapidamente. 9 00:00:28,000 --> 00:00:34,000 A pagina 3, si comincia a parlare di questa differenza tra C e PHP 10 00:00:34,000 --> 00:00:38,000 nel senso che PHP è un linguaggio tipizzato in modo dinamico, 11 00:00:38,000 --> 00:00:42,000 mentre C è staticamente tipizzato, 12 00:00:42,000 --> 00:00:46,000 e qualcuno ha fatto molto in fretta alcuna codifica in qualcosa di simile a PHP 13 00:00:46,000 --> 00:00:51,000 o Python o Ruby prima, JavaScript? 14 00:00:51,000 --> 00:00:53,000 Completamente nuovo? Va bene. 15 00:00:53,000 --> 00:00:56,000 >> Tutte queste lingue che ho appena menzionato 16 00:00:56,000 --> 00:01:01,000 sono molto diverse da linguaggi come C e C + + e Java 17 00:01:01,000 --> 00:01:04,000 nel senso che quando si dichiara una variabile che non è necessario dichiarare 18 00:01:04,000 --> 00:01:09,000 che tipo di variabile è, quindi in C siamo rimasti bloccati dover dire sempre 19 00:01:09,000 --> 00:01:13,000 questa sarà una variabile int, o questo sta andando essere una variabile char *, 20 00:01:13,000 --> 00:01:16,000 mentre con PHP, con Python, con Ruby, 21 00:01:16,000 --> 00:01:20,000 con un sacco di queste lingue più moderne non hanno a che fare a tutti. 22 00:01:20,000 --> 00:01:24,000 Devi solo dichiarare la variabile, e nel caso di PHP 23 00:01:24,000 --> 00:01:28,000 si dichiara che si tratta di una variabile facendo precedere con un simbolo $, 24 00:01:28,000 --> 00:01:35,000 e quindi il tipo di variabile è determinata da qualsiasi valore in mano, 25 00:01:35,000 --> 00:01:38,000 che è genere di freddo. 26 00:01:38,000 --> 00:01:44,000 Per giocare con questo un po ', abbiamo esempio di codice PHP proprio qui 27 00:01:44,000 --> 00:01:47,000 tra i tag di inizio e di fine. 28 00:01:47,000 --> 00:01:53,000 Stiamo usando questo tipo di come l'HTML, nel senso che 29 00:01:53,000 --> 00:01:56,000 abbiamo queste parentesi angolari qui per aprire e chiudere. 30 00:01:56,000 --> 00:01:58,000 Vedrai questo con HTML. 31 00:01:58,000 --> 00:02:03,000 Vedrete lo stesso tipo di sintassi con XML troppo. 32 00:02:03,000 --> 00:02:06,000 >> Questo indica l'inizio di un blocco PHP. 33 00:02:06,000 --> 00:02:09,000 Questo? Php è specifico per PHP. 34 00:02:09,000 --> 00:02:16,000 Chiudiamo il tutto con un> pure. 35 00:02:16,000 --> 00:02:22,000 Apriamo un file nel nostro apparecchio con quello che vuoi. 36 00:02:22,000 --> 00:02:25,000 In questo pacchetto si dice di chiamare dynamic.php. 37 00:02:25,000 --> 00:02:29,000 In verità, si può chiamare quello che vuoi, ma il nome del file verrà su 38 00:02:29,000 --> 00:02:34,000 e di essere importante più avanti, quindi basta ricordare come lo vogliate chiamare. 39 00:02:34,000 --> 00:02:36,000 Ho intenzione di passare al l'apparecchio, 40 00:02:36,000 --> 00:02:43,000 e ho intenzione di fare una directory per 41 00:02:43,000 --> 00:02:48,000 sezione 9 Credo che siamo in ora. 42 00:02:48,000 --> 00:02:51,000 E andremo nella sezione 9, 43 00:02:51,000 --> 00:02:54,000 e ho intenzione di usare gedit. 44 00:02:54,000 --> 00:02:59,000 Vediamo, gedit, e ho intenzione di chiamare dynamic.php mia. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 All'interno dynamic.php, dal momento che si tratta di un file PHP 47 00:03:06,000 --> 00:03:09,000 e voglio eseguire questo attraverso l'interprete PHP 48 00:03:09,000 --> 00:03:12,000 Ho bisogno di ricominciare tutto fuori con questi tag aperti, 49 00:03:12,000 --> 00:03:17,000 così ho intenzione di iniziare quelli subito, 50 00:03:17,000 --> 00:03:23,000 darmi un po 'di spazio tra i tag, 51 00:03:23,000 --> 00:03:26,000 e poi il punto di questo esercizio era quello di giocare con 52 00:03:26,000 --> 00:03:34,000 questa funzione chiamata gettype, così gettype, questa funzione proprio qui. 53 00:03:34,000 --> 00:03:38,000 >> Si noti che non vi è alcuna sottolineatura o spazio o un trattino o qualcosa di simile 54 00:03:38,000 --> 00:03:42,000 separando le 2 parole, ottenere e digitare, una sola parola tutto. 55 00:03:42,000 --> 00:03:46,000 Ma ciò che questo farà è se passare una variabile a gettype, 56 00:03:46,000 --> 00:03:51,000 ad esempio $ var o $ x, 57 00:03:51,000 --> 00:03:55,000 questo mi dice tipo di in un formato di debug 58 00:03:55,000 --> 00:03:59,000 ciò che il nome di quel tipo è. 59 00:03:59,000 --> 00:04:03,000 Stiamo andando a sperimentare qui. 60 00:04:03,000 --> 00:04:07,000 In particolare, se si guarda indietro alla spec pset 61 00:04:07,000 --> 00:04:11,000 abbiamo poche righe di codice diverse qui. 62 00:04:11,000 --> 00:04:16,000 Nella prima riga di codice che inizializza questa variabile, $ var, 63 00:04:16,000 --> 00:04:21,000 essere uguale a 7, quindi abbiamo questa linea printf 64 00:04:21,000 --> 00:04:25,000 che dice: hey, var printf è vuoto. 65 00:04:25,000 --> 00:04:29,000 Printf è uno dei molti modi si può stampare le cose in PHP. 66 00:04:29,000 --> 00:04:33,000 Spesso vedrete la funzione eco usato al posto di printf, 67 00:04:33,000 --> 00:04:40,000 printf ma siamo tutti a conoscenza essendo stata la codifica in C per un po '. 68 00:04:40,000 --> 00:04:42,000 Che cosa si può effettivamente fare è lasciare a vedere se le opere di copia e incolla. 69 00:04:42,000 --> 00:04:46,000 Ho intenzione di dare questo una prova. 70 00:04:46,000 --> 00:04:52,000 Torneremo verso l'apparecchio. 71 00:04:52,000 --> 00:05:00,000 Va bene, e ci siamo. 72 00:05:00,000 --> 00:05:05,000 E spaziatura è un po 'eccentrico, ma qui andiamo. 73 00:05:05,000 --> 00:05:08,000 Abbiamo questo codice qui. 74 00:05:08,000 --> 00:05:11,000 >> [Studente] E 'lo stile non va bene alla scheda è? 75 00:05:11,000 --> 00:05:13,000 Scusa? 76 00:05:13,000 --> 00:05:15,000 [Studente] E 'convenzionale alla scheda è? 77 00:05:15,000 --> 00:05:21,000 Giusto, quindi Sam chiede se è convenzione alla scheda o meno. 78 00:05:21,000 --> 00:05:23,000 In genere sì. 79 00:05:23,000 --> 00:05:26,000 In questo caso ho scelto di non farlo. 80 00:05:26,000 --> 00:05:33,000 Onestamente, vedrete cose diverse tra i programmatori diversi. 81 00:05:33,000 --> 00:05:40,000 PHP è in genere utilizzato spesso in combinazione con HTML 82 00:05:40,000 --> 00:05:45,000 e in altre lingue, e così a volte la stampa sarà un po 'eccentrico 83 00:05:45,000 --> 00:05:50,000 se si trattino entro inizio PHP e tag di chiusura. 84 00:05:50,000 --> 00:05:53,000 Dipende. 85 00:05:53,000 --> 00:05:56,000 In questo caso il copia e incolla non incollare le schede per me, 86 00:05:56,000 --> 00:06:02,000 ma sicuramente si, come hai detto tu, renderlo più chiaro. 87 00:06:02,000 --> 00:06:06,000 Va bene, se si salva il codice in dynamic.php 88 00:06:06,000 --> 00:06:10,000 allora cosa si può fare è scendere a finestra del terminale dove mi trovo qui 89 00:06:10,000 --> 00:06:17,000 in gedit, e di fare l'equivalente di compilazione 90 00:06:17,000 --> 00:06:20,000 usando make e poi esegue il codice in C 91 00:06:20,000 --> 00:06:25,000 tutto quello che hanno a che fare con il file PHP è avviare l'interprete PHP, 92 00:06:25,000 --> 00:06:30,000 che è un piccolo programma chiamato PHP, 93 00:06:30,000 --> 00:06:35,000 e l'argomento ti danno per l'interprete è il file che si desidera interpretare. 94 00:06:35,000 --> 00:06:40,000 In questo caso, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Ops, dove l'ho messo? 96 00:06:43,000 --> 00:06:52,000 Oh, l'ho messo nella sezione 9, ed eccomi qui. Ecco perché. 97 00:06:52,000 --> 00:06:57,000 >> Ora, se faccio funzionare di nuovo 98 00:06:57,000 --> 00:07:02,000 si vede che nella mia prima chiamata funzione gettype 99 00:07:02,000 --> 00:07:04,000 var è un numero intero. 100 00:07:04,000 --> 00:07:12,000 Nella prossima var è una stringa, e poi nel terzo var è un valore booleano. 101 00:07:12,000 --> 00:07:15,000 La cosa interessante di questo è che se ci scorrere verso l'alto si vede che 102 00:07:15,000 --> 00:07:18,000 questi sono tipi simili a quelli che abbiamo avuto in C. 103 00:07:18,000 --> 00:07:22,000 Abbiamo avuto interi in C. 104 00:07:22,000 --> 00:07:26,000 Abbiamo avuto una sorta di stringhe in C, 105 00:07:26,000 --> 00:07:31,000 così stringhe non erano un tipo completamente legit nel senso che 106 00:07:31,000 --> 00:07:37,000 la nostra stringa CS50 era proprio quello? 107 00:07:37,000 --> 00:07:39,000 Scusa? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Sì, è stato questo char * abbiamo usato. 110 00:07:43,000 --> 00:07:47,000 All'inizio del semestre siamo stati con il tipo di stringa, 111 00:07:47,000 --> 00:07:52,000 ma era davvero un char * sotto il cofano. 112 00:07:52,000 --> 00:07:58,000 Abbiamo appena tipo definita, mentre in PHP queste stringhe sono un tipo effettivo. 113 00:07:58,000 --> 00:08:07,000 Non c'è più nulla di questa roba tipo char *. 114 00:08:07,000 --> 00:08:10,000 >> Vedrai che possiamo fare tante altre cose con le stringhe 115 00:08:10,000 --> 00:08:14,000 molto più facilmente in PHP di quanto si potrebbe in C, 116 00:08:14,000 --> 00:08:17,000 e poi finalmente, abbiamo questo tipo booleano, e la grande differenza qui è che 117 00:08:17,000 --> 00:08:21,000 se si scorre indietro vediamo che il nome di questi tipi 118 00:08:21,000 --> 00:08:28,000 ora sono integer, string, boolean e invece di, int e bool 119 00:08:28,000 --> 00:08:31,000 e come si prende in mano diversi linguaggi di programmazione, 120 00:08:31,000 --> 00:08:36,000 partendo dal presupposto che a un certo punto nella vostra vita si entrerà in contatto con 121 00:08:36,000 --> 00:08:40,000 quelle diverse noterete piccoli capricci come questo 122 00:08:40,000 --> 00:08:44,000 dove C chiama interi interi. 123 00:08:44,000 --> 00:08:46,000 Alcuni lo chiamano numeri interi. 124 00:08:46,000 --> 00:08:51,000 Ci sono altri termini che si incorrerà in. 125 00:08:51,000 --> 00:08:55,000 Int Big abbiamo visto oggi in SQL. 126 00:08:55,000 --> 00:08:59,000 Ci sono anche un numero, quindi bool, boolean, 127 00:08:59,000 --> 00:09:03,000 tutti i tipi di differenze lì. 128 00:09:03,000 --> 00:09:07,000 >> Questo non è molto interessante, ma ora ho intenzione di darvi un po 'di tempo- 129 00:09:07,000 --> 00:09:13,000 se lo zoom indietro a lavorare con questo esercizio in fondo alla pagina 3 130 00:09:13,000 --> 00:09:20,000 dove si chiede che tipo corrispondono a questi valori qui in basso. 131 00:09:20,000 --> 00:09:24,000 Abbiamo 3.50. 132 00:09:24,000 --> 00:09:28,000 Noi abbiamo questa cosa qui, che è interessante. 133 00:09:28,000 --> 00:09:32,000 Non abbiamo mai visto prima, ma se avete seguito lungo in conferenza 134 00:09:32,000 --> 00:09:35,000 probabilmente già sapete di cosa si tratta. 135 00:09:35,000 --> 00:09:40,000 Poi abbiamo questo, che questo è una specie di funky. 136 00:09:40,000 --> 00:09:42,000 Riconosci questo. 137 00:09:42,000 --> 00:09:46,000 Che cosa è questo in C? 138 00:09:46,000 --> 00:09:50,000 Sam? Quale sarebbe questo vi darà in C? 139 00:09:50,000 --> 00:09:54,000 Sarebbe aprire un file chiamato dynamic.php e renderlo leggibile. 140 00:09:54,000 --> 00:09:58,000 Gia ', e quale sarebbe il tipo di variabile che si assegnerebbe questo? Stelle File >>. 141 00:09:58,000 --> 00:10:02,000 Esattamente, ci assegnarlo a una stella file. 142 00:10:02,000 --> 00:10:08,000 Questo è PHP legittima troppo. 143 00:10:08,000 --> 00:10:12,000 Eseguire questo. Vedi cosa succede quando si passa questo in gettype. 144 00:10:12,000 --> 00:10:19,000 E poi anche verificare che cosa è nullo, cosa che potrebbe essere in PHP. 145 00:10:19,000 --> 00:10:21,000 Ti do un paio di minuti. 146 00:10:21,000 --> 00:10:24,000 Si può letteralmente copiare e incollare questi valori, 147 00:10:24,000 --> 00:10:29,000 e poi faremo un po 'di chiamata a caso su di voi 148 00:10:29,000 --> 00:10:34,000 e vedere quello che abbiamo ottenuto. 149 00:10:34,000 --> 00:10:36,000 >> [Studente] Ho una domanda. << Si '. 150 00:10:36,000 --> 00:10:40,000 In una delle lezioni Davide ha detto che c'è qualcosa che si può mettere nella parte superiore del file 151 00:10:40,000 --> 00:10:43,000 in modo da non dover digitare ogni volta in PHP. 152 00:10:43,000 --> 00:10:45,000 Che cosa è stato? 153 00:10:45,000 --> 00:10:50,000 Probabilmente stava parlando il botto sterlina, il botto hash. 154 00:10:50,000 --> 00:10:57,000 E 'una direttiva che, se si contrassegna il file come eseguibile 155 00:10:57,000 --> 00:11:01,000 allora ciò che fa è quando si esegue il file 156 00:11:01,000 --> 00:11:06,000 che dirà il programma di shell 157 00:11:06,000 --> 00:11:12,000 utilizzare l'interprete PHP di interpretare il contenuto del file. 158 00:11:12,000 --> 00:11:16,000 La domanda di essere quello che era questa linea speciale 159 00:11:16,000 --> 00:11:20,000 che potremmo includere nella parte superiore dei nostri file PHP di avere di non includere 160 00:11:20,000 --> 00:11:26,000 questa linea PHP o se questo comando PHP ogni volta che si vuole eseguire il file? 161 00:11:26,000 --> 00:11:31,000 E si può effettivamente fare questo con un gruppo di file diversi. 162 00:11:31,000 --> 00:11:37,000 Credo che dipende da dove il file binario PHP viene memorizzato, 163 00:11:37,000 --> 00:11:43,000 ma spesso usr / bin / php è un buon punto di partenza. 164 00:11:43,000 --> 00:11:45,000 È possibile calcolare questo fuori esattamente tornando verso il basso per il vostro apparecchio 165 00:11:45,000 --> 00:11:50,000 e digitando che php. 166 00:11:50,000 --> 00:11:55,000 Il comando che capisce quando si eseguono binario 167 00:11:55,000 --> 00:12:01,000 o un comando in cui il file corrispondente. 168 00:12:01,000 --> 00:12:06,000 Questo mi dice che il PHP è davvero aliasing questo file binario 169 00:12:06,000 --> 00:12:13,000 che è memorizzato in usr / bin, che è dove un sacco di file binari di sistema sono installati. 170 00:12:13,000 --> 00:12:21,000 Per esempio, se ho scorrere fino alla cima, ora che ho messo questo #! linea qui 171 00:12:21,000 --> 00:12:27,000 Posso scorrere verso il basso, e posso provare a eseguire 172 00:12:27,000 --> 00:12:35,000 dynamic.php, ma ottengo questo errore su autorizzazione negata, 173 00:12:35,000 --> 00:12:42,000 e che cosa significa è che questo file non riesce a dare autorizzazioni di esecuzione. 174 00:12:42,000 --> 00:12:46,000 Non è contrassegnato come un file che qualcuno può essere eseguito. 175 00:12:46,000 --> 00:12:52,000 >> Quando è stato eseguito Marca o Clang e hai ottenuto un file eseguibile da esso 176 00:12:52,000 --> 00:12:56,000 il compilatore è stato abbastanza intelligente da sapere che ehi, sto costruendo un file eseguibile. 177 00:12:56,000 --> 00:13:00,000 Probabilmente si desidera eseguirlo, quindi sarebbe configurerà automaticamente 178 00:13:00,000 --> 00:13:02,000 le autorizzazioni per voi. 179 00:13:02,000 --> 00:13:06,000 Questo non è il caso, però, quando si crea un normale file da zero, 180 00:13:06,000 --> 00:13:13,000 Il motivo è di solito non si vuole avere alcun file sul vostro sistema sia eseguibile, 181 00:13:13,000 --> 00:13:15,000 in modo che effettivamente andare e farlo manualmente. 182 00:13:15,000 --> 00:13:22,000 Il modo più semplice per farlo è con il comando chmod, 183 00:13:22,000 --> 00:13:28,000 e chmod + x dice aggiungere il bit di esecuzione 184 00:13:28,000 --> 00:13:31,000 perché c'è il bit di lettura, la scrittura di bit e il bit di esecuzione, 185 00:13:31,000 --> 00:13:35,000 r, w e x, 186 00:13:35,000 --> 00:13:39,000 e dicendo: chmod + x si accende il bit di esecuzione 187 00:13:39,000 --> 00:13:46,000 per il file che specifica, che in questo caso sarà dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Studente] è che acceso per tutti? 189 00:13:49,000 --> 00:13:52,000 Diamo check this out, quindi come faccio a controllare i permessi? 190 00:13:52,000 --> 00:13:54,000 Sai come mi piacerebbe verificare i permessi di un file? 191 00:13:54,000 --> 00:13:56,000 [Risposta degli studenti incomprensibile] 192 00:13:56,000 --> 00:13:58,000 Scusa? >> [Studente] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD ci dà il file in hack. 194 00:14:03,000 --> 00:14:09,000 Elencare tutti i file,-l, mi mostra tutti i file nella mia directory 195 00:14:09,000 --> 00:14:13,000 tipo di nella loro lunga, verbose, e così qui vediamo che 196 00:14:13,000 --> 00:14:17,000 questo file dynamic.php 197 00:14:17,000 --> 00:14:23,000 è stato modificato l'ultima volta 5 novembre alle ore 4:21. 198 00:14:23,000 --> 00:14:26,000 Il proprietario di questo file è jharvard. 199 00:14:26,000 --> 00:14:28,000 E 'l'utente che è loggato 200 00:14:28,000 --> 00:14:31,000 E 'l'utente La mia attività, 201 00:14:31,000 --> 00:14:36,000 e se siete anche l 'apparecchio si sta lavorando anche come jharvard utente. 202 00:14:36,000 --> 00:14:38,000 Tu sei nel gruppo di studenti, 203 00:14:38,000 --> 00:14:44,000 e queste sono le cose che vedrete abbastanza spesso. 204 00:14:44,000 --> 00:14:47,000 >> Possiamo andare in un sacco di dettaglio in questa sede, 205 00:14:47,000 --> 00:14:50,000 ma per la maggior parte ciò che si desidera guardare quando stai cercando di vedere 206 00:14:50,000 --> 00:14:55,000 se un file è eseguibile è in primo luogo 207 00:14:55,000 --> 00:14:58,000 l'utente che possiede il file, il proprietario, 208 00:14:58,000 --> 00:15:03,000 quindi questo jharvard, e poi abbiamo 209 00:15:03,000 --> 00:15:07,000 i bit di permesso qui sopra a sinistra, 210 00:15:07,000 --> 00:15:13,000 e il modo di leggere questo è che l'ultimo bit 211 00:15:13,000 --> 00:15:18,000 tipicamente viene utilizzato per marcare o meno, almeno in questo caso 212 00:15:18,000 --> 00:15:21,000 questo ultimo bit viene spesso impostata ad indicare 213 00:15:21,000 --> 00:15:24,000 che il file è una directory e non solo un normale file. 214 00:15:24,000 --> 00:15:28,000 Poi i seguenti 3 bit proprio qui 215 00:15:28,000 --> 00:15:34,000 determinare le autorizzazioni che il proprietario del file ha, 216 00:15:34,000 --> 00:15:38,000 in questo caso jharvard, come il proprietario del file, in grado di leggere e scrivere il file, 217 00:15:38,000 --> 00:15:42,000 ma c'è un trattino dicendo che jharvard non è possibile eseguire questo file. 218 00:15:42,000 --> 00:15:46,000 I successivi 3 bit sono per il gruppo, quindi questo è il gruppo di studenti, 219 00:15:46,000 --> 00:15:49,000 quindi se ci fossero più utenti sul mio apparecchio, 220 00:15:49,000 --> 00:15:52,000 e abbiamo avuto più utenti come parte del gruppo di studenti, 221 00:15:52,000 --> 00:15:55,000 poi tutti possono leggere il file, ma non possono scrivere, 222 00:15:55,000 --> 00:15:59,000 e similmente chiunque altro, il mondo 223 00:15:59,000 --> 00:16:01,000 possono solo leggere il file pure. 224 00:16:01,000 --> 00:16:03,000 C'è una buona, interessante resoconto a lungo su questo, 225 00:16:03,000 --> 00:16:05,000 in modo da poter leggere online. 226 00:16:05,000 --> 00:16:10,000 Nel set di specifiche problema entriamo in questo in modo più dettagliato. 227 00:16:10,000 --> 00:16:12,000 >> [Studente] è il 218 facendo riferimento al mondo? 228 00:16:12,000 --> 00:16:17,000 Il 218 è, la parte superiore della mia testa sto dimenticando, 229 00:16:17,000 --> 00:16:20,000 ma no. 230 00:16:20,000 --> 00:16:29,000 Vediamo un po '. Sto a blanking che in questo momento. 231 00:16:29,000 --> 00:16:32,000 Torna a ciò che stavamo per fare con questo chmod + x 232 00:16:32,000 --> 00:16:37,000 dove abbiamo voluto dare autorizzazioni di esecuzione dynamic.php, 233 00:16:37,000 --> 00:16:40,000 e la questione era se questo darebbe autorizzazioni di esecuzione a tutti 234 00:16:40,000 --> 00:16:44,000 o semplicemente jharvard, e si può vedere questo 235 00:16:44,000 --> 00:16:48,000 l'esecuzione dei comandi e digitando ls-l, 236 00:16:48,000 --> 00:16:51,000 e ora vediamo che è marcato come eseguibile. 237 00:16:51,000 --> 00:16:54,000 Si vede che c'è stato un cambiamento di colore. 238 00:16:54,000 --> 00:16:57,000 Ora dynamic.php è elencato in verde, 239 00:16:57,000 --> 00:17:01,000 e sembra che la risposta alla domanda è che cosa, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Solo jharvard. >> Solo jharvard, si '. 241 00:17:04,000 --> 00:17:08,000 >> Se volessimo trasformare il bit eseguibile per tutti 242 00:17:08,000 --> 00:17:10,000 come potremmo fare? 243 00:17:10,000 --> 00:17:13,000 Qualche idea? >> A + x? 244 00:17:13,000 --> 00:17:15,000 Sì, esattamente. 245 00:17:15,000 --> 00:17:23,000 Charlotte ha detto che possiamo fare di chmod a + x di dynamic.php, 246 00:17:23,000 --> 00:17:26,000 e ora se corriamo ls-l vediamo che i bit eseguibili 247 00:17:26,000 --> 00:17:30,000 sono infatti attivati ​​per tutti. 248 00:17:30,000 --> 00:17:37,000 E si può effettivamente fare il contrario di questo, in modo da poterlo spegnere per tutti 249 00:17:37,000 --> 00:17:41,000 utilizzando meno. 250 00:17:41,000 --> 00:17:46,000 Ora è spenta, e ora siamo in grado di riaccenderlo per jharvard 251 00:17:46,000 --> 00:17:52,000 in modo da poter effettivamente correre adesso, 252 00:17:52,000 --> 00:17:58,000 e adesso che si vede quando si esegue il codice di questo speciale #! riga in alto, 253 00:17:58,000 --> 00:18:04,000 #! linea, ha detto la shell, 254 00:18:04,000 --> 00:18:08,000 detto che il nostro terminale hey, quando questo file viene eseguito, 255 00:18:08,000 --> 00:18:14,000 usare / usr / bin / php per interpretare questo file 256 00:18:14,000 --> 00:18:20,000 e poi stampare l'output. 257 00:18:20,000 --> 00:18:22,000 [Domanda studente incomprensibile] 258 00:18:22,000 --> 00:18:25,000 Certo, fammi scorrere verso l'alto. Proprio come questo. 259 00:18:25,000 --> 00:18:36,000 Vedrete tutte queste direttive iniziare con questo sterlina e poi il punto esclamativo, 260 00:18:36,000 --> 00:18:39,000 a volte chiamato shebang, bang hash. 261 00:18:39,000 --> 00:18:48,000 >> [Studente] Come possiamo correre con dynamic.php php prima di renderlo eseguibile? 262 00:18:48,000 --> 00:18:55,000 La domanda era: come possiamo eseguire questa operazione utilizzando il binario PHP 263 00:18:55,000 --> 00:18:58,000 mentre dynamic.php non è eseguibile? 264 00:18:58,000 --> 00:19:01,000 Questo è super importante, perché questo è esattamente il modo 265 00:19:01,000 --> 00:19:06,000 sta andando a lavorare quando si scrive insieme problema 7. 266 00:19:06,000 --> 00:19:09,000 Maggior parte dei file temporali PHP non sono eseguibili direttamente. 267 00:19:09,000 --> 00:19:14,000 Il modo in cui funziona è perché è il binario PHP che è eseguibile. 268 00:19:14,000 --> 00:19:16,000 L'interprete è la cosa che è in corso di esecuzione, 269 00:19:16,000 --> 00:19:20,000 e così quello che sta facendo è letteralmente slurping l'intero contenuto 270 00:19:20,000 --> 00:19:25,000 del nostro file dynamic.php e linea che per linea 271 00:19:25,000 --> 00:19:29,000 e l'esecuzione di questi comandi, in modo da che sta utilizzando il nostro file PHP 272 00:19:29,000 --> 00:19:31,000 come una lista di istruzioni. 273 00:19:31,000 --> 00:19:36,000 Non è direttamente esecuzione. 274 00:19:36,000 --> 00:19:40,000 Ecco dove si dice che questi file vengono interpretati in fase di esecuzione. 275 00:19:40,000 --> 00:19:46,000 E 'un linguaggio di tempo di esecuzione, invece di qualcosa che è determinato in fase di compilazione, 276 00:19:46,000 --> 00:19:49,000 non è un linguaggio compilato come il C. 277 00:19:49,000 --> 00:19:54,000 >> C'è un modo per avere una lingua in fase di esecuzione di agire come se fosse una lingua in fase di compilazione, 278 00:19:54,000 --> 00:19:58,000 come se si dispone di tutto il funzionamento fatto sul server 279 00:19:58,000 --> 00:20:00,000 piuttosto, sai cosa voglio dire? 280 00:20:00,000 --> 00:20:04,000 Sì, quindi la domanda è 281 00:20:04,000 --> 00:20:11,000 c'è un modo per ottenere lingue fase di esecuzione per agire più come tipi in fase di compilazione di linguaggi? 282 00:20:11,000 --> 00:20:18,000 E ci sono, voglio dire, che è un'area attiva di ricerca per un sacco di queste aziende. 283 00:20:18,000 --> 00:20:22,000 Credo che Facebook ha fatto un sacco di lavoro con PHP 284 00:20:22,000 --> 00:20:25,000 e la compilazione verso il basso, il che rende più veloce, ottimizzandolo 285 00:20:25,000 --> 00:20:29,000 in quanto il loro sito è costruito su PHP. 286 00:20:29,000 --> 00:20:34,000 Se avete seguito node.js a tutti, 287 00:20:34,000 --> 00:20:40,000 che è una specie di interprete JavaScript 288 00:20:40,000 --> 00:20:44,000 per essere in grado di eseguire JavaScript al di fuori del browser, al di fuori del tuo browser web, 289 00:20:44,000 --> 00:20:47,000 perché tradizionalmente JavaScript sarebbe solo eseguire all'interno di Firefox o Chrome, 290 00:20:47,000 --> 00:20:52,000 e sarebbe usato per fare animazioni raffreddare accadere in una pagina web 291 00:20:52,000 --> 00:20:55,000 e rendere la vostra pagina web dinamica. 292 00:20:55,000 --> 00:20:59,000 Questo è stato costruito su un lotto di lavoro che Google ha fatto 293 00:20:59,000 --> 00:21:03,000 accertarti che lo JavaScript e C + + 294 00:21:03,000 --> 00:21:09,000 legano insieme, quindi c'è un sacco di ricerca attiva 295 00:21:09,000 --> 00:21:13,000 ottenere questi linguaggi di interagire e di ottimizzarli, 296 00:21:13,000 --> 00:21:17,000 in primo luogo perché così tante persone in grado di codificare in PHP e JavaScript 297 00:21:17,000 --> 00:21:19,000 perché è molto più facile. 298 00:21:19,000 --> 00:21:21,000 E 'molto più gradevole. Non hai puntatori. 299 00:21:21,000 --> 00:21:27,000 Non si dispone di tipi di galleggianti intorno. 300 00:21:27,000 --> 00:21:31,000 Volevano ottenere i benefici di queste lingue in fase di compilazione 301 00:21:31,000 --> 00:21:36,000 con tutto il controllo del tipo e la velocità e l'utilizzo di memoria inferiore e tutto questo 302 00:21:36,000 --> 00:21:42,000 mantenendo la flessibilità e facilità d'uso di questi nuovi. 303 00:21:42,000 --> 00:21:46,000 >> Torniamo al nostro piano originale di attacco. 304 00:21:46,000 --> 00:21:50,000 Abbiamo un paio di queste domande qui nel nostro spec problema insieme. 305 00:21:50,000 --> 00:21:54,000 Andiamo attraverso di loro molto in fretta, e andremo in giro per la stanza. 306 00:21:54,000 --> 00:21:59,000 Charlotte, che tipo è 3.50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] Questo è un doppio. >> E 'un doppio. 308 00:22:01,000 --> 00:22:03,000 Jimmy, che cosa è questo prossimo? >> Un array. 309 00:22:03,000 --> 00:22:09,000 Un array, impressionante, e Jared, qual è la fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] E 'una risorsa. >> E' una risorsa. 311 00:22:11,000 --> 00:22:15,000 Questo è il tipo di una nuova, non una stella file, non un file. 312 00:22:15,000 --> 00:22:19,000 E 'una risorsa è il tipo in PHP, 313 00:22:19,000 --> 00:22:24,000 e mi dispiace, Ella, l'ipotesi ultima è che cosa? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, come è scritto in PHP? >> Allo stesso modo. 316 00:22:28,000 --> 00:22:30,000 Allo stesso modo, capitali? >> Si '. 317 00:22:30,000 --> 00:22:33,000 Si, va bene. 318 00:22:33,000 --> 00:22:35,000 Ci siamo, abbiamo una doppia, abbiamo un array, 319 00:22:35,000 --> 00:22:41,000 abbiamo una risorsa, e poi abbiamo nulla. 320 00:22:41,000 --> 00:22:48,000 Vediamo ora hai visto, 321 00:22:48,000 --> 00:22:51,000 vediamo, quindi adesso credo che quello che voglio anche fare è tirare su 322 00:22:51,000 --> 00:22:56,000 questa pagina web proprio qui, questo php.net / manuale, 323 00:22:56,000 --> 00:23:01,000 quindi se voi ragazzi che copiare e aprire un browser web. 324 00:23:01,000 --> 00:23:07,000 Ho intenzione di tirare su Chrome, metterlo trovi 325 00:23:07,000 --> 00:23:10,000 Voglio mostrarvi questo non solo perché 326 00:23:10,000 --> 00:23:13,000 possiamo parlare tutto il giorno sui tipi e tutte quelle cose divertenti 327 00:23:13,000 --> 00:23:19,000 ma perché questo è il manuale di PHP, 328 00:23:19,000 --> 00:23:23,000 e ci sono un sacco di programmatori PHP là fuori. 329 00:23:23,000 --> 00:23:26,000 Ci sono un sacco di siti web PHP là fuori, 330 00:23:26,000 --> 00:23:31,000 e di conseguenza, vi è una quantità di documenti su PHP, 331 00:23:31,000 --> 00:23:36,000 e il manuale, questo php.net, è un buon posto per andare 332 00:23:36,000 --> 00:23:43,000 ogni volta che hai domande su ciò che è il modo migliore di fare X in PHP 333 00:23:43,000 --> 00:23:45,000 o quello che ha una funzione simile? 334 00:23:45,000 --> 00:23:49,000 Solo tipo di familiarizzare con come si presenta, perché 335 00:23:49,000 --> 00:23:54,000 sarete venire spesso qui, un po 'per il problema impostato 7. 336 00:23:54,000 --> 00:23:57,000 >> Se si finisce per fare un progetto finale che utilizza PHP 337 00:23:57,000 --> 00:24:04,000 questo sarà un luogo diventerete molto ben informato. 338 00:24:04,000 --> 00:24:09,000 Spesso il modo di farlo è quello che usano Google per cercare il sito, 339 00:24:09,000 --> 00:24:16,000 e non utilizzare la casella di ricerca che è qui in alto a destra, che è una specie di minuscolo. 340 00:24:16,000 --> 00:24:19,000 Se siete in giro per usare Google qualcosa a che fare con PHP e si vede 341 00:24:19,000 --> 00:24:24,000 uno dei collegamenti manuali pop-up in genere è possibile avvalersi di tale 342 00:24:24,000 --> 00:24:31,000 come una risorsa abbastanza buona. 343 00:24:31,000 --> 00:24:34,000 Impressionante, così fuori di questi tipi, solo per curiosità, 344 00:24:34,000 --> 00:24:37,000 quali non abbiamo visto? 345 00:24:37,000 --> 00:24:40,000 Tutto ciò che non abbiamo visto qui? 346 00:24:40,000 --> 00:24:44,000 [Studente] Resource. >> Abbiamo visto delle risorse con la chiamata fopen. 347 00:24:44,000 --> 00:24:48,000 [Studente] Oggetti. >> Oggetti che non abbiamo visto di sicuro. 348 00:24:48,000 --> 00:24:51,000 Callback non abbiamo visto. 349 00:24:51,000 --> 00:24:54,000 Ci sono alcuni di questi pseudo-tipi. 350 00:24:54,000 --> 00:24:57,000 Abbiamo sicuramente visto solo numeri interi e doppio. 351 00:24:57,000 --> 00:25:01,000 Non abbiamo visto alcuni degli altri, per cui se si clicca su interi 352 00:25:01,000 --> 00:25:08,000 possiamo vedere ci sono dei numeri interi altro modo, che abbiamo qui? 353 00:25:08,000 --> 00:25:11,000 Sono tutti così, intero, intero, intero. 354 00:25:11,000 --> 00:25:14,000 Alcune lingue hanno più grandi tipi interi, 355 00:25:14,000 --> 00:25:23,000 come abbiamo visto su MySQL oggi c'era int e poi int grande. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Quindi, PHP manuale. 358 00:25:28,000 --> 00:25:37,000 Torniamo al nostro problema di set di specifiche, e noi ora scorrere fino alla pagina 4. 359 00:25:37,000 --> 00:25:41,000 Una delle cose che accadono quando si arriva nelle lingue 360 00:25:41,000 --> 00:25:49,000 che non hanno questa tipizzazione statica, così nelle lingue in cui si deve dichiarare 361 00:25:49,000 --> 00:25:52,000 il tipo di un fronte up variabile 362 00:25:52,000 --> 00:26:00,000 è di ottenere i casi in cui si potrebbe iniziare con le variabili di tipo diverso 363 00:26:00,000 --> 00:26:04,000 interagenti tra loro, 364 00:26:04,000 --> 00:26:09,000 e PHP fa questa cosa in cui si cerca di fare 365 00:26:09,000 --> 00:26:13,000 ciò che ritiene essere la cosa più sensata da fare 366 00:26:13,000 --> 00:26:18,000 quando si hanno due tipi diversi interagiscono tra di loro. 367 00:26:18,000 --> 00:26:24,000 Per esempio, se guardiamo a queste righe di codice proprio qui 368 00:26:24,000 --> 00:26:29,000 si vede che abbiamo ottenuto quello che succede quando 369 00:26:29,000 --> 00:26:38,000 cerchiamo di aggiungere la stringa 1 per l'intero 2. 370 00:26:38,000 --> 00:26:41,000 Cosa succede se si tenta di aggiungere una stringa che non è un valore numerico 371 00:26:41,000 --> 00:26:48,000 ma piuttosto i caratteri effettivi, CS per il numero 50? 372 00:26:48,000 --> 00:26:51,000 Poi vedremo c'è qualcosa di diverso che accade quando 373 00:26:51,000 --> 00:26:56,000 invece di aggiungere una stringa in un numero che stiamo aggiungendo un numero in una stringa, 374 00:26:56,000 --> 00:27:00,000 e così via e così via, fino al punto in cui stiamo ottenendo 375 00:27:00,000 --> 00:27:05,000 qualche tipo di cose strane proprio qui, dove abbiamo 7 + vero. 376 00:27:05,000 --> 00:27:09,000 Che diavolo vuol dire? 377 00:27:09,000 --> 00:27:19,000 >> Se voi andate avanti e incolla una parte di questo codice nel vostro apparecchio. 378 00:27:19,000 --> 00:27:27,000 È possibile mantenere in dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Staremo a vedere cosa succede. 380 00:27:41,000 --> 00:27:43,000 [Studente] Basta usare stampa non, printf? 381 00:27:43,000 --> 00:27:52,000 Gia ', in modo da trovare che la stampa è anche una funzione valida per la stampa in PHP. 382 00:27:52,000 --> 00:27:54,000 Ci sono molti modi diversi di farlo. 383 00:27:54,000 --> 00:27:58,000 Staremo a vedere con un paio di esempi in seguito una volta che si comincia a parlare 384 00:27:58,000 --> 00:28:02,000 il problema unico che andremo a scrivere 385 00:28:02,000 --> 00:28:06,000 e poi la concentrazione problema che stiamo per scrivere 386 00:28:06,000 --> 00:28:09,000 che, anche se abbiamo fopen e fclose 387 00:28:09,000 --> 00:28:15,000 che non è spesso il modo più semplice per leggere il contenuto di un file. 388 00:28:15,000 --> 00:28:21,000 PHP ha un sacco di questi C-come un residuo. 389 00:28:21,000 --> 00:28:28,000 [Studente] Quando ho messo in tutte le 6 di quelle cose che ottiene solo un numero come uscita. 390 00:28:28,000 --> 00:28:36,000 [Nate H] Quando si mette in tutte le 6 di queste cose. 391 00:28:36,000 --> 00:28:39,000 Vediamo che è perché è possibile- 392 00:28:39,000 --> 00:28:46,000 una cosa è che queste chiamate di stampa non sono terminati alla fine con nuove linee. 393 00:28:46,000 --> 00:28:49,000 Non c'è da nuova linea che separa ciascuno di tali inviti stampa, 394 00:28:49,000 --> 00:28:51,000 così forse che stai ricevendo un numero di grandi dimensioni, 395 00:28:51,000 --> 00:28:58,000 ed è davvero solo amalgama di caratteri di nuova riga. 396 00:28:58,000 --> 00:29:00,000 [Studente] Va bene, come faccio a fare in modo- 397 00:29:00,000 --> 00:29:03,000 Beh, ci sono un sacco di modi diversi. 398 00:29:03,000 --> 00:29:06,000 Si potrebbe mettere in mano una stampa di un carattere di nuova riga, 399 00:29:06,000 --> 00:29:09,000 l'eco di un carattere di nuova riga, 400 00:29:09,000 --> 00:29:12,000 stampa della nuova linea. 401 00:29:12,000 --> 00:29:16,000 [Studente] Così eco è la stessa cosa di printf? 402 00:29:16,000 --> 00:29:21,000 >> È Printf come il C printf 403 00:29:21,000 --> 00:29:24,000 dove si sta stampando una stringa formattata. 404 00:29:24,000 --> 00:29:32,000 Lo stai fornendo la stringa di formato e quindi tutte le variabili segnaposto. 405 00:29:32,000 --> 00:29:39,000 Spesso è una cosa che non viene utilizzato, 406 00:29:39,000 --> 00:29:42,000 vediamo, come una dichiarazione di non responsabilità, 407 00:29:42,000 --> 00:29:48,000 Sono meno familiarità con PHP di me con i linguaggi web, 408 00:29:48,000 --> 00:29:53,000 e quando ho programmato in PHP Io di solito non uso printf 409 00:29:53,000 --> 00:29:59,000 perché ritengo che sia più veloce per utilizzare le funzionalità di stringa di interpolazione che ha, 410 00:29:59,000 --> 00:30:04,000 che vedremo entrare e vi mostrerò in un secondo, 411 00:30:04,000 --> 00:30:08,000 mentre in C che tipo di fare questa cosa hacky per farlo stampare in modo corretto. 412 00:30:08,000 --> 00:30:16,000 Si può effettivamente mettere direttamente le variabili in stringhe in PHP. 413 00:30:16,000 --> 00:30:22,000 È Printf tipo di troppo lungo o quello che faccio di solito. Sì, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] Generalmente se l'errore di analisi significa- 415 00:30:25,000 --> 00:30:30,000 come in C, non ti dice esattamente dove l'errore è e quello che è, 416 00:30:30,000 --> 00:30:34,000 così vuol dire guardare attraverso il vostro intero codice e capirlo? 417 00:30:34,000 --> 00:30:39,000 E 'in genere più mirato di quello. 418 00:30:39,000 --> 00:30:48,000 Penso che in quel caso era un po 'fuori, 419 00:30:48,000 --> 00:30:51,000 quindi penso che in quel caso ci mancava un punto e virgola. 420 00:30:51,000 --> 00:30:54,000 Si è cercato di dare un senso a tutto, 421 00:30:54,000 --> 00:30:57,000 così come questi linguaggi interpretati, l'interprete sta per provare 422 00:30:57,000 --> 00:31:01,000 e fare del suo meglio per far funzionare il tutto in modo appropriato. 423 00:31:01,000 --> 00:31:04,000 >> Vedrai, ad esempio, in JavaScript 424 00:31:04,000 --> 00:31:10,000 spesso si-line le dichiarazioni finali un punto e virgola proprio come accade in PHP, 425 00:31:10,000 --> 00:31:13,000 proprio come fanno in C. 426 00:31:13,000 --> 00:31:15,000 In JavaScript alcuni degli interpreti JavaScript 427 00:31:15,000 --> 00:31:20,000 in un sacco di browser messi a punto e virgola per voi 428 00:31:20,000 --> 00:31:23,000 se vi capita di essere loro mancante. 429 00:31:23,000 --> 00:31:29,000 Cercheranno e ospitare per qualche trascuratezza da parte vostra. 430 00:31:29,000 --> 00:31:34,000 Ecco dove si potrebbe provare e provare e cercare di far funzionare le cose, 431 00:31:34,000 --> 00:31:36,000 e poi finalmente si arriva a un punto in cui si dice bene, 432 00:31:36,000 --> 00:31:38,000 Non riesco a far funzionare le cose sul salvataggio, ed è lì che si otterrà un numero di riga 433 00:31:38,000 --> 00:31:44,000 che potrebbe sembrare un po 'fuori dal luogo esatto. 434 00:31:44,000 --> 00:31:47,000 Va bene, quindi cerchiamo di passare attraverso questo molto velocemente. 435 00:31:47,000 --> 00:31:50,000 Abbiamo lasciato fuori con Ella, quindi cerchiamo di andare oltre a Missy, 436 00:31:50,000 --> 00:31:54,000 e Missy, che cosa stampa della stringa 1 più il numero 2 ti danno? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Ha senso? Ordina di? 439 00:31:59,000 --> 00:32:02,000 Non ti dà un numero? Non ti darà una stringa? 440 00:32:02,000 --> 00:32:05,000 [Missy] Un numero. >> E 'un numero. 441 00:32:05,000 --> 00:32:09,000 Ma è la stampa, in modo che sta per dare una sorta di stringa. 442 00:32:09,000 --> 00:32:12,000 >> Una cosa che possiamo fare per controllare questo fuori 443 00:32:12,000 --> 00:32:21,000 è se lo facciamo $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 e allora diciamo eco di gettype, 445 00:32:28,000 --> 00:32:33,000 quindi stiamo usando un terzo tipo di stampa qui. 446 00:32:33,000 --> 00:32:39,000 Ora siamo in grado di vedere quello che succede qui. 447 00:32:39,000 --> 00:32:42,000 Ecco quello che abbiamo ottenuto è che abbiamo ottenuto un numero intero da questo. 448 00:32:42,000 --> 00:32:45,000 Anche se ci sono stati l'aggiunta di questa stringa in un numero, 449 00:32:45,000 --> 00:32:48,000 non abbiamo una stringa di fuori di esso, proprio come ha detto Missy. 450 00:32:48,000 --> 00:32:52,000 Siamo stati sempre un numero intero. 451 00:32:52,000 --> 00:32:57,000 Ok, allora vediamo, next up, Kevin. 452 00:32:57,000 --> 00:32:59,000 CS + 50? >> [Kevin] 50. 453 00:32:59,000 --> 00:33:02,000 [Nate H] 50. Ha senso? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Si '. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Perché? Perché ha senso per te? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Perché è solo che hanno la stringa, un valore nullo numero. 457 00:33:11,000 --> 00:33:16,000 Sì, grande. 458 00:33:16,000 --> 00:33:20,000 Tipo di situazioni ambigue, ma è bene sapere cosa succede. 459 00:33:20,000 --> 00:33:25,000 Stella, cosa succede dopo con il numero 1 + stringa 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3. >> 3 di nuovo. 461 00:33:27,000 --> 00:33:30,000 E in questo caso, non si ottiene una stringa o un numero? 462 00:33:30,000 --> 00:33:36,000 >> Diamo a questo una prova. 463 00:33:36,000 --> 00:33:43,000 Qualcuno più veloce di me la risposta? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, I didn't-bene, vediamo, stiamo andando a fare la stessa cosa 465 00:33:46,000 --> 00:33:49,000 dove abbiamo un numero più di una stringa, e stiamo andando a risuonare il tipo, 466 00:33:49,000 --> 00:33:51,000 vedere quello che si ottiene. 467 00:33:51,000 --> 00:33:55,000 Abbiamo anche un numero intero. 468 00:33:55,000 --> 00:33:58,000 Non importa quale sia la stringa, quale è il numero. 469 00:33:58,000 --> 00:34:00,000 Stiamo ancora in corso per ottenere un numero intero. 470 00:34:00,000 --> 00:34:04,000 E 'ancora in corso di fare ciò che ci si potrebbe aspettare. 471 00:34:04,000 --> 00:34:09,000 Va bene, allora Sam, che circa il 90 + 9 bottiglie di birra sul muro? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Non ci sono bottiglie di birra sul muro, però. 474 00:34:15,000 --> 00:34:17,000 Ci dà qualche informazione in più su quello che succede. 475 00:34:17,000 --> 00:34:21,000 [Sam] Se tu avessi scritto 9 in lettere 476 00:34:21,000 --> 00:34:23,000 allora si avrebbe 90, giusto? 477 00:34:23,000 --> 00:34:26,000 [Nate H] Si '. 478 00:34:26,000 --> 00:34:30,000 La domanda era se avessimo scritto 9 su come N-I-N-E 479 00:34:30,000 --> 00:34:34,000 avremmo ottenuto 99 o 90? 480 00:34:34,000 --> 00:34:38,000 Ci piacerebbe avere il 90. 481 00:34:38,000 --> 00:34:42,000 E 'letteralmente in cerca di caratteri numerici. 482 00:34:42,000 --> 00:34:46,000 Non è abbastanza intelligente da riconoscere le parole e numeri che roba. Sì. 483 00:34:46,000 --> 00:34:48,000 >> [Studente] C'è una cosa come la fusione di caratteri in PHP? 484 00:34:48,000 --> 00:34:54,000 C'è, ed è esattamente il modo in cui lo farebbe in C. 485 00:34:54,000 --> 00:34:56,000 Che dire 10/7, Charlotte? 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1,4285. 487 00:34:58,000 --> 00:35:01,000 [Nate H.] Sì, così quello che potrebbe essere sorprendente di questo? 488 00:35:01,000 --> 00:35:04,000 Che cosa accadrebbe se avete fatto questo stesso tipo di cosa in C, 489 00:35:04,000 --> 00:35:06,000 se avete fatto 10/7 in C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Sarebbe solo dare-a seconda di come si typecasted credo 491 00:35:08,000 --> 00:35:12,000 darebbe solo un numero limitato di cifre dopo la virgola. 492 00:35:12,000 --> 00:35:16,000 Gia ', quindi un numero limitato di cifre dopo la virgola. 493 00:35:16,000 --> 00:35:21,000 Che altro potrebbe essere, sarebbe dare tutte le cifre dopo la virgola? 494 00:35:21,000 --> 00:35:28,000 Spesso non, così ancora una volta, a seconda di come lo si sta typecasting 495 00:35:28,000 --> 00:35:31,000 si può o non può convertire in un numero in virgola mobile. 496 00:35:31,000 --> 00:35:35,000 Qui era una sorta di bello che ha fatto. 497 00:35:35,000 --> 00:35:40,000 Se vi abbiamo mostrato questo ritorno quando abbiamo iniziato a fare questo genere di cose in C 498 00:35:40,000 --> 00:35:44,000 probabilmente avrebbe avuto senso un po 'più 499 00:35:44,000 --> 00:35:48,000 che non solo andare a 1. 500 00:35:48,000 --> 00:35:51,000 E poi finalmente, Jamie, che dire 7 + vero? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Che cosa vuol dire? 503 00:35:56,000 --> 00:35:58,000 Credo che dà solo il vero valore di 1. 504 00:35:58,000 --> 00:36:01,000 Gia '. Che cosa succede se cambiamo che su false? 505 00:36:01,000 --> 00:36:04,000 [Studente] 7. 506 00:36:04,000 --> 00:36:09,000 Si ', in modo da ricordare dove si parla di questi valori binari, 507 00:36:09,000 --> 00:36:12,000 1 è attivo, 0 essere fuori? 508 00:36:12,000 --> 00:36:17,000 Ora abbiamo vero è 1, 0 è falso, 509 00:36:17,000 --> 00:36:21,000 e si potrebbe non aver visto negli esempi C che abbiamo fatto in questo semestre passato, 510 00:36:21,000 --> 00:36:27,000 ma storicamente il tipo bool in C non è stato un tipo reale, 511 00:36:27,000 --> 00:36:32,000 così le persone hanno usato 0 e 1 al posto del vero e del falso. 512 00:36:32,000 --> 00:36:35,000 Si tratta di una manifestazione di questo. 513 00:36:35,000 --> 00:36:39,000 >> Ok, allora l'unica parte importante di tutto questo 514 00:36:39,000 --> 00:36:41,000 è che abbiamo questi tipi differenti. 515 00:36:41,000 --> 00:36:43,000 Essi possono interagire con l'altro. 516 00:36:43,000 --> 00:36:49,000 Spesso possono interagire tra loro in modi che sono bella, come abbiamo visto qui. 517 00:36:49,000 --> 00:36:53,000 E 'bello essere in grado di avere la stringa 1 e il numero 2, aggiungerli insieme e 3. 518 00:36:53,000 --> 00:36:55,000 Questo ha senso. 519 00:36:55,000 --> 00:36:59,000 Tuttavia, quando si sta scrivendo siti web, e soprattutto quando si è l'elaborazione 520 00:36:59,000 --> 00:37:04,000 l'input dell'utente, in modo da dire che hai scritto un modulo web 521 00:37:04,000 --> 00:37:09,000 che raccoglie informazioni dall'utente e poi va ad elaborarlo 522 00:37:09,000 --> 00:37:13,000 sul back-end, sul lato server nel codice PHP 523 00:37:13,000 --> 00:37:18,000 se vi aspettate che il valore che l'utente ha digitato e inviato 524 00:37:18,000 --> 00:37:23,000 al modulo per essere un numero intero o un numero a virgola mobile o qualcosa di simile 525 00:37:23,000 --> 00:37:29,000 è necessario in modo esplicito il cast 526 00:37:29,000 --> 00:37:34,000 e poi fare un po 'il controllo dei tipi. 527 00:37:34,000 --> 00:37:41,000 >> Non si vuole fare affidamento solo su questo sistema giocoleria tipo per far funzionare le cose fuori, 528 00:37:41,000 --> 00:37:48,000 soprattutto per ragioni di sicurezza e solo per la robustezza del tuo sito web. 529 00:37:48,000 --> 00:37:51,000 Solo una cosa da tenere a mente che ogni volta che si sta gestire i dati del modulo, 530 00:37:51,000 --> 00:37:57,000 tutto ciò che viene nel post o le superglobals get 531 00:37:57,000 --> 00:38:01,000 assicurarsi sempre convalidarlo e convertirlo e typecast esso. 532 00:38:01,000 --> 00:38:04,000 E proprio come se stessimo parlando di un momento fa che typecasting 533 00:38:04,000 --> 00:38:08,000 in PHP è esattamente lo stesso come in C, dove si hanno le parentesi 534 00:38:08,000 --> 00:38:14,000 e quindi il tipo. 535 00:38:14,000 --> 00:38:16,000 Tenere a mente. 536 00:38:16,000 --> 00:38:19,000 Una funzione che sarà utile quando si sta facendo questo 537 00:38:19,000 --> 00:38:22,000 è che abbiamo usato, e questo è una specie di come un a parte- 538 00:38:22,000 --> 00:38:27,000 abbiamo usato questa funzione gettype qui 539 00:38:27,000 --> 00:38:30,000 per capire il tipo di una variabile, 540 00:38:30,000 --> 00:38:37,000 e mentre questo è a portata di mano per il debug e per vedere che tipo di una variabile è 541 00:38:37,000 --> 00:38:42,000 non si desidera utilizzare questo, per esempio, in una condizione in cui 542 00:38:42,000 --> 00:38:57,000 si sta verificando se gettype di $ var = intero fare qualcosa. 543 00:38:57,000 --> 00:39:01,000 Questo è male, male, male. 544 00:39:01,000 --> 00:39:09,000 Invece ci sono queste funzioni chiamate è un numero intero, è string, 545 00:39:09,000 --> 00:39:14,000 è matrice che si desidera utilizzare, invece, in questo caso 546 00:39:14,000 --> 00:39:18,000 quello che vorrei fare al posto di questo ragazzo qui 547 00:39:18,000 --> 00:39:31,000 è utilizzare il var è intero. 548 00:39:31,000 --> 00:39:37,000 E sono spesso di cui è * is_, nel senso che è possibile sostituire il * con numero intero, 549 00:39:37,000 --> 00:39:43,000 stringa, et cetera, e solo per assicurarsi veramente veloce 550 00:39:43,000 --> 00:39:50,000 è questo è di tipo int php. 551 00:39:50,000 --> 00:39:59,000 Sembra che si può fare o è int o è là è un numero intero come bene? 552 00:39:59,000 --> 00:40:06,000 Sì, alias, alias interi così int. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Come andiamo? 555 00:40:17,000 --> 00:40:20,000 Riprendiamo il ritmo un po '. 556 00:40:20,000 --> 00:40:24,000 Ora stiamo andando a parlare di array, così come si può vedere 557 00:40:24,000 --> 00:40:28,000 nella parte successiva della specifica si parla di come gli array in PHP 558 00:40:28,000 --> 00:40:31,000 sono leggermente diversi da quello che sono in C. 559 00:40:31,000 --> 00:40:34,000 In verità, sono una specie di amalgama di 560 00:40:34,000 --> 00:40:36,000 gli array che hai imparato a conoscere e ad amare in C 561 00:40:36,000 --> 00:40:40,000 dove tutto è dello stesso tipo 562 00:40:40,000 --> 00:40:43,000 memorizzati consecutivamente e contiguo nella memoria, 563 00:40:43,000 --> 00:40:46,000 e si dispone di questi indici numerici. 564 00:40:46,000 --> 00:40:49,000 Lei ha indice 0, indice 1, indice 2, 565 00:40:49,000 --> 00:40:53,000 e memorizzare i valori in tali indici. 566 00:40:53,000 --> 00:40:57,000 È anche in C, quando hai scritto Speller, molti di voi 567 00:40:57,000 --> 00:41:00,000 ha fatto l'approccio tabella hash, e hai visto che non vi avevamo 568 00:41:00,000 --> 00:41:03,000 un diverso tipo di archiviazione in cui siamo stati la mappatura 569 00:41:03,000 --> 00:41:07,000 una chiave per un valore, in modo che quando si è tentato di memorizzare qualcosa in tabella hash 570 00:41:07,000 --> 00:41:11,000 dovevi specificare che si voleva conservarlo con una chiave specifica, 571 00:41:11,000 --> 00:41:17,000 e quella chiave determinata la posizione del valore e dove sarebbe memorizzato. 572 00:41:17,000 --> 00:41:22,000 Hai avuto tipo di entrambi i concetti accadendo allo stesso tempo in un array PHP, 573 00:41:22,000 --> 00:41:27,000 e come risultato, spesso chiamiamo questi array associativi 574 00:41:27,000 --> 00:41:33,000 dove stiamo associando una chiave in un valore. 575 00:41:33,000 --> 00:41:39,000 In questa parte successiva si parla di un array PHP semplice 576 00:41:39,000 --> 00:41:45,000 dove abbiamo chiavi a, b, e c, 577 00:41:45,000 --> 00:41:53,000 tutte le stringhe, la mappatura per gli interi 1, 2, e 3. 578 00:41:53,000 --> 00:41:57,000 E si può avere chiavi di tipo diverso. 579 00:41:57,000 --> 00:42:00,000 >> Si può avere alcuni tasti che sono stringhe, alcuni tasti che sono numeri interi. 580 00:42:00,000 --> 00:42:03,000 Si possono avere valori di tipi diversi. 581 00:42:03,000 --> 00:42:06,000 Si può avere un valore che è una stringa, un valore che è un numero intero, 582 00:42:06,000 --> 00:42:11,000 un valore che è un oggetto o di un altro array, per esempio, 583 00:42:11,000 --> 00:42:16,000 tutto nell'oggetto stesso array, che è un po 'strano. 584 00:42:16,000 --> 00:42:20,000 Non è necessario avere una matrice che ha appena ricevuto un tipo di elemento in essa. 585 00:42:20,000 --> 00:42:26,000 Si possono avere molte cose diverse succede là dentro. 586 00:42:26,000 --> 00:42:33,000 L'altra cosa da notare è che quando si fa vedere qualcosa di simile nel codice, 587 00:42:33,000 --> 00:42:38,000 che è PHP valido per dichiarare un array come questo, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 che dichiara un $ arr inizializzato per essere questo array. 589 00:42:43,000 --> 00:42:48,000 Ma che cosa si sta effettivamente ricevendo sotto il cofano è questo tipo di implicita 590 00:42:48,000 --> 00:42:55,000 generazione di chiavi in ​​cui abbiamo ottenuto 0-0, 1-1, 2-2, 3-3. 591 00:42:55,000 --> 00:42:59,000 E si scopre che, anche se si dispone di un array come questo ragazzo qui 592 00:42:59,000 --> 00:43:03,000 dove si ha a, b e c come chiavi 593 00:43:03,000 --> 00:43:09,000 e poi di iniziare a usare il metodo push matrice per iniziare a utilizzare questo array come una pila, 594 00:43:09,000 --> 00:43:12,000 in modo da poter vedere che questo oggetto array, questa matrice è davvero di sovraccarico. 595 00:43:12,000 --> 00:43:15,000 Si può usare come un array. Siamo in grado di usarlo come una tabella hash. 596 00:43:15,000 --> 00:43:19,000 Si può usare come una pila. 597 00:43:19,000 --> 00:43:22,000 Quando si inizia a spingere le cose su questo array 598 00:43:22,000 --> 00:43:30,000 la prima cosa che spingerlo verso questo sarà indice 0 e l'indice 1 e l'indice 2. 599 00:43:30,000 --> 00:43:33,000 È possibile ottenere questo tipo di generazione implicita di chiavi 600 00:43:33,000 --> 00:43:38,000 meno che non vengano specificate in modo esplicito. 601 00:43:38,000 --> 00:43:43,000 Il modo in cui specificare le chiavi in ​​modo esplicito, ovviamente, è quello di utilizzare questa notazione staffa, 602 00:43:43,000 --> 00:43:48,000 che è simile alle matrici tranne che invece di autorizzare solo 603 00:43:48,000 --> 00:43:54,000 indici interi a qui, ora lasciamo nulla. 604 00:43:54,000 --> 00:43:57,000 Se si desidera che la chiave per essere una stringa, devi specificarlo in questo modo. 605 00:43:57,000 --> 00:44:06,000 Se si vuole che sia un int, si specifica con l'int che si desidera utilizzare. 606 00:44:06,000 --> 00:44:13,000 >> Domande su che finora? 607 00:44:13,000 --> 00:44:18,000 Una delle cose belle di questa idea 608 00:44:18,000 --> 00:44:26,000 è che si può sempre e solo avere un valore memorizzato con una chiave particolare. 609 00:44:26,000 --> 00:44:32,000 Se torniamo verso il nostro apparecchio, mi permette di cancellare alcune di queste cose. 610 00:44:32,000 --> 00:44:47,000 E diciamo che inizializzare un array di essere 0, 1, 2, fatto. 611 00:44:47,000 --> 00:44:55,000 Se ora so che, per esempio, se io echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Ho intenzione di ottenere il valore 0 stampato, 613 00:44:59,000 --> 00:45:05,000 e poiché non ci può essere solo un valore memorizzato per una chiave particolare 614 00:45:05,000 --> 00:45:11,000 se devo conservare qualcosa a $ arr [0], diciamo una, 615 00:45:11,000 --> 00:45:16,000 allora so che quando ho echo $ arr [0] di nuovo 616 00:45:16,000 --> 00:45:19,000 Io non ho intenzione di ottenere 0 stampato come prima. 617 00:45:19,000 --> 00:45:24,000 Sto solo andando a prendere un. 618 00:45:24,000 --> 00:45:30,000 Quindi questo è fondamentalmente dicendo che non può avere $ arr [0] l'archiviazione di 2 valori diversi. 619 00:45:30,000 --> 00:45:34,000 Non può memorizzare sia 0 e la stringa a, così letteralmente sostituisce 620 00:45:34,000 --> 00:45:38,000 ciò che era in $ arr [0] in precedenza. 621 00:45:38,000 --> 00:45:43,000 La ragione per cui sollevare la questione è correre, vedere cosa succede. 622 00:45:43,000 --> 00:45:47,000 Vedi qui che ho ricevuto 0 stampato e poi una qui. 623 00:45:47,000 --> 00:45:51,000 Non c'è nuova linea a causa ero pigro e non ha messo che trovi 624 00:45:51,000 --> 00:45:54,000 Il bello di questo è che possiamo usare questo come un modo 625 00:45:54,000 --> 00:46:00,000 per catturare questa idea di un insieme 626 00:46:00,000 --> 00:46:07,000 dove non si può avere più chiavi all'interno di un array. 627 00:46:07,000 --> 00:46:10,000 Non possiamo avere chiavi uguali all'interno di un array. 628 00:46:10,000 --> 00:46:17,000 Non posso avere il tasto 0 e il valore 1 e il tasto 0 e il valore di una 629 00:46:17,000 --> 00:46:21,000 o il tasto 0 e il valore vero. 630 00:46:21,000 --> 00:46:27,000 I tasti sono tutti, c'è solo 1 chiave nella matrice. 631 00:46:27,000 --> 00:46:32,000 Anche se si può avere lo stesso valore memorizzato 632 00:46:32,000 --> 00:46:35,000 più volte nella matrice in chiavi diverse 633 00:46:35,000 --> 00:46:42,000 non è possibile avere chiavi identiche più volte nel tuo array PHP. 634 00:46:42,000 --> 00:46:47,000 >> Se guardiamo a questo problema successivo, unique.php, 635 00:46:47,000 --> 00:46:51,000 dove vogliamo aprire un file PHP 636 00:46:51,000 --> 00:46:54,000 contenente una lista di stringhe, una stringa per riga, 637 00:46:54,000 --> 00:47:01,000 e vogliamo trovare tutte le stringhe univoche in quel file 638 00:47:01,000 --> 00:47:06,000 tutto quello che dobbiamo fare è utilizzare uno di questi array PHP 639 00:47:06,000 --> 00:47:12,000 e utilizzare le stringhe nel file come le chiavi di questo array 640 00:47:12,000 --> 00:47:17,000 e tenere aggiornata la nostra gamma come memorizzare queste nuove chiavi. 641 00:47:17,000 --> 00:47:22,000 Come leggiamo su ogni riga del file possiamo memorizzare nella matrice, 642 00:47:22,000 --> 00:47:28,000 e alla fine avremo le nostre chiavi nella nostra matrice 643 00:47:28,000 --> 00:47:34,000 tutte le corde unici all'interno del file. 644 00:47:34,000 --> 00:47:37,000 Ha senso? 645 00:47:37,000 --> 00:47:41,000 Vediamo come funziona. 646 00:47:41,000 --> 00:47:49,000 Stiamo andando ad aprire, secondo le specifiche, un nuovo file chiamato unique.php. 647 00:47:49,000 --> 00:47:58,000 Aprire. Ops, scusate, nuovo file. 648 00:47:58,000 --> 00:48:03,000 Stiamo per cominciare fuori con i tag l'inizio e la fine stessa. 649 00:48:03,000 --> 00:48:17,000 Stiamo per salvarlo nella sezione 9, e abbiamo intenzione di chiamarlo unique.php. 650 00:48:17,000 --> 00:48:25,000 Ok, ora Immagine 651 00:48:25,000 --> 00:48:32,000 L'idea è aprire un file, 652 00:48:32,000 --> 00:48:38,000 leggere file riga per riga. 653 00:48:38,000 --> 00:48:46,000 Per ogni riga nel file 654 00:48:46,000 --> 00:48:51,000 avremo un array in cui abbiamo 655 00:48:51,000 --> 00:49:03,000  la linea come la nostra chiave. 656 00:49:03,000 --> 00:49:09,000 E poi quando si arriva alla fine qui 657 00:49:09,000 --> 00:49:17,000 $ Arr le chiavi sono le linee uniche 658 00:49:17,000 --> 00:49:25,000 dal file dal momento che sappiamo che se ho messo in linea questa matrice 659 00:49:25,000 --> 00:49:33,000 più volte sarà solo mantenere sovrascrivendo il vecchio valore, 660 00:49:33,000 --> 00:49:46,000 e può effettivamente mettere in line array come se stesso proprio così. 661 00:49:46,000 --> 00:49:48,000 >> Questo è un po 'strano. 662 00:49:48,000 --> 00:49:52,000 Stiamo memorizzare la coppia di stesso valore di chiave più e più e più volte, 663 00:49:52,000 --> 00:50:00,000 ma dal momento che abbiamo la garanzia che non ci sarà solo 1 chiave denominata linea 664 00:50:00,000 --> 00:50:05,000 quindi se abbiamo un file che dice-un file di versi degli animali e ha trama, trama, 665 00:50:05,000 --> 00:50:11,000 meow, meow, moo, moo, e ogni volta che leggiamo un rumore animale fuori 666 00:50:11,000 --> 00:50:15,000 come la trama e lo memorizza nella nostra matrice otteniamo trama, e poi la seconda volta 667 00:50:15,000 --> 00:50:20,000 memorizziamo trama andrà a sovrascrivere la prima volta che abbiamo memorizzato. 668 00:50:20,000 --> 00:50:25,000 Alla fine avremo una sola voce nella matrice 669 00:50:25,000 --> 00:50:33,000 per ciascuno dei versi degli animali in fila animali nostro rumori. 670 00:50:33,000 --> 00:50:41,000 Voi ragazzi sicuri che si può affrontare l'apertura di un file in PHP? 671 00:50:41,000 --> 00:50:45,000 Un modo per farlo, andiamo da questa parte in fretta-one per farlo 672 00:50:45,000 --> 00:50:50,000 è con fopen, come abbiamo visto in precedenza. 673 00:50:50,000 --> 00:50:55,000 È possibile fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 È possibile aprirlo in modalità di lettura, proprio come in C. 675 00:50:59,000 --> 00:51:02,000 Questo è un modo perfetto per farlo. 676 00:51:02,000 --> 00:51:05,000 Inoltre poi per la lettura nel file riga per riga 677 00:51:05,000 --> 00:51:12,000 hanno le stesse funzioni, molte delle quali, che avete fatto in C. 678 00:51:12,000 --> 00:51:14,000 Hai fgets. 679 00:51:14,000 --> 00:51:17,000 Hai feof, anche se non mi piace usare che 680 00:51:17,000 --> 00:51:22,000 perché, ricordate, che non era eccezionale in C. 681 00:51:22,000 --> 00:51:25,000 Lo si può fare allo stesso modo, 682 00:51:25,000 --> 00:51:34,000 ma qui è una cosa davvero cool. 683 00:51:34,000 --> 00:51:41,000 Mi dispiace, non voglio fare $ file, ma c'è una funzione chiamata file in PHP, 684 00:51:41,000 --> 00:51:47,000 e questa funzione proprio qui è fresco, perché si legge l'intero contenuto 685 00:51:47,000 --> 00:51:52,000 del file specificato, così some_file.txt, 686 00:51:52,000 --> 00:51:56,000 legge l'intero contenuto di questo file in un array 687 00:51:56,000 --> 00:52:03,000 e consente quindi di scorrere su di esso, che è piuttosto carino. 688 00:52:03,000 --> 00:52:07,000 >> Se si va, per esempio, al nostro browser web 689 00:52:07,000 --> 00:52:14,000 e guardiamo a Google per il file PHP 690 00:52:14,000 --> 00:52:23,000 si può vedere qui che il nostro manuale dice che il file si legge l'intero file in un array, 691 00:52:23,000 --> 00:52:27,000 e possiamo file_get_contents per restituire il contenuto di un file come una stringa, 692 00:52:27,000 --> 00:52:30,000 ma in genere basta prendere come una matrice è veramente bello, perché quello che fa 693 00:52:30,000 --> 00:52:33,000 sta rompe in modo che ogni elemento 694 00:52:33,000 --> 00:52:37,000 nella matrice è una riga del file, 695 00:52:37,000 --> 00:52:41,000 quindi se guardiamo file 0, questa è la prima riga del file. 696 00:52:41,000 --> 00:52:46,000 File 1, seconda riga, file 2, terza riga, e così via e così via. 697 00:52:46,000 --> 00:52:50,000 Non sarebbe bello se questo era tutto quello che doveva fare in C? 698 00:52:50,000 --> 00:52:53,000 Piuttosto carino. 699 00:52:53,000 --> 00:52:59,000 David ha dimostrato questo in conferenza, e il linguaggio ha mostrato era 700 00:52:59,000 --> 00:53:03,000 che, oltre al nostro standard per il ciclo-in PHP che abbiamo avuto 701 00:53:03,000 --> 00:53:09,000 for ($ i = 0; i <10, i + +), 702 00:53:09,000 --> 00:53:16,000 e si può fare questo in PHP troppo, stessa cosa, 703 00:53:16,000 --> 00:53:27,000 abbiamo anche questo costrutto foreach chiamato cool. 704 00:53:27,000 --> 00:53:32,000 Foreach è molto utile quando l'iterazione di questi array o strutture di dati 705 00:53:32,000 --> 00:53:36,000 perché permette di tirare fuori ogni elemento della matrice 706 00:53:36,000 --> 00:53:42,000 senza dover fare manualmente l'indicizzazione da soli, 707 00:53:42,000 --> 00:53:46,000 senza dover creare manualmente una variabile indice, incrementare, 708 00:53:46,000 --> 00:53:51,000 estrarre il valore nella matrice a quel punto, perché è una cosa molto comune da fare. 709 00:53:51,000 --> 00:53:54,000 >> Probabilmente hanno fatto tonnellate di momenti in cui si stavano facendo cose C 710 00:53:54,000 --> 00:54:00,000 sul semestre, quindi con questo foreach 711 00:54:00,000 --> 00:54:06,000 possiamo ciclo su questa matrice file, 712 00:54:06,000 --> 00:54:12,000 e la sintassi è che vogliamo ora un ciclo su questa matrice 713 00:54:12,000 --> 00:54:18,000 e specificare che la variabile che andremo a utilizzare per memorizzare 714 00:54:18,000 --> 00:54:27,000 l'elemento di questo array a livello locale, locale alla portata di questo ciclo foreach, 715 00:54:27,000 --> 00:54:32,000 è che stiamo andando a chiamare la linea. 716 00:54:32,000 --> 00:54:38,000 Se si tratta di un file di parole giuste e non c'è una parola in una linea 717 00:54:38,000 --> 00:54:43,000 potremmo chiamare la parola e, in realtà solo dare questo un nome, 718 00:54:43,000 --> 00:54:49,000 qualunque cosa tu voglia chiamare, 719 00:54:49,000 --> 00:55:02,000 e poi all'interno del ciclo si può fare quello che vuoi con questa linea variabile. 720 00:55:02,000 --> 00:55:08,000 Se non è sufficiente per ottenere il valore della matrice e anche voi volete ottenere 721 00:55:08,000 --> 00:55:17,000 l'indice con essa è possibile specificare un nome per l'indice 722 00:55:17,000 --> 00:55:22,000 così come il valore, e ora si ha accesso a 2 variabili. 723 00:55:22,000 --> 00:55:26,000 Avete $ i e la linea 724 00:55:26,000 --> 00:55:30,000 dove $ i è l'indice nella matrice, 725 00:55:30,000 --> 00:55:38,000 e la linea è la linea che è stato recuperato dal file. 726 00:55:38,000 --> 00:55:49,000 Per esempio, se vogliamo stampare echo 0 riga del file come questo, 727 00:55:49,000 --> 00:55:57,000 potremmo fare proprio così, "Linea $ i del file è $ line," 728 00:55:57,000 --> 00:56:02,000 e qui è anche qualcosa che non abbiamo ancora visto o 729 00:56:02,000 --> 00:56:13,000 dove ho appena completamente saltato su questo tutta% s% d affari 730 00:56:13,000 --> 00:56:16,000 che abbiamo dovuto affrontare in C, e invece sono andato dritto al 731 00:56:16,000 --> 00:56:19,000 scrivere le variabili in linea nella mia stringa. 732 00:56:19,000 --> 00:56:23,000 >> Questo si chiama interpolazione variabile, stringa di interpolazione 733 00:56:23,000 --> 00:56:26,000 dove stai ripieno le variabili in pieno, e l'interprete PHP 734 00:56:26,000 --> 00:56:31,000 è abbastanza intelligente da quando è la lettura attraverso una stringa che inizia con doppi apici- 735 00:56:31,000 --> 00:56:34,000 non virgolette singole, con le singole stringhe tra virgolette non è possibile fare questo, 736 00:56:34,000 --> 00:56:38,000 ma con stringhe tra doppi apici come si legge attraverso la sua ricerca per le variabili. 737 00:56:38,000 --> 00:56:42,000 E 'loro la caccia, e se vede variabili prenderà il valore della variabile 738 00:56:42,000 --> 00:56:47,000 e roba nella stringa se è possibile convertirlo in una rappresentazione di stringa, 739 00:56:47,000 --> 00:56:51,000 che è piuttosto carino. 740 00:56:51,000 --> 00:56:56,000 Per ora, cerchiamo di commentare il resto di tutto, 741 00:56:56,000 --> 00:57:00,000 salvare questo, e quello che possiamo fare ora è che possiamo aprire un file 742 00:57:00,000 --> 00:57:06,000 che possiamo chiamare some_file.txt-let 's creare un nuovo file- 743 00:57:06,000 --> 00:57:15,000 e possiamo mettere in un sacco di roba in sciocchezze qui solo per testare tutto fuori, 744 00:57:15,000 --> 00:57:25,000 salvarlo, chiamano some_file.txt, come sto facendo qui in alto, 745 00:57:25,000 --> 00:57:33,000 e ora se io diminuire solo per assicurarsi che tutto è nella stessa directory 746 00:57:33,000 --> 00:57:36,000 sembra che ho unique.php e some_file.txt nella stessa directory. 747 00:57:36,000 --> 00:57:42,000 Se corro unique.php php 748 00:57:42,000 --> 00:57:51,000 vedere come esso stampa ogni riga nel mio file e ciò che la linea è? 749 00:57:51,000 --> 00:57:56,000 >> Questo è abbastanza potente, giusto? 750 00:57:56,000 --> 00:58:03,000 Guarda, ci sono voluti 3 righe di codice per aprire un file. 751 00:58:03,000 --> 00:58:08,000 Beh, 4 righe di codice. Non riesco a contare oggi, chiaramente. 752 00:58:08,000 --> 00:58:13,000 Ma in realtà solo 2 righe di codice interessanti, perché gli altri 2 erano le parentesi graffe, 753 00:58:13,000 --> 00:58:17,000 ma in questo codice molto siamo stati in grado di aprire un file, scorrere attraverso di essa, 754 00:58:17,000 --> 00:58:20,000 estrarre il numero di linea e la linea stessa 755 00:58:20,000 --> 00:58:24,000 e stamparlo. 756 00:58:24,000 --> 00:58:26,000 Cool stuff. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Ho una domanda sulla sintassi. 758 00:58:28,000 --> 00:58:33,000 Così foreach si occupa di ogni singola riga del file che si apre, 759 00:58:33,000 --> 00:58:37,000 e poi quando si vuole fare le cose con ogni singola linea ma è sufficiente fare come 760 00:58:37,000 --> 00:58:39,000 e quindi associare il valore. 761 00:58:39,000 --> 00:58:41,000 [Nate H] Cosa si può fare qui, la questione è stata 762 00:58:41,000 --> 00:58:46,000 il foreach ha a che fare con l'array, in modo che la sintassi di foreach 763 00:58:46,000 --> 00:58:51,000 è davvero foreach, e notare che non c'è spazio 764 00:58:51,000 --> 00:58:53,000 o qualcosa tra il per e il ciascuno. 765 00:58:53,000 --> 00:58:56,000 Devono andare a destra accanto all'altro, 766 00:58:56,000 --> 00:59:00,000 e quindi prende in una matrice, 767 00:59:00,000 --> 00:59:05,000 e poi ci sono questa parola chiave altro chiamato come che deve essere lì, 768 00:59:05,000 --> 00:59:11,000 e poi, dopo il quale è possibile mettere un nome di variabile, 769 00:59:11,000 --> 00:59:14,000 nel qual caso si sta andando ad essere tirando fuori i valori della matrice, 770 00:59:14,000 --> 00:59:20,000 non gli indici, o se lo si fa, come abbiamo scritto qui sotto 771 00:59:20,000 --> 00:59:24,000 consegna delle chiavi e dei valori. 772 00:59:24,000 --> 00:59:33,000 Hai foreach elemento della matrice o coppia della matrice come corrispondono a valore 773 00:59:33,000 --> 00:59:38,000 o semplicemente come valore. 774 00:59:38,000 --> 00:59:40,000 A seconda di cosa hai bisogno, se non hai bisogno delle chiavi, 775 00:59:40,000 --> 00:59:42,000 allora si può andare con il valore. 776 00:59:42,000 --> 00:59:45,000 Se si desidera che i tasti si può andare con loro. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Ho anche capito che non abbiamo mai dichiarato l'i o linea. 778 00:59:48,000 --> 00:59:51,000 Come si sa nemmeno che cosa sono? 779 00:59:51,000 --> 00:59:53,000 [Nate H] Che cosa si intende per dichiarare? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Non li abbiamo mai detto cosa i mezzi o la linea. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Non abbiamo mai detto che il computer quello che ho o la linea significa in termini di- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] che sono indicizzati o che Stanno- 783 01:00:05,000 --> 01:00:09,000 [Nate H] non abbiamo mai detto che questo dovrebbe essere l'indice o la chiave e il valore, 784 01:00:09,000 --> 01:00:13,000 e questo perché questo è l'interprete PHP. 785 01:00:13,000 --> 01:00:17,000 Questo serve come la dichiarazione e dice va bene, la chiave sarà 786 01:00:17,000 --> 01:00:20,000 una variabile chiamata ho memorizzato in una variabile chiamata i. 787 01:00:20,000 --> 01:00:24,000 Il valore deve essere memorizzato in una variabile denominata linea, 788 01:00:24,000 --> 01:00:28,000 quindi questo serve come la dichiarazione di queste variabili 789 01:00:28,000 --> 01:00:35,000 e dice $ i è una chiave, e $ linea è un valore. 790 01:00:35,000 --> 01:00:37,000 Si ', Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Se i tasti non sono fatti numericamente 792 01:00:41,000 --> 01:00:44,000 come fa a decidere quale ordine sta andando a stampare tutto? 793 01:00:44,000 --> 01:00:47,000 E 'proprio come l'ordine è entrato in? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Vediamo di fare un tentativo. 795 01:00:51,000 --> 01:00:57,000 Creiamo una variabile denominata arr, 796 01:00:57,000 --> 01:01:06,000 e siamo in grado di fare una va a 7. 797 01:01:06,000 --> 01:01:19,000 Diciamo 0 reca in un altro array con 1, 2, o mela. 798 01:01:19,000 --> 01:01:30,000 Diciamo 7 passa a 1, b va a 2, 799 01:01:30,000 --> 01:01:39,000 e 3 va a 4. 800 01:01:39,000 --> 01:01:44,000 Questa è una specie di folle esempio cercando perché stiamo mescolando 801 01:01:44,000 --> 01:01:47,000 stringhe e numeri interi in tutto il luogo. 802 01:01:47,000 --> 01:01:50,000 Non c'è ordine reale a questo array. 803 01:01:50,000 --> 01:01:55,000 Voglio dire, abbiamo potuto ordinare tutto in ordine alfabetico in base ai tasti. 804 01:01:55,000 --> 01:01:57,000 Potremmo ordinare tutto in ordine alfabetico in base al valore. 805 01:01:57,000 --> 01:02:00,000 >> Potremmo cercare di tenere conto che alcuni sono stringhe, alcuni sono interi, 806 01:02:00,000 --> 01:02:03,000 e abbiamo potuto provare e li converte tutti allo stesso tipo e vedere cosa succede, 807 01:02:03,000 --> 01:02:09,000 oppure potremmo prendere in considerazione il valore in cui già li ha inseriti 808 01:02:09,000 --> 01:02:14,000 dove abbiamo messo il ragazzo in primo luogo, questo ragazzo in seconda, questo ragazzo in terza, 809 01:02:14,000 --> 01:02:19,000 questo ragazzo in quarta, et cetera. 810 01:02:19,000 --> 01:02:23,000 Vediamo cosa succede quando si esegue questo codice. 811 01:02:23,000 --> 01:02:29,000 Se scorrere verso il basso e fare la stessa cosa, 812 01:02:29,000 --> 01:02:31,000 e qui non è la stampa delle nuove linee. 813 01:02:31,000 --> 01:02:35,000 Quando leggere le cose del file è stato comprese le nuove linee nei valori, 814 01:02:35,000 --> 01:02:38,000 che è stato il motivo per cui stampato bene, mentre qui non ha fatto, 815 01:02:38,000 --> 01:02:40,000 è per questo che tutto è smushed insieme. 816 01:02:40,000 --> 01:02:44,000 Lasciatemi aggiungere che in linea nuova solo per rendere le cose belle. 817 01:02:44,000 --> 01:02:51,000 Diciamo la ripetizione, e così qui 818 01:02:51,000 --> 01:02:54,000 guardate cosa è successo. 819 01:02:54,000 --> 01:03:00,000 E tutto stampata nell'ordine in cui abbiamo messo nella matrice. 820 01:03:00,000 --> 01:03:10,000 Lo fa mantenere l'ordine in tal senso. 821 01:03:10,000 --> 01:03:15,000 >> Tornando al problema di unici 822 01:03:15,000 --> 01:03:20,000 dove vogliamo essere in grado di scorrere su un file, 823 01:03:20,000 --> 01:03:24,000 e faremo di some_file.txt, 824 01:03:24,000 --> 01:03:27,000 e stiamo andando a scorrere su di esso in questo modo. 825 01:03:27,000 --> 01:03:31,000 Abbiamo detto che volevamo utilizzare un array per assicurarsi che avevamo ottenuto tutto il 826 01:03:31,000 --> 01:03:36,000 linee uniche fuori di lì, e abbiamo potuto farlo molto facilmente 827 01:03:36,000 --> 01:03:49,000 semplicemente memorizzare in un array che ovviamente dichiarare fuori dell'ambito di un ciclo, 828 01:03:49,000 --> 01:03:55,000 e abbiamo detto che se abbiamo usato le righe nel file, come le chiavi della nostra matrice 829 01:03:55,000 --> 01:03:59,000 se siamo entrati in una linea duplicato saremmo l'override del valore precedente. 830 01:03:59,000 --> 01:04:08,000 Non è mai possibile avere 2 chiavi identiche dello stesso array. 831 01:04:08,000 --> 01:04:13,000 Siamo in grado di fare proprio questo. 832 01:04:13,000 --> 01:04:17,000 Ci sbarazzarsi di questo enunciato echo qui. 833 01:04:17,000 --> 01:04:24,000 Qui stiamo conservare la linea nel file nella nostra matrice 834 01:04:24,000 --> 01:04:28,000 si utilizza come chiave. 835 01:04:28,000 --> 01:04:32,000 Niente da essa, e si scopre che non hanno nemmeno bisogno di questa chiave. 836 01:04:32,000 --> 01:04:38,000 Non abbiamo bisogno che la variabile i. 837 01:04:38,000 --> 01:04:43,000 A questo punto, se dovessimo fare un altro ciclo foreach 838 01:04:43,000 --> 01:04:48,000 e siamo stati per eseguire un ciclo su ogni arr 839 01:04:48,000 --> 01:04:56,000 e la linea ora se abbiamo eco-oops, mi dispiace. 840 01:04:56,000 --> 01:05:00,000 Non possiamo usare la virgola. Dobbiamo usare questo come parola chiave. 841 01:05:00,000 --> 01:05:05,000 Ora, se abbiamo eco linea dovremmo avere tutte le parole uniche nel file. 842 01:05:05,000 --> 01:05:10,000 Se andiamo fino a some_file.txt, 843 01:05:10,000 --> 01:05:19,000 e diciamo che facciamo mela, banana, mela, mela, banana, 844 01:05:19,000 --> 01:05:22,000 se vogliamo stampare tutte le parole uniche in questo file si dovrebbe ottenere solo 845 01:05:22,000 --> 01:05:30,000 mela e banana da stampare. 846 01:05:30,000 --> 01:05:36,000 Se salviamo questa, ora qui ci ingrandire di nuovo, 847 01:05:36,000 --> 01:05:44,000 php unique.php, e ta-da. 848 01:05:44,000 --> 01:05:51,000 Abbiamo successo uniqued il file. 849 01:05:51,000 --> 01:05:55,000 >> La parte finale di questo problema vi sta chiedendo di ordinare questo array prima di stampare 850 01:05:55,000 --> 01:05:58,000 perché in questo semplice esempio che abbiamo appena fatto 851 01:05:58,000 --> 01:06:04,000 siamo stati fortunati, nel senso che il file- 852 01:06:04,000 --> 01:06:06,000 abbiamo fatto questo esempio forzato con le mele e banane. 853 01:06:06,000 --> 01:06:08,000 E 'stato già ordinati. 854 01:06:08,000 --> 01:06:19,000 Ma utilizzando la funzione di ordinamento semplice è possibile ordinare un array, che è piuttosto carino. 855 01:06:19,000 --> 01:06:24,000 L'ultima cosa che volevo parlare con voi su molto in fretta 856 01:06:24,000 --> 01:06:31,000 è che questo tipo di PHP è cosa buona e giusta, ed è super comodo 857 01:06:31,000 --> 01:06:43,000 per sapere come fare se mai hai bisogno di fare piccole cose veloci di programmazione. 858 01:06:43,000 --> 01:06:48,000 Per esempio, se ho bisogno di scrivere un programma che, per esempio, 859 01:06:48,000 --> 01:06:53,000 mette tutti in sezioni non ho intenzione di andare a scrivere in C. 860 01:06:53,000 --> 01:06:55,000 E 'intenzione di essere lungo. 861 01:06:55,000 --> 01:06:57,000 E 'intenzione di essere una specie di dolore, soprattutto se ci sono i file coinvolti, 862 01:06:57,000 --> 01:07:00,000 proprio come voi ragazzi avete visto. 863 01:07:00,000 --> 01:07:05,000 E 'così bello che solo con questo codice molto qui 864 01:07:05,000 --> 01:07:08,000 siamo riusciti a strappare attraverso un file, estrarre tutti i valori univoci 865 01:07:08,000 --> 01:07:11,000 e stamparli di nuovo fuori. 866 01:07:11,000 --> 01:07:16,000 >> Tuttavia, per le assegnazioni, per i vostri progetti, 867 01:07:16,000 --> 01:07:20,000 se si sta costruendo siti web con PHP è che il potere 868 01:07:20,000 --> 01:07:25,000 siamo in esecuzione i nostri file PHP attraverso questo interprete, 869 01:07:25,000 --> 01:07:29,000 e l'interprete sta elaborando tutto all'interno dei tag PHP, 870 01:07:29,000 --> 01:07:34,000 lasciando tutto il resto intatto e sputando i risultati. 871 01:07:34,000 --> 01:07:40,000 Possiamo farlo per costruire HTML di programmazione. 872 01:07:40,000 --> 01:07:46,000 Ora, se torniamo alle specifiche, l'ultimo problema nelle specifiche 873 01:07:46,000 --> 01:07:56,000 parla di questa idea di concentrazioni 874 01:07:56,000 --> 01:08:01,000 e creando un menu a discesa, 875 01:08:01,000 --> 01:08:06,000 che si può o non vuole fare, a seconda di ciò che il vostro progetto finale sta facendo, 876 01:08:06,000 --> 01:08:13,000 che permette all'utente di selezionare da un elenco di tutte le possibili concentrazioni 877 01:08:13,000 --> 01:08:15,000 loro una concentrazione. 878 01:08:15,000 --> 01:08:21,000 Ora, questo è una specie di dolore di tipo questo fuori 879 01:08:21,000 --> 01:08:25,000 e hanno a che fare tutto questo manualmente, soprattutto quando hai a che fare 880 01:08:25,000 --> 01:08:28,000 di avere tutte le parentesi angolari al posto giusto e tutte le citazioni al posto giusto, 881 01:08:28,000 --> 01:08:34,000 quindi con PHP si può fare questo livello di programmazione, e si può fare davvero in fretta. 882 01:08:34,000 --> 01:08:36,000 >> Vediamo come eseguire questa operazione. 883 01:08:36,000 --> 01:08:42,000 Stiamo per aprire un nuovo file. 884 01:08:42,000 --> 01:08:46,000 Stiamo andando a mettere dei tag PHP. 885 01:08:46,000 --> 01:08:53,000 Stiamo andando a chiamare concentrations.php, 886 01:08:53,000 --> 01:08:58,000 e ora, quando si sta facendo questo, un po 'una buona cosa a cui pensare 887 01:08:58,000 --> 01:09:02,000 quando si sta cercando di combinare il vostro PHP e il codice HTML 888 01:09:02,000 --> 01:09:08,000 è capire, va bene, ciò che è la parte che voglio generare programmazione? 889 01:09:08,000 --> 01:09:11,000 Qual è la parte di codice che posso generare? 890 01:09:11,000 --> 01:09:17,000 E 'vero che si può fare tutto il codice HTML 891 01:09:17,000 --> 01:09:19,000 all'interno di blocchi PHP. 892 01:09:19,000 --> 01:09:24,000 È possibile eco tutto il codice HTML sotto forma di stringhe. 893 01:09:24,000 --> 01:09:30,000 Per esempio, se voglio iniziare a fare i tag selezionati all'interno di PHP 894 01:09:30,000 --> 01:09:46,000 Posso dire eco, ad esempio selezionare il nome = concentrazione, 895 01:09:46,000 --> 01:09:49,000 e poi giù di sotto avrei potuto avere un altro tag eco 896 01:09:49,000 --> 01:09:57,000 o un altro eco chiamato chiudere la selezione. 897 01:09:57,000 --> 01:10:00,000 Questo è un modo per farlo, perché ciò che questo è letteralmente andando a fare 898 01:10:00,000 --> 01:10:09,000 è stampare questa stringa quando viene eseguito attraverso l'interprete PHP, 899 01:10:09,000 --> 01:10:12,000 in modo che il risultato sarà HTML. 900 01:10:12,000 --> 01:10:18,000 Se si salva il file come è adesso 901 01:10:18,000 --> 01:10:24,000 e corro concentrations.php php 902 01:10:24,000 --> 01:10:26,000 guarda quello che ho ottenuto. 903 01:10:26,000 --> 01:10:30,000 Ho avuto questa apertura tag di chiusura selezionare. 904 01:10:30,000 --> 01:10:36,000 >> Se dovessi fare questo e io eravamo a salvare questo risultato a un file, 905 01:10:36,000 --> 01:10:45,000 dire, concentrations.html-attesa, sembra che la l è passato all'altro lato- 906 01:10:45,000 --> 01:11:02,000 ora se apro qui concentrations.html vedete che io ho un file HTML valido. 907 01:11:02,000 --> 01:11:05,000 E 'un po' strano? 908 01:11:05,000 --> 01:11:09,000 Stiamo usando PHP per creare HTML, creare HTML valido. 909 01:11:09,000 --> 01:11:13,000 Il modo in cui lo stiamo facendo è che stiamo solo avere la stampa PHP 910 01:11:13,000 --> 01:11:16,000 il codice HTML che si desidera stampare. 911 01:11:16,000 --> 01:11:20,000 Questo è letteralmente dei siti web PHP sta lavorando. 912 01:11:20,000 --> 01:11:24,000 Quando si visita un sito web che vi manda a qualcosa come 913 01:11:24,000 --> 01:11:30,000 qualcosa, qualcosa, qualcosa dot com barra index.php 914 01:11:30,000 --> 01:11:33,000 il computer è letteralmente richiamare index.php, 915 01:11:33,000 --> 01:11:38,000 esecuzione attraverso l'interprete PHP, e tutto ciò che viene fuori spazzatura 916 01:11:38,000 --> 01:11:49,000 è l'invio al browser e dire hey, browser, interpretano questo come HTML. 917 01:11:49,000 --> 01:11:54,000 La cosa bella è che si può essere un dolore a scrivere costantemente eco, eco, eco, eco 918 01:11:54,000 --> 01:11:59,000 e racchiudere tutto tra virgolette come questo, quindi se si vuole scrivere 919 01:11:59,000 --> 01:12:04,000 il codice HTML che sta per essere statico se stessi si può fare in questo modo, 920 01:12:04,000 --> 01:12:16,000 metterlo fuori, chiuderlo, 921 01:12:16,000 --> 01:12:21,000 e poi qui solo mettere all'interno dei tag PHP ciò che si sa 922 01:12:21,000 --> 01:12:26,000 si desidera generare codice, e in questo caso si tratta di quei tag option 923 01:12:26,000 --> 01:12:31,000 che sono un dolore da generare. 924 01:12:31,000 --> 01:12:37,000 >> Per esempio, si potrebbe generare un tag option mille 925 01:12:37,000 --> 01:12:48,000 facendo qualcosa di simile, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 e dicendo value option = $ echo-whoops, non posso farlo. 927 01:13:00,000 --> 01:13:03,000 Bene, vediamo di fare un tentativo e vedere cosa succede. 928 01:13:03,000 --> 01:13:22,000 $ I e poi dire $ i 01:13:27,000 Piuttosto che dover digitare che opzione etichetta mille volte diversi 930 01:13:27,000 --> 01:13:33,000 Sto utilizzando il codice PHP per generare automaticamente, di programmazione. 931 01:13:33,000 --> 01:13:38,000 Tipo di nifty. Gia '. 932 01:13:38,000 --> 01:13:41,000 Mi ricordo di questo essere menzionate né la lezione o la procedura dettagliata, 933 01:13:41,000 --> 01:13:43,000 ma qual è la differenza tra le virgolette, 934 01:13:43,000 --> 01:13:45,000 quelle normali e queste cose singole? 935 01:13:45,000 --> 01:13:49,000 Che in realtà è una cosa che ho fatto in modo errato qui che stavo per vedere. 936 01:13:49,000 --> 01:13:52,000 Le virgolette non permettono caratteri speciali, 937 01:13:52,000 --> 01:13:57,000 quindi tutto all'interno di una stringa tra apici singoli viene interpretata letteralmente. 938 01:13:57,000 --> 01:14:02,000 Se avessi un \ n all'interno di apici e salvare questo, ad esempio, 939 01:14:02,000 --> 01:14:07,000 e ora scendo qui e eseguirlo- 940 01:14:07,000 --> 01:14:12,000 oops, dove sto andando? 941 01:14:12,000 --> 01:14:19,000 Oh, è perché ho dimenticato il $. 942 01:14:19,000 --> 01:14:25,000 >> Ora, se apro-in realtà, qui, ci sbarazzarsi del la digitazione in un file. 943 01:14:25,000 --> 01:14:27,000 Non ci resta che leggere. 944 01:14:27,000 --> 01:14:34,000 Qui si vede che ho questo letterale \ n nella stringa, non come una linea di vera nuova, 945 01:14:34,000 --> 01:14:38,000 e similmente, anziché effettivamente interpolando il valore di questa variabile 946 01:14:38,000 --> 01:14:42,000 mi ha dato la $ i in sé, che è una specie di dolore. 947 01:14:42,000 --> 01:14:46,000 Il modo per aggirare questo è quello di utilizzare le virgolette, 948 01:14:46,000 --> 01:14:52,000 e poi quando si utilizzano le virgolette doppie sarà effettivamente 949 01:14:52,000 --> 01:14:56,000 correttamente interpolare i valori di tutte le variabili in qui 950 01:14:56,000 --> 01:14:59,000 e anche riconoscere questo \ n per la nuova linea che è 951 01:14:59,000 --> 01:15:02,000 e non \ n. 952 01:15:02,000 --> 01:15:07,000 Utilizzando i singoli è bello quando si ha 953 01:15:07,000 --> 01:15:10,000 caratteri che potrebbero essere interpretati come caratteri speciali perché allora non c'è bisogno di 954 01:15:10,000 --> 01:15:15,000 sfuggire costantemente. 955 01:15:15,000 --> 01:15:18,000 Le cose possono ottenere disordinato, e spesso il modo in cui lo faccio, 956 01:15:18,000 --> 01:15:24,000 tanto per rendere le cose facili, è che se ho intenzione di avere a che 957 01:15:24,000 --> 01:15:31,000 HTML come nel mio codice mi sono modifica tra virgolette singole 958 01:15:31,000 --> 01:15:36,000 e quindi utilizzare questo operatore di concatenazione 959 01:15:36,000 --> 01:15:43,000 per concatenare le variabili trovi 960 01:15:43,000 --> 01:15:47,000 Questo è un altro modo di farlo 961 01:15:47,000 --> 01:15:52,000 dove abbiamo il punto che sta per collegare questa è una stringa 962 01:15:52,000 --> 01:15:56,000 con questo con questo con questo, 963 01:15:56,000 --> 01:15:59,000 e ora non c'è bisogno di sfuggire a questi doppi apici. 964 01:15:59,000 --> 01:16:02,000 Non è necessario utilizzare questo tipo di fuggire. 965 01:16:02,000 --> 01:16:08,000 Faranno letteralmente essere stampati come i doppi apici e poi questo ragazzo qui. 966 01:16:08,000 --> 01:16:11,000 Questo è un altro modo di mescolare tutto insieme. 967 01:16:11,000 --> 01:16:14,000 >> [Studente] Inoltre, quando si fa eco gettype non c'erano le virgolette a tutti. 968 01:16:14,000 --> 01:16:22,000 Giusto, quindi è una specie di eco particolare, nel senso che non hai bisogno di parentesi. 969 01:16:22,000 --> 01:16:29,000 Non è necessario avere le virgolette intorno necessariamente variabili, 970 01:16:29,000 --> 01:16:37,000 come se fosse valido da dire echo $ i, e che sta per interpretare questo come una stringa. 971 01:16:37,000 --> 01:16:44,000 E 'intenzione di fare il cast, in modo da poter fare questo, e questo è valido anche, ma noi non ne abbiamo bisogno. 972 01:16:44,000 --> 01:16:48,000 E 'opzionale. 973 01:16:48,000 --> 01:16:53,000 Nel problema proposto questa settimana guardare fuori per un sacco di questo genere di cose 974 01:16:53,000 --> 01:16:58,000 dove stai miscelazione e la congruenza HTML con PHP 975 01:16:58,000 --> 01:17:08,000 proprio come questo, e ora se scorrere indietro e si esegue questo 976 01:17:08,000 --> 01:17:13,000 possiamo vedere che abbiamo un intero gruppo di valori di opzione 977 01:17:13,000 --> 01:17:15,000 che hanno appena stampato. 978 01:17:15,000 --> 01:17:20,000 Abbiamo tutto questo HTML che ha generato molto velocemente per noi. 979 01:17:20,000 --> 01:17:22,000 Lascio come esercizio. 980 01:17:22,000 --> 01:17:24,000 E 'molto simile alla lettura del file che abbiamo fatto in precedenza. 981 01:17:24,000 --> 01:17:31,000 >> C'è un file concentrations.txt che si può tirare giù dal CDN, 982 01:17:31,000 --> 01:17:34,000 e si può aprire con lo stesso trucco foreach che abbiamo fatto in precedenza, 983 01:17:34,000 --> 01:17:39,000 foreach e basta eco un'opzione e collegare 984 01:17:39,000 --> 01:17:44,000 i valori appropriati, gli appositi tasti e gli indici, 985 01:17:44,000 --> 01:17:49,000 e quindi si ottiene un menu a discesa che crea letteralmente 986 01:17:49,000 --> 01:17:54,000 di programmazione per voi tutte le diverse concentrazioni di Harvard. 987 01:17:54,000 --> 01:17:57,000 Una cosa utile avere. 988 01:17:57,000 --> 01:18:02,000 C'è un sacco di roba di configurazione per questo incarico. 989 01:18:02,000 --> 01:18:07,000 Se non lo avete già fatto prendere la prossima mezz'ora, un'ora, 990 01:18:07,000 --> 01:18:10,000 po 'di tempo questa sera sicuramente di sicuro, 991 01:18:10,000 --> 01:18:14,000 a piedi attraverso le specifiche set problema, 992 01:18:14,000 --> 01:18:20,000 vedere quello che sta succedendo con l'impostazione dei vhost, l'host locale, tutta quella roba. 993 01:18:20,000 --> 01:18:24,000 Una cosa da sottolineare è che in questo momento 994 01:18:24,000 --> 01:18:30,000 nella maggior parte dei set di problemi che stiamo andando nella cartella Dropbox 995 01:18:30,000 --> 01:18:34,000 e quindi scaricando il set di file problema zip e decomprimere esso. 996 01:18:34,000 --> 01:18:36,000 Per questa serie problema che non si vuole. 997 01:18:36,000 --> 01:18:40,000 Vuoi andare in questa directory vhost. 998 01:18:40,000 --> 01:18:45,000 Avrai voglia di andare in vhost e andare nella directory host locale al suo interno, 999 01:18:45,000 --> 01:18:50,000 e questo è dove si vuole tirare giù il file zip, 1000 01:18:50,000 --> 01:18:55,000 decomprimerlo, e si preparano a partire. 1001 01:18:55,000 --> 01:18:57,000 Dovrai seguire i passi vicino. 1002 01:18:57,000 --> 01:19:02,000 >> Se avete domande, inviare e-mail, pubblicarlo su Discutere, venuto a orari d'ufficio. 1003 01:19:02,000 --> 01:19:08,000 Grazie ragazzi. La prossima settimana abbiamo intenzione di avere una sessione di revisione per il quiz. 1004 01:19:08,000 --> 01:19:12,000 Godetevi il vostro ultimo set problema. Spero che tutto va molto bene. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]