1 00:00:00,000 --> 00:00:05,040 2 00:00:05,040 --> 00:00:08,440 >> SAM LEVATICH: Benvido ao sección para esta semana. 3 00:00:08,440 --> 00:00:10,040 Non son Andi. 4 00:00:10,040 --> 00:00:14,590 Andi caeu enfermo o día de hoxe, e eu foron tipo de chamada no último minuto 5 00:00:14,590 --> 00:00:15,700 para asumir. 6 00:00:15,700 --> 00:00:20,920 É estación de gripe, polo que asegúrese de que están quedando limpo, lavar as mans, 7 00:00:20,920 --> 00:00:24,800 e alimentación saudable para que ti, tamén, non están acamado. 8 00:00:24,800 --> 00:00:26,870 >> Pero sen máis delongas, imos comezar. 9 00:00:26,870 --> 00:00:29,970 Hoxe, nós estamos indo falar sobre PHP un pouco como bit-- 10 00:00:29,970 --> 00:00:33,900 PHP refire ao HTML, como refírese a CSS, e algunha da tea 11 00:00:33,900 --> 00:00:36,100 cousas que fixo na última asignación. 12 00:00:36,100 --> 00:00:37,930 Imos falar un pouco sobre SQL 13 00:00:37,930 --> 00:00:41,360 e como pode traballar con bases de datos, que é un compoñente moi clave de I 14 00:00:41,360 --> 00:00:43,650 definir 8-- P axustou 7. 15 00:00:43,650 --> 00:00:44,480 P axustou 7. 16 00:00:44,480 --> 00:00:48,400 >> E entón imos falar un pouco pouco sobre como controladores de vista traballar 17 00:00:48,400 --> 00:00:54,640 e por que isto é unha filosofía detrás dalgúns páxinas web modernos e un deseño diferente. 18 00:00:54,640 --> 00:00:58,760 Practicamente unha morea de tipo de aplicacións e pode enviar aplicacións 19 00:00:58,760 --> 00:01:01,120 Está a utilizar este modelo, framework controlador de vista, 20 00:01:01,120 --> 00:01:02,890 que estará usando en I axuste 7, entón eu vou 21 00:01:02,890 --> 00:01:05,220 falar un pouco sobre por que se fixo 22 00:01:05,220 --> 00:01:07,970 popular, por que é importante e agradable. 23 00:01:07,970 --> 00:01:12,052 E entón eu vou finalmente pasar algúns consellos combate P axustou 7. 24 00:01:12,052 --> 00:01:13,760 E se temos tempo sobrando ao final, 25 00:01:13,760 --> 00:01:17,320 podemos realmente facer algunha en que traballar en conxunto. 26 00:01:17,320 --> 00:01:20,380 >> Entón, PHP. 27 00:01:20,380 --> 00:01:23,790 De feito, pode notar isto-- realmente non ten que mergullar ele-- 28 00:01:23,790 --> 00:01:27,880 pero P axustou 6 tivo algún PHP código que estaba acontecendo. 29 00:01:27,880 --> 00:01:34,710 E por que o PHP é un C-like lingua, PHP, a diferenza de HTML e CSS, 30 00:01:34,710 --> 00:01:39,030 é unha linguaxe de programación, Considerando HTML e CSS son estáticos. 31 00:01:39,030 --> 00:01:44,050 Son linguaxes de marcado que lidan con estilo e deseño visual. 32 00:01:44,050 --> 00:01:46,230 PHP é o negocio real. 33 00:01:46,230 --> 00:01:51,590 >> PHP ten loops, ten conditions-- todo isto que é divertido sobre C. 34 00:01:51,590 --> 00:01:56,190 Ten algunhas cousas que son un pouco pouco mellor que C, o que imos ver, 35 00:01:56,190 --> 00:01:59,760 pero creo que o xeito máis doado de falar sobre o PHP é só para mergullo. 36 00:01:59,760 --> 00:02:04,087 Entón, eu estou indo a ir á dereita no IDE neste momento. 37 00:02:04,087 --> 00:02:06,170 O primeiro que imos facer é realmente ollar 38 00:02:06,170 --> 00:02:10,169 un pouco nalgúns dos Código PHP que estaba en I axustou 6. 39 00:02:10,169 --> 00:02:13,600 Así, a forma que nós facemos isso-- antes, o xeito que estabamos correndo 40 00:02:13,600 --> 00:02:18,550 servidor para o aparello era que teriamos que type-- 41 00:02:18,550 --> 00:02:21,750 utilizar a súa posta en marcha ou a aplicación do equipo 42 00:02:21,750 --> 00:02:27,059 de server.c entrando directorio e funcionando server.c tanto con ningunha 43 00:02:27,059 --> 00:02:30,100 arguments-- tan só chamalo na servidor local, que é o que probablemente 44 00:02:30,100 --> 00:02:31,849 fixo a maior parte do tempo-- e, a continuación, alimentando- 45 00:02:31,849 --> 00:02:35,380 un con directory-- que para usar como a súa raíz 46 00:02:35,380 --> 00:02:38,310 onde o sitio vai executar, basicamente. 47 00:02:38,310 --> 00:02:42,180 >> Esta semana a I axuste 7, como grande como o noso código para server.c 48 00:02:42,180 --> 00:02:47,580 é que hai persoas que xa teñen escrito estas cousas finas sobre a CS50 49 00:02:47,580 --> 00:02:49,630 que ter un pouco máis funcionalidade, 50 00:02:49,630 --> 00:02:52,920 un programa de servidor que é capaz de xestionar algo máis 51 00:02:52,920 --> 00:02:56,350 dos meandros que imos ver tanto en I axustou 7 e P set 8. 52 00:02:56,350 --> 00:03:01,410 E a forma que se inicia o servidor é só escribindo "apache50." 53 00:03:01,410 --> 00:03:03,960 >> E antes de facer calquera cousa, quere asegurarse de 54 00:03:03,960 --> 00:03:06,070 Apache 50 non é xa en execución, xa que é 55 00:03:06,070 --> 00:03:08,130 na miña máquina, que eu fixen para proba-lo. 56 00:03:08,130 --> 00:03:10,320 E fai iso chamando apache50. 57 00:03:10,320 --> 00:03:14,070 Parar, e vai ver que está parando o servidor web, se pode ollar alí 58 00:03:14,070 --> 00:03:16,340 na parte inferior da ventá do terminal. 59 00:03:16,340 --> 00:03:21,090 E despois é só para comezar, estamos vai chamar, "apache50 comezar." 60 00:03:21,090 --> 00:03:23,150 E entón nós imos para alimento-lo un directorio. 61 00:03:23,150 --> 00:03:26,950 >> Agora, porque queremos mirar nalgunhas das P axustou 6 código 62 00:03:26,950 --> 00:03:32,850 que tiñamos aplicado, realmente copiado un pouco do P 63 00:03:32,850 --> 00:03:37,090 axuste 6 código na miña propia cartafol, que se pode ver na parte esquerda alí. 64 00:03:37,090 --> 00:03:40,170 É chamado de "SECTION8" en maiúsculas 65 00:03:40,170 --> 00:03:44,510 porque eu estou tan animado a ser transmitido en directo hoxe. 66 00:03:44,510 --> 00:03:47,330 >> Entón, se nós funcionan este, que debería todos traballan moi eficaz. 67 00:03:47,330 --> 00:03:52,350 Ela di, OK, noso sitio é agora dispoñible na páxina do IDE, 68 00:03:52,350 --> 00:03:57,710 basicamente, que é o que estaba usando exactamente como era o P definir 7-- P axustou 6. 69 00:03:57,710 --> 00:04:00,899 Todos os meus índices son un índice de hoxe. 70 00:04:00,899 --> 00:04:02,940 Así, podemos ir aquel dirección, se se lembra, 71 00:04:02,940 --> 00:04:05,710 só premendo neste pequeno botón na esquina superior dereita. 72 00:04:05,710 --> 00:04:14,200 >> E vai lembrar este código, que aconteceu cando foi para hello.php. 73 00:04:14,200 --> 00:04:18,000 E o que o código está deseñado para facer é cando escribiu un nome 74 00:04:18,000 --> 00:04:20,550 aqui-- se di Sam porque esa é a miña nome-- 75 00:04:20,550 --> 00:04:23,620 e premo Say Hello, cando fomos á seguinte páxina, 76 00:04:23,620 --> 00:04:25,270 nome que foi suposta ser exhibida. 77 00:04:25,270 --> 00:04:28,550 El dicía: "Ola, Sam" ou "Ola", o que quere que nome 78 00:04:28,550 --> 00:04:32,470 poñer nel, aínda que fomos a unha enteiramente nova páxina web. 79 00:04:32,470 --> 00:04:36,610 >> E este é o tipo de cousas que o PHP pode facer por ti. 80 00:04:36,610 --> 00:04:42,840 PHP é capaz de transmitir datos entre dúas páxinas web. 81 00:04:42,840 --> 00:04:44,390 Esta é unha páxina totalmente diferente. 82 00:04:44,390 --> 00:04:46,990 Podes ver o título é "Ola" aquí. 83 00:04:46,990 --> 00:04:49,080 En realidade, eles teñen mesmo título, pero eu 84 00:04:49,080 --> 00:04:52,560 prometo que son diferentes web páxinas, se miramos a fonte. 85 00:04:52,560 --> 00:04:55,890 E pode pasar os datos que se introducido neste campo de texto, 86 00:04:55,890 --> 00:04:59,830 envialo á seguinte A páxina que está a ser chamado, 87 00:04:59,830 --> 00:05:02,490 e, a continuación, de datos que é capaz de estar alí na súa forma actual. 88 00:05:02,490 --> 00:05:04,810 >> Agora aínda non aplicaron este nós mesmos, o que 89 00:05:04,810 --> 00:05:08,710 é o que nós imos facer agora para especie obter un sabor de como PHP funciona, 90 00:05:08,710 --> 00:05:15,070 pero a idea fundamental é que pode PHP-- tipo de pensar niso como unha función. 91 00:05:15,070 --> 00:05:18,570 Algo que o PHP pode deixalo Non é que pode levar parámetros 92 00:05:18,570 --> 00:05:24,710 que entra nunha páxina HTML mediante o uso de PHP e formas, 93 00:05:24,710 --> 00:05:29,960 e pode pasar os parámetros como á seguinte páxina que leva. 94 00:05:29,960 --> 00:05:35,110 >> Neste caso, nós estamos levando a esta A páxina co botón "Diga Ola". 95 00:05:35,110 --> 00:05:38,960 Pero, por agora, realmente excluído algúns dos que o código 96 00:05:38,960 --> 00:05:44,850 no hello.php que estaba en execución que foi, de feito, mostrando o "Ola, 97 00:05:44,850 --> 00:05:49,680 mundo "ou" Ola, Sam "ou "Ola," o que quere que era só de entrada. 98 00:05:49,680 --> 00:05:53,620 Entón, por agora, estamos vai facer iso, basicamente. 99 00:05:53,620 --> 00:05:56,570 Nós imos recrear iso e tamén engadir máis algunhas funcionalidades, 100 00:05:56,570 --> 00:06:00,210 facer un pouco máis con el, ver PHP é realmente capaz. 101 00:06:00,210 --> 00:06:04,870 >> Entón, primeiro, imos falar sobre este ficheiro, hello.php. 102 00:06:04,870 --> 00:06:07,440 Entón, se nós zoom nun bit-- pouco e agora estou 103 00:06:07,440 --> 00:06:10,520 tipo de tentar percorrer todo o xeito circundar-- alí imos nós. 104 00:06:10,520 --> 00:06:14,220 Verá que se chama ola.php, pero a sintaxe de que 105 00:06:14,220 --> 00:06:16,880 mira como un ficheiro HTML. 106 00:06:16,880 --> 00:06:20,380 Isto é porque o PHP real neste ficheiro 107 00:06:20,380 --> 00:06:25,220 é prendido entre todos estes question mark-bloques acento circunflexo. 108 00:06:25,220 --> 00:06:28,610 Todo aquí considérase código PHP. 109 00:06:28,610 --> 00:06:32,040 >> E vai entender que cando eu fixen un comentario, 110 00:06:32,040 --> 00:06:35,320 vai ver o familiar dúas barras. 111 00:06:35,320 --> 00:06:38,440 E se se lembra, en HTML, se eu escribir un comentario, 112 00:06:38,440 --> 00:06:42,540 parece algo máis preto tanto, que é un comentario HTML. 113 00:06:42,540 --> 00:06:46,570 Entón, realmente todo entre estes dous corchetes 114 00:06:46,570 --> 00:06:50,060 agora é código PHP, que reflicte-se no feito 115 00:06:50,060 --> 00:06:53,270 que este pequeno símbolo de comentario é transformado nun comentario. 116 00:06:53,270 --> 00:06:58,420 >> Así, cada vez que escribir código PHP, mesmo se non hai ningún código HTML fóra del, 117 00:06:58,420 --> 00:07:02,720 está sempre será pechado nestes corchetes 118 00:07:02,720 --> 00:07:04,080 con puntos de interrogación. 119 00:07:04,080 --> 00:07:08,260 Pode tipo de pensar como todo isso-- do código que corría nos seus programas C 120 00:07:08,260 --> 00:07:13,950 foi pechado nun int main, baleiro, chaveta, rizado declaración final cinta. 121 00:07:13,950 --> 00:07:17,100 E podes ver claves en PHP tamén, pero este é o tipo de 122 00:07:17,100 --> 00:07:20,490 como o principal método de PHP. 123 00:07:20,490 --> 00:07:25,630 >> Entón, agora, como é que imos facer algo en PHP? 124 00:07:25,630 --> 00:07:29,190 Agora, PHP é unha programación linguaxe que é moi parecida C, 125 00:07:29,190 --> 00:07:30,970 pero opera na web. 126 00:07:30,970 --> 00:07:33,270 Entón, unha cousa que vai immediately-- un 127 00:07:33,270 --> 00:07:38,130 das primeiras cousas que realmente fixo C foi impreso material para fóra, non? 128 00:07:38,130 --> 00:07:42,290 Así, en C que fixemos cunha función printf. 129 00:07:42,290 --> 00:07:46,430 Demos-lle unha corda, probablemente cunha nova liña, 130 00:07:46,430 --> 00:07:49,850 e, despois, pechado cun punto e coma. 131 00:07:49,850 --> 00:07:53,790 >> Así, a forma que nós estamos indo a facelo en PHP-- porque non é moi printf. 132 00:07:53,790 --> 00:07:55,940 É un pouco de sintaxe distinta. 133 00:07:55,940 --> 00:08:02,580 O xeito que imprimir as cousas en PHP é que dicimos, "echo Ola" 134 00:08:02,580 --> 00:08:04,180 ou "eco" calquera palabra. 135 00:08:04,180 --> 00:08:09,830 E iso ten o efecto de facer printf cunha corda, "Ola". 136 00:08:09,830 --> 00:08:11,990 E engade a nova liña para el. 137 00:08:11,990 --> 00:08:16,000 >> Entón, imos agora facer sure-- Vou reducir novo un pouco bit-- 138 00:08:16,000 --> 00:08:18,250 imos asegurarse de que que o código funciona 139 00:08:18,250 --> 00:08:21,030 porque non podería ben ser un erro neste código 140 00:08:21,030 --> 00:08:22,880 que teremos que facer fronte. 141 00:08:22,880 --> 00:08:25,860 Entón, o servidor xa está en execución. 142 00:08:25,860 --> 00:08:30,630 Entón, se nós rolar para atrás ata o fondo, si, o servidor aínda está en execución. 143 00:08:30,630 --> 00:08:34,510 Entón, se nós só tocar neste dereito pouco aqui-- 144 00:08:34,510 --> 00:08:37,620 welcome-- debemos get-- grande. 145 00:08:37,620 --> 00:08:39,930 >> Aínda estamos tendo a familiar "Diga Ola" diálogo, 146 00:08:39,930 --> 00:08:45,750 pero cando escribir "ola," veremos que o texto "Ola" era de feito 147 00:08:45,750 --> 00:08:50,080 impreso, que é exactamente como que esperabamos porque ecoam en PHP 148 00:08:50,080 --> 00:08:53,190 é como unha instrución printf. 149 00:08:53,190 --> 00:09:01,410 Entón, de volta ao código, como en I axustou 6 fixen o código de distribución que son proporcionados 150 00:09:01,410 --> 00:09:05,920 facer que o PHP saída a cousa que 151 00:09:05,920 --> 00:09:07,920 ingresaran na pantalla anterior? 152 00:09:07,920 --> 00:09:10,350 >> E a sorte de examinar por que isto ocorre, estamos 153 00:09:10,350 --> 00:09:15,510 indo para entrar en index.html, que é o arquivo orixinal, o arquivo que 154 00:09:15,510 --> 00:09:18,710 aparece na pantalla co botón "Diga Ola". 155 00:09:18,710 --> 00:09:20,950 Entender que hai todas as cousas clásicas 156 00:09:20,950 --> 00:09:26,910 vimos esperar HTML tales como isto, estas etiquetas pechado 157 00:09:26,910 --> 00:09:31,080 no ángulo entre parénteses, como PHP pero sen os puntos de interrogación, 158 00:09:31,080 --> 00:09:34,650 o que indica unha cousa especial para HTML. 159 00:09:34,650 --> 00:09:36,895 Temos título, que é "Ola". 160 00:09:36,895 --> 00:09:41,010 E vai entender que, como vimos, o título é "Ola" en ambos os casos. 161 00:09:41,010 --> 00:09:43,260 Imos cambiar este "dicir" só para que 162 00:09:43,260 --> 00:09:48,170 poden distinguirse nos onde estamos. 163 00:09:48,170 --> 00:09:49,600 >> Pero temos un corpo. 164 00:09:49,600 --> 00:09:52,690 E, a continuación, a parte interesante, o bit que aparece no HTML, 165 00:09:52,690 --> 00:09:54,530 é este elemento de formulario. 166 00:09:54,530 --> 00:09:56,370 E entón temos un formulario. 167 00:09:56,370 --> 00:09:58,330 E esa é a clave. 168 00:09:58,330 --> 00:10:00,530 Esta é o xeito no que estamos a traballar con PHP. 169 00:10:00,530 --> 00:10:05,790 O parámetro da acción formulario di que hello.php 170 00:10:05,790 --> 00:10:09,310 é o que nós estamos indo a enviar os valores nos este formulario para. 171 00:10:09,310 --> 00:10:13,830 Este é o lugar onde estamos pasando os parámetros, por así dicir. 172 00:10:13,830 --> 00:10:18,680 >> Vai notar algo aquí é que o método é "comezar". 173 00:10:18,680 --> 00:10:24,450 Hai dous primario métodos polos que será 174 00:10:24,450 --> 00:10:28,750 estar usando PHP para pasar datos entre as páxinas web websites--, 175 00:10:28,750 --> 00:10:30,500 rather-- nesta asignación. 176 00:10:30,500 --> 00:10:34,070 E estes métodos son "get" e "post". 177 00:10:34,070 --> 00:10:37,010 Hai algunhas sutís diferenzas entre GET e POST 178 00:10:37,010 --> 00:10:40,520 que chegaremos into-- nós vai "incorporarse" en, se quere. 179 00:10:40,520 --> 00:10:44,030 >> Pero, para todos os intentos e propósitos, GET e POST 180 00:10:44,030 --> 00:10:47,120 ambos son só formas que pasar parámetros 181 00:10:47,120 --> 00:10:49,500 cun pouco diferentes execucións. 182 00:10:49,500 --> 00:10:53,500 De momento, imos usar get porque obter foi o que foi orixinalmente usado 183 00:10:53,500 --> 00:10:57,340 no arquivo PHP de I axustou 6. 184 00:10:57,340 --> 00:11:00,850 E, de feito, se somos e ollar antes de que editei calquera outra cousa, 185 00:11:00,850 --> 00:11:03,090 Eu vou dicir unha ola a-- cal é o seu nome? 186 00:11:03,090 --> 00:11:03,812 >> Audiencia: Elliot. 187 00:11:03,812 --> 00:11:04,770 SAM LEVATICH: Oh, meu Deus. 188 00:11:04,770 --> 00:11:05,600 Non sei como se escribe isto. 189 00:11:05,600 --> 00:11:06,766 Podería deletrear isto por min? 190 00:11:06,766 --> 00:11:08,710 Audiencias: E-L-G-I-S-T. 191 00:11:08,710 --> 00:11:09,720 >> SAM LEVATICH: I-S-T? 192 00:11:09,720 --> 00:11:10,440 >> Audiencia: É. 193 00:11:10,440 --> 00:11:10,960 >> SAM LEVATICH: Perfect. 194 00:11:10,960 --> 00:11:11,210 Aceptar. 195 00:11:11,210 --> 00:11:12,751 Eu creo que eu sabía como deletrear isto. 196 00:11:12,751 --> 00:11:13,510 Sentímolo por iso. 197 00:11:13,510 --> 00:11:16,560 Pero se dicimos "Diga Ola", que non é non aparecerá na pantalla 198 00:11:16,560 --> 00:11:18,476 aínda porque modificamos o código un pouco. 199 00:11:18,476 --> 00:11:21,290 Pero se nós "Diga Ola" - OK, entón "Ola" é aquí. 200 00:11:21,290 --> 00:11:24,137 Pero se tomamos un máis preto mirar para o propio URL, 201 00:11:24,137 --> 00:11:26,220 veremos que termina con hello.php? name = Elliot. 202 00:11:26,220 --> 00:11:30,980 203 00:11:30,980 --> 00:11:37,180 >> Entón, esa é unha forma de comunicación á seguinte páxina web 204 00:11:37,180 --> 00:11:39,240 os parámetros que pasamos. 205 00:11:39,240 --> 00:11:40,870 Dixemos name = Elliot. 206 00:11:40,870 --> 00:11:46,290 E iso é, finalmente, como P axustou 6 acceder a variable que pasamos en 207 00:11:46,290 --> 00:11:47,520 a través do formulario. 208 00:11:47,520 --> 00:11:51,470 E iso é algo que é peculiar a unha petición get. 209 00:11:51,470 --> 00:11:57,480 A solicitude get fai que os parámetros coñecido na URL do sitio web. 210 00:11:57,480 --> 00:12:01,190 >> E vai lembrar, tamén, P en que axuste 6 211 00:12:01,190 --> 00:12:04,450 tivo que escribir unha función que lidaba co feito 212 00:12:04,450 --> 00:12:09,700 que esta cadea de consulta podería existir despois dun ficheiro. 213 00:12:09,700 --> 00:12:14,684 Non podería ser un signo de interrogación seguido por basicamente calquera número de caracteres. 214 00:12:14,684 --> 00:12:16,350 E iso é o que está a suceder aquí. 215 00:12:16,350 --> 00:12:21,280 E a razón que tivo de analizar este na súa posta en marcha de server.c en I 216 00:12:21,280 --> 00:12:27,570 axuste 6 é así que podería dicir o código PHP que name = Elliot. 217 00:12:27,570 --> 00:12:30,460 Vostede necesario para poder analizar o que fóra do URL 218 00:12:30,460 --> 00:12:35,900 para que o arquivo PHP en cuestión sabía o que estaba lidando. 219 00:12:35,900 --> 00:12:39,350 >> Polo tanto, esperamos que isto dá a motivación para server.c 220 00:12:39,350 --> 00:12:43,900 agora que estamos seguindo adiante fóra de C co PHP. 221 00:12:43,900 --> 00:12:48,240 Entón imos realmente centrar o acceso ao cousas pasada a través dunha solicitude get agora 222 00:12:48,240 --> 00:12:48,880 neste punto. 223 00:12:48,880 --> 00:12:50,157 Eu estou indo a salvar este. 224 00:12:50,157 --> 00:12:51,240 Non cambia nada. 225 00:12:51,240 --> 00:12:56,080 Parece que temos un campo de entrada. 226 00:12:56,080 --> 00:12:58,550 >> Estamos definindo unhas propiedades, como podemos facer un HTML. 227 00:12:58,550 --> 00:12:59,550 Estas son cousas simples. 228 00:12:59,550 --> 00:13:00,580 Non necesitamos deles. 229 00:13:00,580 --> 00:13:03,750 Pero temos autocomplete fóra, que basicamente says-- vostede sabe, 230 00:13:03,750 --> 00:13:05,710 cando escribe cousas dentro da tea, ás veces, 231 00:13:05,710 --> 00:13:07,355 intenta encher ese para ti. 232 00:13:07,355 --> 00:13:08,230 Entón, é unha cousa agradable. 233 00:13:08,230 --> 00:13:11,700 Queremos desactiva-lo para esta finalidade. 234 00:13:11,700 --> 00:13:13,970 Esa foi unha decisión CS50. 235 00:13:13,970 --> 00:13:15,640 Así, podemos eliminar que, se quixésemos. 236 00:13:15,640 --> 00:13:19,510 >> O enfoque automático só fura o cursor na forma dereita no inicio. 237 00:13:19,510 --> 00:13:21,060 Unha vez máis, non é moi importante. 238 00:13:21,060 --> 00:13:26,220 >> Pero name = "name" - é un pouco complicado, porque o seu nome e nome. 239 00:13:26,220 --> 00:13:28,730 Pero poderíamos mudar este a outra cousa. 240 00:13:28,730 --> 00:13:30,563 E, de feito, iso é o que imos facer agora. 241 00:13:30,563 --> 00:13:34,830 Imos dicir "persoa", que é unha especie de nome 242 00:13:34,830 --> 00:13:36,790 Se unha persoa é definido polo seu nome. 243 00:13:36,790 --> 00:13:41,480 >> Entón imos pechar este, reabrir a nosa web 244 00:13:41,480 --> 00:13:46,110 desde o noso servidor aínda está en execución Apache 50, e imos dicir, Ola, aquí está 245 00:13:46,110 --> 00:13:47,200 Elliot novo. 246 00:13:47,200 --> 00:13:48,460 Por que non? 247 00:13:48,460 --> 00:13:49,220 Ola. 248 00:13:49,220 --> 00:13:52,880 E se somos até aquí, imos ver a continuación, en vez name = Elliot, 249 00:13:52,880 --> 00:13:55,200 el di que persoa = Elliot. 250 00:13:55,200 --> 00:14:00,060 E iso é un resultado directo do feito que só cambiou name = "persoa". 251 00:14:00,060 --> 00:14:06,840 >> Así, nun elemento de entrada de un formulario HTML, o campo de nome 252 00:14:06,840 --> 00:14:10,590 é o identificador para o parámetro que está a ser pasado. 253 00:14:10,590 --> 00:14:14,250 É como se está creando unha función "engadir", que tivo dous enteiros 254 00:14:14,250 --> 00:14:16,670 e dixo int ae int b. 255 00:14:16,670 --> 00:14:22,680 Iso sería un nome, e se quería outra forma, que 256 00:14:22,680 --> 00:14:27,800 podemos facer só copiando e pegar, entón teriamos nome b. 257 00:14:27,800 --> 00:14:31,030 >> Entón, agora imos ter dous parámetros que está a ser pasada a través 258 00:14:31,030 --> 00:14:36,970 chegar ao seguinte website-- seguinte páxina web, hello.php. 259 00:14:36,970 --> 00:14:39,770 E podemos realmente ver que de novo se queres. 260 00:14:39,770 --> 00:14:44,830 Esta é o xeito máis doado de xestionar o código web no IDE, basicamente. 261 00:14:44,830 --> 00:14:47,940 Iniciar o servidor, obtelo en execución e, a continuación, cada vez que 262 00:14:47,940 --> 00:14:50,649 facer algúns cambios, só preto o ficheiro só para ser seguro. 263 00:14:50,649 --> 00:14:52,440 Preme o botón de volta é un pouco complicado 264 00:14:52,440 --> 00:14:55,800 porque pode cargar unha versión anterior versión, non o máis actualizado. 265 00:14:55,800 --> 00:14:59,200 >> E entón simplemente prema no seu botón de novo, pop dereita up-- oh, 266 00:14:59,200 --> 00:15:00,510 e agora hai dúas formas. 267 00:15:00,510 --> 00:15:10,440 E por iso, se nós digitamos algo en cada um-- "Hirshhorn Jason," para instance-- 268 00:15:10,440 --> 00:15:11,590 nós dicir Hola. 269 00:15:11,590 --> 00:15:12,840 Miramos para os nosos parámetros. 270 00:15:12,840 --> 00:15:18,910 Parece que temos, como espera, a = Jason eb = Hirshhorn, 271 00:15:18,910 --> 00:15:23,760 que representa os dous parámetros que pasados ​​para esa función. 272 00:15:23,760 --> 00:15:27,900 >> Entón agora imos realmente comezar a implementar esta funcionalidade que 273 00:15:27,900 --> 00:15:30,840 tiña en I axustou 6. 274 00:15:30,840 --> 00:15:32,490 Entón, agora estamos só facendo eco Ola. 275 00:15:32,490 --> 00:15:34,310 E iso non é moi útil. 276 00:15:34,310 --> 00:15:38,530 Queremos ecoar algunha variable que foi pasado para nós. 277 00:15:38,530 --> 00:15:40,320 E sabemos o nome desta variable. 278 00:15:40,320 --> 00:15:41,770 Temos un e temos b. 279 00:15:41,770 --> 00:15:43,500 Así poderiamos escoller para ecoar calquera. 280 00:15:43,500 --> 00:15:45,470 >> Pero como podemos acceder a ela? 281 00:15:45,470 --> 00:15:48,820 Así, hai certas variables globais en PHP. 282 00:15:48,820 --> 00:15:51,240 E eu vou escribir los en observacións aquí. 283 00:15:51,240 --> 00:15:59,910 Os dous máis importantes son get e publicar os nosos propósitos agora. 284 00:15:59,910 --> 00:16:05,350 Estas son as matrices ou, Tecnicamente, os dicionarios 285 00:16:05,350 --> 00:16:10,540 onde nosas variables que estamos pasando á seguinte páxina web en directo. 286 00:16:10,540 --> 00:16:14,520 E pronto veremos como usalos. 287 00:16:14,520 --> 00:16:19,720 >> Outro breve nota sobre o código PHP e algunhas particularidades do ele-- en C, 288 00:16:19,720 --> 00:16:23,260 para declarar unha variable ou usar variables, 289 00:16:23,260 --> 00:16:24,570 primeiro tiña que declaralo los. 290 00:16:24,570 --> 00:16:30,860 E o que tiña que facer cando declarouse dicir int a carbón ou b. 291 00:16:30,860 --> 00:16:35,630 Tiña que declarar tipo de estes variables antes de creou. 292 00:16:35,630 --> 00:16:38,800 PHP-- non precisa facer nada diso. 293 00:16:38,800 --> 00:16:42,522 PHP non pedir o tipo de variable. 294 00:16:42,522 --> 00:16:44,480 E a forma que crear un variable-- vez 295 00:16:44,480 --> 00:16:49,930 que dicir int, char, string-- que é realmente char *, coma nós sabe-- 296 00:16:49,930 --> 00:16:52,180 en vez de facer todo de que, porque todo 297 00:16:52,180 --> 00:16:54,620 é do mesmo tipo, typeless, podemos só 298 00:16:54,620 --> 00:16:59,210 usa un personaxe, que é o sinal de dólar. 299 00:16:59,210 --> 00:17:03,700 E vai ver que xa está aparecendo up, pequenas cousas autocomplete. 300 00:17:03,700 --> 00:17:11,380 E está dicindo que _GET e _POST son dúas opcións que eu teño dispoñible 301 00:17:11,380 --> 00:17:11,900 para min. 302 00:17:11,900 --> 00:17:16,430 Algunhas desas outras cousas son outras variables globais en PHP 303 00:17:16,430 --> 00:17:18,430 que estará usando máis o curso de I axustou 7. 304 00:17:18,430 --> 00:17:20,569 De momento imos concentrarse en Get e POST. 305 00:17:20,569 --> 00:17:22,910 Pero esta é unha útil cousa que o IDE fai 306 00:17:22,910 --> 00:17:24,980 onde xa que escribiu en que o sinal de dólar, 307 00:17:24,980 --> 00:17:28,760 que vai comezar a cubrir as variábeis globais ou variables que xa definido. 308 00:17:28,760 --> 00:17:34,360 >> Entón, se quería para definir unha variable chamada "cadea" 309 00:17:34,360 --> 00:17:38,290 pode só configure-lo igual a "ola". 310 00:17:38,290 --> 00:17:40,100 E é basicamente tan sinxelo coma iso. 311 00:17:40,100 --> 00:17:44,720 E entón poderíamos facer algo así como "echo $ string." 312 00:17:44,720 --> 00:17:48,524 O IDE estará botando uns erros se eu estou facendo nada de malo, 313 00:17:48,524 --> 00:17:50,190 polo que espera que eu estou facendo todo certo. 314 00:17:50,190 --> 00:17:52,060 Pero erros sempre xorden. 315 00:17:52,060 --> 00:17:56,670 >> Outra cousa complicada sobre PHP é que non está compilado. 316 00:17:56,670 --> 00:18:00,640 Así, con programas en C, faría a rutina diaria de-- basicamente 317 00:18:00,640 --> 00:18:02,710 faría para edicións seu código, a garda-lo, 318 00:18:02,710 --> 00:18:04,460 e, a continuación, faría facelo, onde foi make 319 00:18:04,460 --> 00:18:08,830 o paso que chama o compilador, clang, para facer o seu código, este texto 320 00:18:08,830 --> 00:18:10,570 ficheiro, nun ficheiro executable. 321 00:18:10,570 --> 00:18:15,550 PHP é C-like, pero é executado on the fly polo seu navegador. 322 00:18:15,550 --> 00:18:17,640 Polo tanto, non hai maneira de saber. 323 00:18:17,640 --> 00:18:19,790 >> Fai xogaría os erros votos, non? 324 00:18:19,790 --> 00:18:22,190 Sería como, non declarou esta variable 325 00:18:22,190 --> 00:18:23,320 antes de usalo. 326 00:18:23,320 --> 00:18:29,120 Fixo todo isto malo segfault stuff--, segfault, todo ese tipo de diversión veces 327 00:18:29,120 --> 00:18:31,000 que veu con make. 328 00:18:31,000 --> 00:18:33,920 PHP é unha arma de dobre fío porque non vai obter estes erros, 329 00:18:33,920 --> 00:18:37,770 pero iso tamén significa que non vai saber realmente o que hai de malo co seu programa 330 00:18:37,770 --> 00:18:39,840 se pode executa-lo e el non está funcionando. 331 00:18:39,840 --> 00:18:45,130 Pero o depurador de salientar algunhas espero votos pequenas cousas 332 00:18:45,130 --> 00:18:47,950 sintaticamente que pode resolver. 333 00:18:47,950 --> 00:18:52,850 >> Entón, agora, se somos máis a-- dicir, imos pechar esta. 334 00:18:52,850 --> 00:18:54,522 Reabrir. 335 00:18:54,522 --> 00:18:55,480 E estamos de volta para aquí. 336 00:18:55,480 --> 00:18:57,210 Entón, temos unha variable e unha variable b. 337 00:18:57,210 --> 00:18:58,626 E estes non acabará importa. 338 00:18:58,626 --> 00:19:01,850 Imos chamalos h e g por ningunha razón particular. 339 00:19:01,850 --> 00:19:03,120 >> E nós dicir Hola. 340 00:19:03,120 --> 00:19:07,480 Agora parece que a nosa cadea "ola" é de feito a impresión. 341 00:19:07,480 --> 00:19:10,460 Creamos unha variable chamada "cadea", define-igual a "ola". 342 00:19:10,460 --> 00:19:15,520 Teña en conta que nós non temos que facer malloc ou facer un array de caracteres. 343 00:19:15,520 --> 00:19:19,110 >> En PHP, porque as variables son typeless, unha cadea 344 00:19:19,110 --> 00:19:22,230 é o mesmo que para un char todos os efectos. 345 00:19:22,230 --> 00:19:23,570 Este podería ser "ola". 346 00:19:23,570 --> 00:19:26,340 Este podería ser só o personaxe k. 347 00:19:26,340 --> 00:19:29,290 Este pode ser un número 1. 348 00:19:29,290 --> 00:19:30,300 E non importa. 349 00:19:30,300 --> 00:19:33,560 PHP non se preocupan o tipo da súa variable. 350 00:19:33,560 --> 00:19:34,390 Ou, se importa. 351 00:19:34,390 --> 00:19:36,240 El lle importa cando se trata e facer as cousas con el, 352 00:19:36,240 --> 00:19:38,790 pero non lle importa en a etapa de declaración. 353 00:19:38,790 --> 00:19:46,960 >> E, así como pode en C, pode declarar cordas na pila como este 354 00:19:46,960 --> 00:19:51,130 aínda dicindo "pila" é un pouco pouco de un equívoco potencial cando 355 00:19:51,130 --> 00:19:52,230 estamos a falar sobre PHP. 356 00:19:52,230 --> 00:19:54,020 Pero non hai que preocuparse con iso. 357 00:19:54,020 --> 00:19:55,936 Entón, nós temos o noso cadea "ola", e que o eco cadea. 358 00:19:55,936 --> 00:19:58,880 Entón, agora temos discutido variables. 359 00:19:58,880 --> 00:20:06,060 Entón, agora necesitamos falar get e publicar e executar o último que é 360 00:20:06,060 --> 00:20:12,660 necesario para realmente obter esta de volta para a función do P axustou 6. 361 00:20:12,660 --> 00:20:14,990 Entón, agora somos ecoando a corda, pero nós 362 00:20:14,990 --> 00:20:17,080 teñen estas variables GET e POST. 363 00:20:17,080 --> 00:20:19,430 E porque estamos usando O método GET, el 364 00:20:19,430 --> 00:20:24,810 Parece natural que a nosa variable que estamos interesados ​​en, tanto a e b, 365 00:20:24,810 --> 00:20:29,870 será situado na matriz ou dicionario, tecnicamente chegar. 366 00:20:29,870 --> 00:20:33,510 >> Entón, se nos montes obter como este co seu groups-- eu preme entrar 367 00:20:33,510 --> 00:20:36,770 e non lle gustou ele-- pero aquí temos obter. 368 00:20:36,770 --> 00:20:38,000 E así que comezar xa existe. 369 00:20:38,000 --> 00:20:41,380 Así, podemos xa comezar a acceder algúns dos elementos de get. 370 00:20:41,380 --> 00:20:45,000 Se comezamos esta sintaxe para arrays en PHP é moi C-like. 371 00:20:45,000 --> 00:20:47,900 Temos os nosos dous corchetes. 372 00:20:47,900 --> 00:20:53,440 >> Entón, se nós dicimos entrar nun normais array, poderiamos acceder 373 00:20:53,440 --> 00:20:55,600 o índice de orde cero, o primeiro índice. 374 00:20:55,600 --> 00:20:56,840 PHP é o índice cero. 375 00:20:56,840 --> 00:21:00,550 Poderiamos dicir cero, un, dois-- cousas como esta. 376 00:21:00,550 --> 00:21:03,420 E eu veño dicindo que obter é tecnicamente un dicionario. 377 00:21:03,420 --> 00:21:08,290 Entón, o que está facendo PHP baixo o capó, que é un pouco máis agradable do que C, 378 00:21:08,290 --> 00:21:12,760 é que xa está a darlle algún funcionalidade dicionario, que 379 00:21:12,760 --> 00:21:16,240 é realmente táboas de hash, ou intenta, supostamente. 380 00:21:16,240 --> 00:21:19,360 Ou, tecnicamente, podería ser un intento ben. 381 00:21:19,360 --> 00:21:25,500 Pero o PHP está a aplicar unha táboa hash, que forma un dicionario eficaz. 382 00:21:25,500 --> 00:21:28,400 >> E polo que sabemos o nome da nosa variable, non? 383 00:21:28,400 --> 00:21:32,440 El está a ser pasado en a cadea de consulta polo PHP. 384 00:21:32,440 --> 00:21:37,290 Temos a = h eb = g, onde eb son os nomes das variables. 385 00:21:37,290 --> 00:21:41,580 Así, a forma que podemos acceder ao valor que se corresponde coa tecla 386 00:21:41,580 --> 00:21:45,055 no noso dicionario é só dicindo _GET_GET ["a"]. 387 00:21:45,055 --> 00:21:48,170 388 00:21:48,170 --> 00:21:51,365 >> Polo tanto, agora temos _GET ["a"]. 389 00:21:51,365 --> 00:21:56,930 E se nós só substituír dentro noso eco, se ecoar _GET_GET ["a"] - 390 00:21:56,930 --> 00:22:02,410 e veremos se o depurador lanza posibles erros sobre isto-- 391 00:22:02,410 --> 00:22:05,620 imos gardar iso e pechar isto. 392 00:22:05,620 --> 00:22:07,130 Abrilo. 393 00:22:07,130 --> 00:22:10,390 Entón, nós estamos só facendo un dereito agora, para b non debe importar. 394 00:22:10,390 --> 00:22:12,980 "ela" e "el" - "hum". "ela" e "hum". 395 00:22:12,980 --> 00:22:14,810 Soa ben. 396 00:22:14,810 --> 00:22:18,040 >> E é impreso "ela," que é unha tolemia. 397 00:22:18,040 --> 00:22:21,920 Pero iso é o que estaba a suceder na P axustou 6. 398 00:22:21,920 --> 00:22:27,240 Basicamente, o que P axustou 6 foi doing-- echo Ola, 399 00:22:27,240 --> 00:22:31,580 nome-- onde tivo un nome da variable e iso só 400 00:22:31,580 --> 00:22:35,520 pide para insire nese anaco de texto. 401 00:22:35,520 --> 00:22:37,380 Houbo tamén algunha Código adicional onde 402 00:22:37,380 --> 00:22:40,550 que incluía instrucións if, que podemos facer agora. 403 00:22:40,550 --> 00:22:50,120 >> Podemos dicir que existe, o que é unha función dentro do PHP, 404 00:22:50,120 --> 00:22:55,110 _GET Co subliñado, "nome" - que é basicamente dicindo: 405 00:22:55,110 --> 00:22:58,760 "o nome fose cuberto", porque Poderiamos simplemente premendo no botón 406 00:22:58,760 --> 00:23:02,580 para enviar o formulario sen escribir nada neste campo. 407 00:23:02,580 --> 00:23:07,760 E nós implicados que, na nosa claves amigables. 408 00:23:07,760 --> 00:23:09,175 Podemos ter unha declaración de outra persoa. 409 00:23:09,175 --> 00:23:13,300 410 00:23:13,300 --> 00:23:18,820 E iso é todo dentro do ángulo de PHP soporte, signo de interrogación, soporte de ángulo, 411 00:23:18,820 --> 00:23:20,040 se quere. 412 00:23:20,040 --> 00:23:21,750 >> E agora imos ver se funciona. 413 00:23:21,750 --> 00:23:26,300 Eu sigo esperando por el para depuración e crap fóra de min, basicamente, 414 00:23:26,300 --> 00:23:28,410 pero aínda non ten. 415 00:23:28,410 --> 00:23:30,830 Quizais vai agora porque eu falei sobre. 416 00:23:30,830 --> 00:23:31,330 Yup. 417 00:23:31,330 --> 00:23:32,510 Fixo, en realidade. 418 00:23:32,510 --> 00:23:34,610 Entón, nada aparecendo. 419 00:23:34,610 --> 00:23:38,750 Isto é debido a algo mal que escribín no código PHP. 420 00:23:38,750 --> 00:23:42,844 E eu mencionen a depuración é complicado porque en PHP, nós 421 00:23:42,844 --> 00:23:45,260 non recompila-lo de antemán eo compilador non era como, 422 00:23:45,260 --> 00:23:46,710 aquí é onde os seus erros son. 423 00:23:46,710 --> 00:23:49,690 >> Pero o que podemos facer é-- facer a xente se lembran 424 00:23:49,690 --> 00:23:57,010 como mirar para o diferente rede solicita que PHP-- ou que sitios 425 00:23:57,010 --> 00:23:57,620 enviar? 426 00:23:57,620 --> 00:24:00,290 [? Malin?] Fixo isto charla unha ou dúas veces. 427 00:24:00,290 --> 00:24:05,830 Vostede recorda onde atoparemos os débitos diferentes e 200 OKs, 428 00:24:05,830 --> 00:24:09,780 todos os códigos que son enviados mediante HTTP desde a páxina web a páxina web? 429 00:24:09,780 --> 00:24:12,514 Alguén se lembra onde imos facelo? 430 00:24:12,514 --> 00:24:13,787 >> Audiencia: Page Source. 431 00:24:13,787 --> 00:24:14,870 SAM LEVATICH: fonte de páxina. 432 00:24:14,870 --> 00:24:15,890 Exactamente. 433 00:24:15,890 --> 00:24:19,230 Se acceda a páxina Source-- perfecto. 434 00:24:19,230 --> 00:24:21,630 Entón Orixe Páxina tira para arriba o inspector. 435 00:24:21,630 --> 00:24:23,140 >> E eu estou usando o Safari. 436 00:24:23,140 --> 00:24:25,790 Unha morea de ti, probablemente, estar usando o Chrome ou Firefox. 437 00:24:25,790 --> 00:24:27,750 Pero mentres está en calquera browser-- moderna 438 00:24:27,750 --> 00:24:29,500 e Sinto-se libre para seguir xunto, se queres. 439 00:24:29,500 --> 00:24:32,560 Podes escribir ata este código ou basta ollar dentro do conxunto P 6 440 00:24:32,560 --> 00:24:35,820 directorio para algún material similar. 441 00:24:35,820 --> 00:24:41,020 hello.php é o que somos actualmente traballando emular. 442 00:24:41,020 --> 00:24:42,476 >> Polo tanto, hai unha variedade de guías. 443 00:24:42,476 --> 00:24:43,850 Podemos ollar para todos os recursos. 444 00:24:43,850 --> 00:24:45,810 Podemos ver o código fonte. 445 00:24:45,810 --> 00:24:49,900 Entón parece que non fixo obter corpo pasado ao final. 446 00:24:49,900 --> 00:24:54,890 El atopou un erro en PHP e deixou de cargar a páxina web enteira. 447 00:24:54,890 --> 00:24:58,320 Nós nin sequera ter un fin tag para HTML ou calquera cousa. 448 00:24:58,320 --> 00:25:07,189 >> E se miramos para a rede, podemos ver que estamos a ser enviado un pedido. 449 00:25:07,189 --> 00:25:07,980 Este é o dominio. 450 00:25:07,980 --> 00:25:09,270 Este é o enderezo. 451 00:25:09,270 --> 00:25:10,070 É un documento. 452 00:25:10,070 --> 00:25:14,310 Estamos a usar o método GET. 453 00:25:14,310 --> 00:25:15,760 >> E é vermello. 454 00:25:15,760 --> 00:25:19,030 Ou, estaba vermello cando non estaba seleccionando-o. 455 00:25:19,030 --> 00:25:22,680 ¿Como desmarcada-la? 456 00:25:22,680 --> 00:25:23,980 Ben, era vermello. 457 00:25:23,980 --> 00:25:25,201 Déixeme refrescar. 458 00:25:25,201 --> 00:25:25,700 Non é. 459 00:25:25,700 --> 00:25:26,640 Agora é vermello. 460 00:25:26,640 --> 00:25:30,530 >> Polo tanto, é vermello, o que significa el fallou, o que é malo. 461 00:25:30,530 --> 00:25:32,280 Entón, imos examinar por que o fixo falla. 462 00:25:32,280 --> 00:25:37,070 Entón, todo o que o código fonte da páxina pode basicamente, dicir que é o seu lugar 463 00:25:37,070 --> 00:25:38,720 non funcionou, o que xa podemos ver. 464 00:25:38,720 --> 00:25:42,100 Así, idealmente, non habería ser un instrumento máis útil. 465 00:25:42,100 --> 00:25:45,710 E hai algunhas extensións do navegador que permiten que depurar PHP 466 00:25:45,710 --> 00:25:50,490 pero nós non estamos indo a estar escribindo unha tonelada de PHP, 467 00:25:50,490 --> 00:25:53,190 polo que pode ser só o mellor a ollar a través do seu código 468 00:25:53,190 --> 00:25:56,760 con coidado e só asegurarse de que non está facendo outra cousa. 469 00:25:56,760 --> 00:26:03,876 >> Entón, imos ver se o formato deste if é onde está o problema. 470 00:26:03,876 --> 00:26:07,420 Quero cargar isto ata aquí de volta. 471 00:26:07,420 --> 00:26:09,830 Ola ola. 472 00:26:09,830 --> 00:26:11,350 Polo tanto, hai un problema alí. 473 00:26:11,350 --> 00:26:15,130 >> Así, para sintaxe correcta de PHP, PHP vai 474 00:26:15,130 --> 00:26:17,369 para ser C-like en que vai ver loops. 475 00:26:17,369 --> 00:26:18,410 Vai ver as declaracións. 476 00:26:18,410 --> 00:26:20,920 Vai ver todos eses amigos que familiarizarse 477 00:26:20,920 --> 00:26:24,820 con ao longo deste semestre CS50. 478 00:26:24,820 --> 00:26:29,960 Pero a mellor forma de descubrir como facer algo en PHP é buscar en Google 479 00:26:29,960 --> 00:26:33,170 ou mirar para algúns exemplos de código PHP porque sabe que a funcionalidade. 480 00:26:33,170 --> 00:26:35,080 >> Vostede sabe o que pode ver co programa. 481 00:26:35,080 --> 00:26:35,976 Pode facer un loop. 482 00:26:35,976 --> 00:26:37,600 Pode facer un loop cantas veces quixer. 483 00:26:37,600 --> 00:26:39,433 Pode facer un loop en todos tipo de formas diferentes. 484 00:26:39,433 --> 00:26:40,700 Pode crear funcións. 485 00:26:40,700 --> 00:26:43,241 Pode crear funcións que chamar outras funcións, funcións 486 00:26:43,241 --> 00:26:44,150 que chaman a si mesmos. 487 00:26:44,150 --> 00:26:45,733 E ten nomes para estes conceptos. 488 00:26:45,733 --> 00:26:49,860 Ten recursividade, lazos, se, outros fluxos de control. 489 00:26:49,860 --> 00:26:51,300 E por iso Google é o seu mellor amigo. 490 00:26:51,300 --> 00:26:53,540 Mesmo dicir, "PHP declaración "e alí vou 491 00:26:53,540 --> 00:26:57,740 ser toneladas de artigos con respostas a outras persoas 492 00:26:57,740 --> 00:27:02,090 que tiveron preguntas semellantes a ti, que están só comezando a fóra con PHP 493 00:27:02,090 --> 00:27:03,820 e está curioso sobre unha cousa sintaxe. 494 00:27:03,820 --> 00:27:08,480 >> Porque temos o luxo de ser capaz de ollar para o código en conxunto P 6, 495 00:27:08,480 --> 00:27:14,980 realmente puxa-lo para arriba e ver que OK, aquí está algo interesante. 496 00:27:14,980 --> 00:27:18,070 Entón, iso é o que realmente parecía en I axustou 6. 497 00:27:18,070 --> 00:27:20,340 Entón, se nós pasamos por iso, vemos que temos 498 00:27:20,340 --> 00:27:27,150 ten varios destes pouco Bits de punto de interrogación PHP-like. 499 00:27:27,150 --> 00:27:29,050 >> E non hai chaves. 500 00:27:29,050 --> 00:27:30,250 Hai dous puntos. 501 00:27:30,250 --> 00:27:32,340 E hai rizado cintas en PHP, pero iso 502 00:27:32,340 --> 00:27:38,700 é un formato e un xeito de fazê- PHP que funciona ben con HTML 503 00:27:38,700 --> 00:27:43,830 porque como vai ver, estamos pechando off estes PHP bits-- o elses 504 00:27:43,830 --> 00:27:49,770 eo IFS e todos que-- e despois estamos intercalando HTML dentro deles 505 00:27:49,770 --> 00:27:54,640 mentres aínda tras o fluxo de control establecido polo PHP. 506 00:27:54,640 --> 00:27:58,480 >> Entón, eu estou indo só para rápida camiña a través deste 507 00:27:58,480 --> 00:28:01,740 porque é unha morea de mesma conceptos que estabamos facendo antes. 508 00:28:01,740 --> 00:28:07,280 Temos se non é baleiro, parénteses, _GET_GET ["name"]. 509 00:28:07,280 --> 00:28:08,500 Isto é todo o mesmo. 510 00:28:08,500 --> 00:28:15,430 Estamos a usar o dicionario que _GET PHP envía solicitude de formas, 511 00:28:15,430 --> 00:28:20,720 porque son os parámetros de acción, eo método é comezar. 512 00:28:20,720 --> 00:28:22,110 E, a continuación, que remata que. 513 00:28:22,110 --> 00:28:27,420 O colon é un significante só para facelo a declaración se avalía a true. 514 00:28:27,420 --> 00:28:29,490 É como unha chaveta. 515 00:28:29,490 --> 00:28:33,320 E, de feito, é unha chaveta noutras linguaxes como Python, 516 00:28:33,320 --> 00:28:37,070 que pode atopar se só facelo no seu proxecto final. 517 00:28:37,070 --> 00:28:40,170 >> E entón esta liña, Ola. 518 00:28:40,170 --> 00:28:41,510 Entón temos esa cousa estraña. 519 00:28:41,510 --> 00:28:43,190 Temos máis soportes. 520 00:28:43,190 --> 00:28:46,140 Non hai ningunha HTTP há-- ou PHP, desculpe. 521 00:28:46,140 --> 00:28:47,250 Pero hai un sinal de igual. 522 00:28:47,250 --> 00:28:50,625 E entón temos unha función, htmlspecialchars (_GEThtmlspecialchars (_GET ["nome"]). 523 00:28:50,625 --> 00:28:54,440 524 00:28:54,440 --> 00:28:58,040 Isto é como unha especie de máis versión avanzada do eco. 525 00:28:58,040 --> 00:29:01,450 Como se tivésemos ecoar como unha forma para imprimir as cousas en PHP. 526 00:29:01,450 --> 00:29:03,890 Esta é unha función que é definido que o PHP 527 00:29:03,890 --> 00:29:08,160 enfrontará un pouco máis desagradable personaxes e valores de bytes 528 00:29:08,160 --> 00:29:09,540 que podería pasalo. 529 00:29:09,540 --> 00:29:11,070 É sempre máis seguro para usar isto. 530 00:29:11,070 --> 00:29:14,930 Pero echo ha facer o traballo moi ben se non somos 531 00:29:14,930 --> 00:29:17,620 xestionar calquera cousa moi desagradable. 532 00:29:17,620 --> 00:29:20,340 >> E así, este ten o mesmo efecto basicamente 533 00:29:20,340 --> 00:29:26,360 este material entre o tema marcas é valorado polo PHP. 534 00:29:26,360 --> 00:29:34,490 htmlspecialchars retorna un HTML agradable valor impreso de _GET_GET ["nome"], é dicir, 535 00:29:34,490 --> 00:29:36,010 todo o que escribiu no formulario. 536 00:29:36,010 --> 00:29:40,025 E entón el vai dicir Hola, espazo coma, e despois diso. 537 00:29:40,025 --> 00:29:42,910 Esa cousa toda entre os corchetes 538 00:29:42,910 --> 00:29:47,390 será substituído por calquera que sexa htmlspecialchars pon para fóra. 539 00:29:47,390 --> 00:29:49,390 Entón, iso é basicamente semellante para o que estamos facendo. 540 00:29:49,390 --> 00:29:54,760 E nós temos unha declaración de outra cousa que é Ola mundo, o que ten sentido. 541 00:29:54,760 --> 00:29:58,070 Entón agora imos voltar para o noso código e ver exactly-- oh. 542 00:29:58,070 --> 00:30:02,200 Dixo existe, que non está unha cousa que queriamos facer. 543 00:30:02,200 --> 00:30:05,370 Queriamos dicir non baleiro. 544 00:30:05,370 --> 00:30:10,020 >> E polo que debe traballar un pouco pouco mellor, non _GET_GET baleiro ["name"]. 545 00:30:10,020 --> 00:30:12,710 E iso chaveta xogos que chaveta. 546 00:30:12,710 --> 00:30:15,210 Temos as nosas chaves aquí. 547 00:30:15,210 --> 00:30:17,790 echo Ola _GET ["name"]. 548 00:30:17,790 --> 00:30:19,912 A ver se funciona un pouco mellor. 549 00:30:19,912 --> 00:30:21,350 Aínda estamos executando noso servidor. 550 00:30:21,350 --> 00:30:23,910 Ola Jason. 551 00:30:23,910 --> 00:30:24,780 Ola Jason. 552 00:30:24,780 --> 00:30:25,810 E funcionou esta vez. 553 00:30:25,810 --> 00:30:29,860 E entón iso é unha proba que pode, en efecto, 554 00:30:29,860 --> 00:30:35,180 utilizar as claves que coñecer e amar en código PHP HTML. 555 00:30:35,180 --> 00:30:41,100 O código para PHP proporcionada vostede en pset 6-- pset 6-- 556 00:30:41,100 --> 00:30:44,760 ofrece outro tipo de facendo o mesmo. 557 00:30:44,760 --> 00:30:49,220 >> Polo tanto, agora temos o poder. 558 00:30:49,220 --> 00:30:55,740 Temos a funcionalidade para aplicar o código PHP que vimos no pset 6 559 00:30:55,740 --> 00:30:57,390 por nós mesmos, basicamente. 560 00:30:57,390 --> 00:31:01,350 Antes de seguir adiante, o que son algúns dos preguntas que ten neste momento? 561 00:31:01,350 --> 00:31:02,066 Si [inaudível]. 562 00:31:02,066 --> 00:31:06,512 >> Audiencia: Entón, na súa versión en pset6, cando executalo, hai un espazo. 563 00:31:06,512 --> 00:31:09,330 E podo ver onde o espazo é despois da coma. [Inaudível] de inicio 564 00:31:09,330 --> 00:31:10,700 o soporte aberto. 565 00:31:10,700 --> 00:31:15,420 Como incorporar o espazo en do xeito que escribiu os seus propios códigos? 566 00:31:15,420 --> 00:31:17,910 >> COLUMNA: Esta é unha boa pregunta. 567 00:31:17,910 --> 00:31:21,650 E entón imos descubrir iso. 568 00:31:21,650 --> 00:31:24,450 Entón esta é unha pregunta moi boa e un que non considerou. 569 00:31:24,450 --> 00:31:25,950 Pero imos facelo xuntos. 570 00:31:25,950 --> 00:31:30,280 >> Entón, primeiro de todo, o que Estou facendo eco 571 00:31:30,280 --> 00:31:33,690 é cando nós só ecoam Ola, Ola xera. 572 00:31:33,690 --> 00:31:41,310 Se nós eco agora este entrar nun separado liña, imos examinar o que pasa. 573 00:31:41,310 --> 00:31:43,740 Polo tanto, prema isto. 574 00:31:43,740 --> 00:31:45,220 Nós mantemo-nos dicir, oi Jason. 575 00:31:45,220 --> 00:31:48,690 Entón, de novo, non temos ese espazo. 576 00:31:48,690 --> 00:31:53,090 >> E iso porque, en PHP, cando temos eco, 577 00:31:53,090 --> 00:31:55,820 non importa cantas spaces-- nope, non o V-- 578 00:31:55,820 --> 00:32:01,770 non importa cantos espazos que poñemos no aqui-- agora que cargar de novo, 579 00:32:01,770 --> 00:32:03,010 ola Jason. 580 00:32:03,010 --> 00:32:05,770 Si, mira, todos aqueles espazos fun comido up. 581 00:32:05,770 --> 00:32:08,020 E iso é algo que a función de eco fai. 582 00:32:08,020 --> 00:32:11,110 >> Entón, para coidar ese espazo, e esta é 583 00:32:11,110 --> 00:32:14,960 unha das razóns por que non use echo 584 00:32:14,960 --> 00:32:18,200 e usa htmlspecialchars vez. 585 00:32:18,200 --> 00:32:22,140 Estou curioso para saber o que sería acontecería se fixésemos iso 586 00:32:22,140 --> 00:32:26,700 onde un espazo pechado nunha cadea. 587 00:32:26,700 --> 00:32:29,720 Eu honestamente non sei que ocorrerá cando fago iso. 588 00:32:29,720 --> 00:32:30,790 >> Entón este é un camiño. 589 00:32:30,790 --> 00:32:32,210 Esa é unha forma de coidar dela. 590 00:32:32,210 --> 00:32:34,840 Se enrolar o espazo en unha cadea, entón o espazo 591 00:32:34,840 --> 00:32:36,920 será a saída así por eco. 592 00:32:36,920 --> 00:32:41,930 O máis seguro que facer é facer htmlspecialchars. 593 00:32:41,930 --> 00:32:43,800 Iso é sempre a aposta segura. 594 00:32:43,800 --> 00:32:47,050 Pero agora temos unha forma de facer con eco, no seu caso. 595 00:32:47,050 --> 00:32:50,700 E dun xeito semellante, podemos echo novas liñas, todo tipo 596 00:32:50,700 --> 00:32:53,550 de cousas que está familiarizado facendo en PHP. 597 00:32:53,550 --> 00:32:57,460 >> Calquera outra persoa, o que é máis preguntas que outras persoas teñen 598 00:32:57,460 --> 00:33:01,090 Actualmente sobre PHP? 599 00:33:01,090 --> 00:33:04,620 Se a xente mostrouse un pouco tarde, Estou feliz para estar despois de un pouco 600 00:33:04,620 --> 00:33:06,420 e falar sobre algunhas das o principio. 601 00:33:06,420 --> 00:33:10,380 E tamén está todo emitida en directo, e arquivados, o que é unha tolemia. 602 00:33:10,380 --> 00:33:13,960 >> En calquera caso, entón agora imos facer algunha cousas máis avanzadas con PHP. 603 00:33:13,960 --> 00:33:18,790 E unha das cousas máis adiantadas vostede aparecen no C foi para loops. 604 00:33:18,790 --> 00:33:24,060 E PHP ten un máis poderoso para circuíto chamado loop foreach. 605 00:33:24,060 --> 00:33:37,940 E parece que isto-- para cada baleiro como en branco, chaves, facer as cousas. 606 00:33:37,940 --> 00:33:41,500 Polo tanto, este é basicamente un acceso directo. 607 00:33:41,500 --> 00:33:45,380 >> Mira, o loop for como un construción sintáctica 608 00:33:45,380 --> 00:33:50,590 foi creado en C e en conxunto linguaxe e cousas así. 609 00:33:50,590 --> 00:33:56,300 Idealizado en C, precisamente, como unha abreviación para unha morea de tipos de loops 610 00:33:56,300 --> 00:33:57,750 que a xente ían ver. 611 00:33:57,750 --> 00:34:01,230 Como cando escribiu un loop, non era moitas veces un paso de inicio 612 00:34:01,230 --> 00:34:04,700 executado ao comezo, un condición na que o loop sería stop-- 613 00:34:04,700 --> 00:34:07,030 e esa é a característica isto é só un loop while, 614 00:34:07,030 --> 00:34:10,040 ou un tempo que ten exactamente só que feature-- e, a continuación, 615 00:34:10,040 --> 00:34:12,320 un paso incrementação no fin. 616 00:34:12,320 --> 00:34:16,489 E así que adoita atopar-se escribir código como o seguinte. 617 00:34:16,489 --> 00:34:19,780 Eu estou indo a borrar un pouco iso. 618 00:34:19,780 --> 00:34:23,850 >> Pero se estamos interactuar a través caracteres nunha matriz, 619 00:34:23,850 --> 00:34:26,960 por exemplo, como temos teño unha matriz de caracteres. 620 00:34:26,960 --> 00:34:29,400 Sentímolo para traer de volta C. Sei, penso que estaba feito. 621 00:34:29,400 --> 00:34:31,900 Pero é só para o fin de aprender PHP, eu prometer. 622 00:34:31,900 --> 00:34:38,880 Entón, se ten un str de char de lonxitude 8, e imos 623 00:34:38,880 --> 00:34:46,760 din que se Hellooo cun nulo da dereita. 624 00:34:46,760 --> 00:34:48,270 Gran, entón esta é a nosa secuencia. 625 00:34:48,270 --> 00:34:51,469 >> E, despois, tivo un loop. 626 00:34:51,469 --> 00:34:53,730 Temos int i é igual a 0. 627 00:34:53,730 --> 00:34:57,960 628 00:34:57,960 --> 00:35:09,110 E queremos saír cando str i non é igual igual a nulo, 629 00:35:09,110 --> 00:35:11,590 porque saír cando é igual a null. 630 00:35:11,590 --> 00:35:19,170 E entón o que facemos en cada i ++ punto no loop for. 631 00:35:19,170 --> 00:35:30,480 Facer algo con str i. 632 00:35:30,480 --> 00:35:34,950 >> Así, a fórmula de base foi, tivemos esa matriz que 633 00:35:34,950 --> 00:35:37,910 quería tratar como elementos separados. 634 00:35:37,910 --> 00:35:45,170 Pero o que tiñamos que facer é que tivemos que basicamente crear un enteiro separado 635 00:35:45,170 --> 00:35:50,530 variable que estaba contando a ser cada xa que fomos a través do lazo. 636 00:35:50,530 --> 00:35:55,240 E entón teriamos que entón chamar strstr [i] cando o que realmente quería facer 637 00:35:55,240 --> 00:35:57,280 é só ir personaxe polo carácter, non? 638 00:35:57,280 --> 00:36:00,185 Non queremos para incrementar un enteiro e, a continuación, usar este enteiro 639 00:36:00,185 --> 00:36:02,780 para acceder cada personaxe individualmente. 640 00:36:02,780 --> 00:36:04,410 Nós realmente queremos carácter por carácter. 641 00:36:04,410 --> 00:36:08,600 >> E así, para cada forma intelixente calcula que para nós. 642 00:36:08,600 --> 00:36:11,875 Se temos unha matriz, que podemos declarar en PHP 643 00:36:11,875 --> 00:36:15,900 apenas-- como se nós temos unha variable chamado, imos chamalo de matriz. 644 00:36:15,900 --> 00:36:19,840 Os milagres de ningunha entrada, é así como calquera outra variable. 645 00:36:19,840 --> 00:36:20,730 É só unha matriz. 646 00:36:20,730 --> 00:36:26,890 E nós temos un pouco [inaudível] como 1, 2, 3, só unha especie de matriz inicializar. 647 00:36:26,890 --> 00:36:29,680 É OK, non gusta do meu foreach. 648 00:36:29,680 --> 00:36:33,120 >> Pero se realmente foreach-- Eu escriba que algo malo. 649 00:36:33,120 --> 00:36:34,840 Hai dous xeitos de facer un loop foreach. 650 00:36:34,840 --> 00:36:37,400 Hai a sintaxe eo como sintaxe. 651 00:36:37,400 --> 00:36:40,580 E nós imos facer sintaxe en primeiro lugar, non como. 652 00:36:40,580 --> 00:36:41,780 Ese é o meu erro. 653 00:36:41,780 --> 00:36:53,785 >> Entón, nun foreach en array, eco nun. 654 00:36:53,785 --> 00:36:56,970 655 00:36:56,970 --> 00:36:59,500 E PHP está berrando con me por algún motivo. 656 00:36:59,500 --> 00:37:03,520 É atopar un inesperado en en algo, 657 00:37:03,520 --> 00:37:05,820 que é un pouco de un problema. 658 00:37:05,820 --> 00:37:09,105 Pero imos descubrir por que isto ocorre nun momento. 659 00:37:09,105 --> 00:37:11,960 660 00:37:11,960 --> 00:37:13,610 Entón, non me gusta diso. 661 00:37:13,610 --> 00:37:15,040 Imos tentar usar o como. 662 00:37:15,040 --> 00:37:17,310 El prefire a sintaxe é como parece. 663 00:37:17,310 --> 00:37:22,550 Entón imos facer matriz foreach como nun. 664 00:37:22,550 --> 00:37:24,520 >> Así, unha pequena explicación do que pasou 665 00:37:24,520 --> 00:37:30,670 é a sintaxe é como dizendo-- ben en primeiro lugar, imos ollar para o que se trata impresa. 666 00:37:30,670 --> 00:37:32,260 Entón abrimos noso IDE. 667 00:37:32,260 --> 00:37:33,110 Imos aquí. 668 00:37:33,110 --> 00:37:35,845 Nós dicimos: Ola Jason. 669 00:37:35,845 --> 00:37:41,390 E fixo 123, que foron os contidos da matriz que creamos enriba. 670 00:37:41,390 --> 00:37:45,500 >> Entón mergullo neste loop foreach, temos unha matriz variable chamada 671 00:37:45,500 --> 00:37:47,470 o cal é unha disposición de tres números. 672 00:37:47,470 --> 00:37:52,120 E entón nós estamos facendo foreach array como nun, eco nun. 673 00:37:52,120 --> 00:37:54,990 E iso é máis intuitivo que un para lop. 674 00:37:54,990 --> 00:38:02,380 Estamos dicindo, o tratamento de cada un dos as cousas na matriz como NUN, 675 00:38:02,380 --> 00:38:05,180 Quero que me dea un. 676 00:38:05,180 --> 00:38:06,640 E iso é o que está facendo. 677 00:38:06,640 --> 00:38:12,000 >> PHP é o cálculo que cando di matriz foreach, 678 00:38:12,000 --> 00:38:16,080 e está lidando con unha matriz, o que vai querer repetir 679 00:38:16,080 --> 00:38:19,950 son os personaxes desa matriz, é o ints desa matriz, 680 00:38:19,950 --> 00:38:21,920 son os elementos desta matriz. 681 00:38:21,920 --> 00:38:26,110 E iso está permitindo que almacenar estas variables como, nun 682 00:38:26,110 --> 00:38:29,360 e nun continuación, pode saída inmediatamente en vez de dicir, 683 00:38:29,360 --> 00:38:34,090 Eu teño unha variable chamada i, e entón eu quero saída strstr [i]. 684 00:38:34,090 --> 00:38:39,130 >> E así que nos permite facer cousas legais. 685 00:38:39,130 --> 00:38:43,330 Como basicamente non temos para crear estas variables como i do e facer todo 686 00:38:43,330 --> 00:38:45,090 este material incrementação no fin. 687 00:38:45,090 --> 00:38:48,290 PHP coida de todo isto para ti. 688 00:38:48,290 --> 00:38:54,470 >> Entón agora imos falar sobre como foreach el se aplica ao noso dicionario _GET. 689 00:38:54,470 --> 00:38:57,170 Entón, imos comentar iso rapidamente. 690 00:38:57,170 --> 00:39:02,030 Polo tanto, temos a nosa matriz _GET. 691 00:39:02,030 --> 00:39:04,361 Temos esa variable. 692 00:39:04,361 --> 00:39:05,610 E ten algunhas cousas nel. 693 00:39:05,610 --> 00:39:10,275 >> Agora, só temos unha variable sendo pasado para el, que é nome. 694 00:39:10,275 --> 00:39:13,420 Pero se prema Intro, agora podemos ter dúas variables. 695 00:39:13,420 --> 00:39:17,910 Podemos ter nome e idade, por exemplo, se queremos chegar a idade e tamén 696 00:39:17,910 --> 00:39:20,960 o nome dunha persoa, curiosamente. 697 00:39:20,960 --> 00:39:25,690 >> Entón agora _GET será un dicionario con dous elementos, 698 00:39:25,690 --> 00:39:27,980 con dous pares de valores clave. 699 00:39:27,980 --> 00:39:33,490 E a primeira key-- vou escribir ata un regalo na tarxeta tamén. 700 00:39:33,490 --> 00:39:37,136 Temos o noso dicionario é _GET. 701 00:39:37,136 --> 00:39:39,520 Sentímolo, é un pouco difícil de ver. 702 00:39:39,520 --> 00:39:46,690 Pero dentro do noso dicionario temos nome, que será algo 703 00:39:46,690 --> 00:39:47,680 que nos é dada. 704 00:39:47,680 --> 00:39:53,040 E nós imos ter idade, que é tamén vai ser algo que nos é dada. 705 00:39:53,040 --> 00:39:56,020 E esta é a totalidade do noso dicionario. 706 00:39:56,020 --> 00:39:57,730 >> Entón, ten dous elementos na mesma. 707 00:39:57,730 --> 00:40:01,310 E iso porque foreach lazos son intelixentes, nós 708 00:40:01,310 --> 00:40:04,900 podería pensar, e correctamente podería pensar que foreach 709 00:40:04,900 --> 00:40:08,080 posible percorrer este dicionario, imprimindo 710 00:40:08,080 --> 00:40:10,850 os valores dada polo nome e idade. 711 00:40:10,850 --> 00:40:14,510 >> Entón imos realmente facer exactamente isto. 712 00:40:14,510 --> 00:40:17,520 Imos construír un loop foreach. 713 00:40:17,520 --> 00:40:23,351 E nós imos facer para _GET como. 714 00:40:23,351 --> 00:40:24,850 E nós imos facer o seguinte. 715 00:40:24,850 --> 00:40:34,186 Entón imos ver que pasa si digitamos só palabra, e despois dicir palabra eco. 716 00:40:34,186 --> 00:40:40,540 Tamén imos a ecoar unha nova liña só para facelo un pouco máis claro, 717 00:40:40,540 --> 00:40:41,260 Qué está a pasar. 718 00:40:41,260 --> 00:40:42,890 >> Entón imos ver. 719 00:40:42,890 --> 00:40:44,390 Non está me dando algún erro. 720 00:40:44,390 --> 00:40:46,810 E nós imos pechar esta. 721 00:40:46,810 --> 00:40:51,020 No noso sitio web, vai estar facendo unha morea de que, ao longo da pset7. 722 00:40:51,020 --> 00:40:53,890 Así, dicimos meu nome é Sam. 723 00:40:53,890 --> 00:40:58,560 Miña idade é 45. 724 00:40:58,560 --> 00:41:01,060 Non é. 725 00:41:01,060 --> 00:41:05,640 Pero imprime, como se esperaba, Sam 45. 726 00:41:05,640 --> 00:41:08,930 >> E así vai entender que o loop foreach fez-- aquí, 727 00:41:08,930 --> 00:41:12,360 imos volver ao que polo que é ata no board-- chegamos _GET como palabra. 728 00:41:12,360 --> 00:41:15,130 E había catro cousas en _GET. 729 00:41:15,130 --> 00:41:17,410 Pero el só impresos dúas cousas. 730 00:41:17,410 --> 00:41:21,290 foreach, sendo o seu auto intelixencia, asumiu que o que realmente queriamos 731 00:41:21,290 --> 00:41:24,100 foi valores, non as chaves. 732 00:41:24,100 --> 00:41:27,800 >> Pero hai un xeito que poderiamos imprimir as chaves, así como, se quixésemos. 733 00:41:27,800 --> 00:41:30,810 Se quixésemos ver o que tamén estas variables foron chamados, 734 00:41:30,810 --> 00:41:33,540 hai un xeito que pode acceder a esta ben. 735 00:41:33,540 --> 00:41:36,840 E o xeito de clasificar de facelo, polo que podemos dicir, imos realmente 736 00:41:36,840 --> 00:41:39,485 dividídelo en pares de valores clave. 737 00:41:39,485 --> 00:41:42,370 738 00:41:42,370 --> 00:41:47,580 Entón imos ver que pasa agora. 739 00:41:47,580 --> 00:41:50,550 >> Polo tanto, temos a clave. 740 00:41:50,550 --> 00:41:52,290 Temos valor. 741 00:41:52,290 --> 00:41:56,650 Temos outro novo liña para facilitar a lectura. 742 00:41:56,650 --> 00:42:00,540 E imos ver que pasa cando facemos iso agora. 743 00:42:00,540 --> 00:42:04,950 744 00:42:04,950 --> 00:42:06,720 Non sei cantos anos é Jason. 745 00:42:06,720 --> 00:42:09,180 Jason de 15. 746 00:42:09,180 --> 00:42:11,650 Polo tanto, temos nome Jason, de 15 anos. 747 00:42:11,650 --> 00:42:15,830 Entón, nós fomos capaces de acceder a clave e pares de valores deste dicionario 748 00:42:15,830 --> 00:42:18,590 só dicindo como puntos clave para o valor. 749 00:42:18,590 --> 00:42:23,350 E iso é unha sintáctica foreach pouco azucre que permite 750 00:42:23,350 --> 00:42:25,960 acceda as cousas no dicionario. 751 00:42:25,960 --> 00:42:31,190 >> Polo tanto, esperamos que este tipo de enfatiza a potencia do loop foreach. 752 00:42:31,190 --> 00:42:35,690 Pode moi ben xogar calquera cousa que parece iterable, 753 00:42:35,690 --> 00:42:38,922 como calquera cousa que teña múltiple elementos como un array, 754 00:42:38,922 --> 00:42:41,880 como un dictionary-- estes son dous principais cousas que estará traballando con 755 00:42:41,880 --> 00:42:45,630 tanto na vida e na pset 7. 756 00:42:45,630 --> 00:42:49,350 Entón podes xogar este material para el, e só pode descubrir 757 00:42:49,350 --> 00:42:51,030 o que quere facer con el. 758 00:42:51,030 --> 00:42:54,250 Só pode dicir: OK, eu vou ir estas cousas aos datos que 759 00:42:54,250 --> 00:42:55,680 foi pasado para min. 760 00:42:55,680 --> 00:43:02,470 E iso é algo que é vai estar usando unha morea de en pset 7. 761 00:43:02,470 --> 00:43:08,550 >> Eu estou indo a desprazamento rápido abaixo só para ver onde estou. 762 00:43:08,550 --> 00:43:11,410 763 00:43:11,410 --> 00:43:13,070 A xente ten preguntas neste punto? 764 00:43:13,070 --> 00:43:13,778 Preguntas en todo? 765 00:43:13,778 --> 00:43:14,400 Si? 766 00:43:14,400 --> 00:43:18,320 >> Audiencia: Entón, coa chave e valor, podería nomealo de calquera outra cousa 767 00:43:18,320 --> 00:43:20,507 e continuaría a traballar? 768 00:43:20,507 --> 00:43:21,090 COLUMNA: Oops. 769 00:43:21,090 --> 00:43:22,820 Guau, eu apaguei totalmente toda a liña. 770 00:43:22,820 --> 00:43:23,380 Great work. 771 00:43:23,380 --> 00:43:26,502 Entón, a a. 772 00:43:26,502 --> 00:43:30,109 Chave e valor é só unha convención. 773 00:43:30,109 --> 00:43:30,650 É útil. 774 00:43:30,650 --> 00:43:34,010 Podería obter un proxecto puntos, pode que algúns puntos de estilo 775 00:43:34,010 --> 00:43:36,970 para facelo, porque realmente transmite a intención. 776 00:43:36,970 --> 00:43:39,650 Pero nós dicimos unha Yarp. 777 00:43:39,650 --> 00:43:42,476 >> Audiencia: Non ten que cambiar nada no ficheiro HTML 778 00:43:42,476 --> 00:43:43,607 a fin de reflectir iso? 779 00:43:43,607 --> 00:43:44,440 COLUMNA: Nin un pouco. 780 00:43:44,440 --> 00:43:47,260 Audiencia: E só sabe que por mor da iguala maior than-- 781 00:43:47,260 --> 00:43:47,801 COLUMNA: Si. 782 00:43:47,801 --> 00:43:49,489 Audiencia: indicador --que que that's-- 783 00:43:49,489 --> 00:43:50,030 COLUMNA: Si. 784 00:43:50,030 --> 00:43:52,260 Isto é unha sintaxe foreach pero si. 785 00:43:52,260 --> 00:43:53,720 >> Audiencia: Non hai tipos. 786 00:43:53,720 --> 00:43:57,230 Así que se quería idade para ser só un número? 787 00:43:57,230 --> 00:43:59,510 Existe unha forma de facelo? 788 00:43:59,510 --> 00:44:04,550 >> COLUMNA: Existen formas de comprobar que variables obedecer a determinados tipos. 789 00:44:04,550 --> 00:44:08,482 Entón PHP pide un pouco máis de vostede porque non hai tipos en. 790 00:44:08,482 --> 00:44:09,440 Algunhas formas pide menos. 791 00:44:09,440 --> 00:44:11,070 En certo xeito pide máis. 792 00:44:11,070 --> 00:44:13,320 Porque se ten só algo nunha variable, 793 00:44:13,320 --> 00:44:14,960 non ten idea de que tipo é. 794 00:44:14,960 --> 00:44:19,310 Pero se vostede é intelixente sobre as variables que atribúe tipos de e para asegurarse de 795 00:44:19,310 --> 00:44:22,750 que funciona soamente return-- vostede quere funcións para volver só 796 00:44:22,750 --> 00:44:26,210 un tipo de valor para que pode basicamente 797 00:44:26,210 --> 00:44:31,090 espera que a variable que volver a partir dunha función será do tipo 798 00:44:31,090 --> 00:44:32,780 Que pensas que vai ser, basicamente. 799 00:44:32,780 --> 00:44:36,550 >> Pero hai algúns métodos polo que se pode comprobar. 800 00:44:36,550 --> 00:44:39,801 Eu non me lembro a eles fóra do cumio da miña cabeza. 801 00:44:39,801 --> 00:44:43,300 Estou esperando por el para estar azul. 802 00:44:43,300 --> 00:44:45,560 isint? 803 00:44:45,560 --> 00:44:48,070 isstr? 804 00:44:48,070 --> 00:44:52,000 Existen métodos construído en PHP que pode 805 00:44:52,000 --> 00:44:54,440 comprobar o tipo de variables para ti. 806 00:44:54,440 --> 00:44:58,250 Pero se asignar variables intelixentemente, non debe 807 00:44:58,250 --> 00:45:01,330 ten que facelo moi en pset 7. 808 00:45:01,330 --> 00:45:02,780 Pero hai aqueles métodos. 809 00:45:02,780 --> 00:45:06,704 E iso é algo que está na propia linguaxe. 810 00:45:06,704 --> 00:45:08,370 E eu non me lembro a sintaxe necesitas. 811 00:45:08,370 --> 00:45:09,930 Poderiamos incluso procuralo. 812 00:45:09,930 --> 00:45:11,974 Pero o tempo é de esencia. 813 00:45:11,974 --> 00:45:13,890 Alguén máis ten ten máis algunha dúbida? 814 00:45:13,890 --> 00:45:14,660 Si. 815 00:45:14,660 --> 00:45:15,951 >> Audiencia: Teño só unha. 816 00:45:15,951 --> 00:45:19,050 Entón mencionar o método GET, pero non mencionar o método POST. 817 00:45:19,050 --> 00:45:20,500 Será que estamos volvendo para iso? 818 00:45:20,500 --> 00:45:21,540 >> COLUMNA: Si, nós imos volver a iso. 819 00:45:21,540 --> 00:45:24,840 Isto é o que eu estaba a buscar para o meu teléfono, que agora quedou durmido, 820 00:45:24,840 --> 00:45:26,960 pero eu vou atopalo. 821 00:45:26,960 --> 00:45:30,680 Só ten que ter seguro que se loita todas as notas PHP. 822 00:45:30,680 --> 00:45:35,640 Si, non hai ningunha versión de depuración. 823 00:45:35,640 --> 00:45:41,940 Si, temos máis algunhas cousas que queremos facer agora, neste momento. 824 00:45:41,940 --> 00:45:45,980 >> Entón, falando POST, que mencionar, 825 00:45:45,980 --> 00:45:49,630 a única diferenza entre GET e POST é 826 00:45:49,630 --> 00:45:53,150 lembre que cando miramos neste URL e vimos, oh, 827 00:45:53,150 --> 00:45:58,270 é igual a un nome e idade igual Yarp está ben no URL alí para nós. 828 00:45:58,270 --> 00:46:03,300 POST é un pouco máis reservado coa súa pasaxe de información. 829 00:46:03,300 --> 00:46:08,090 >> Polo tanto, se non quere que un usuario a saber, por exemplo, 830 00:46:08,090 --> 00:46:11,160 non quería que o nome de usuario eo contrasinal da persoa 831 00:46:11,160 --> 00:46:15,080 Actualmente sesión para ser exhibido en a URL, que é unha cousa razoable 832 00:46:15,080 --> 00:46:17,770 non querer na URL, porque alguén pode velo. 833 00:46:17,770 --> 00:46:21,520 Conectarse a alguén a unha páxina, non queren que a súa URL grudado alí, 834 00:46:21,520 --> 00:46:27,850 porque iso ía permitir que a xente para acceder só co pegar dunha URL en vez 835 00:46:27,850 --> 00:46:29,670 realmente cubrir un formulario. 836 00:46:29,670 --> 00:46:31,710 POST é un pouco máis reservado. 837 00:46:31,710 --> 00:46:34,150 >> E as únicas cousas que nós imos ter que cambiar 838 00:46:34,150 --> 00:46:38,550 son a rede, o cambio de obter para enviar mensaxes. 839 00:46:38,550 --> 00:46:42,367 E, a continuación, no interior do HTTP, no canto de acceder ao _GET matriz, 840 00:46:42,367 --> 00:46:43,950 nós estamos indo a acceder ao _POST array. 841 00:46:43,950 --> 00:46:48,600 >> E nós imos entender que, se abrimos este novo de novo, 842 00:46:48,600 --> 00:46:51,910 Jason declina lentamente na idade. 843 00:46:51,910 --> 00:46:53,230 nome Jason, de 14 anos. 844 00:46:53,230 --> 00:46:54,280 O mesmo aparece. 845 00:46:54,280 --> 00:46:57,190 Pero imos ao URL e estas variables non están alí. 846 00:46:57,190 --> 00:47:00,540 >> E a forma que POST passes-- polo que Lembre 847 00:47:00,540 --> 00:47:02,750 como mirar para a fonte dunha páxina. 848 00:47:02,750 --> 00:47:04,570 Nós imos para a rede. 849 00:47:04,570 --> 00:47:06,920 Nós actualizar. 850 00:47:06,920 --> 00:47:10,690 E iso é algo que POST lle vai dar avisos sobre. 851 00:47:10,690 --> 00:47:15,050 Pode ver unha caixa, un texto caixa como esta no seu navegador. 852 00:47:15,050 --> 00:47:18,170 Está seguro de que quere para enviar un formulario de novo? 853 00:47:18,170 --> 00:47:21,170 POST é o que está enviando estas formas. 854 00:47:21,170 --> 00:47:24,680 >> Porque, basicamente, se enviou o seu información tarxeta de crédito para alguén, 855 00:47:24,680 --> 00:47:26,350 que non vai aparecer na URL. 856 00:47:26,350 --> 00:47:28,180 Isto vai ser unha proposta POST. 857 00:47:28,180 --> 00:47:32,905 Entón, cando actualizar a páxina, é reenviar esta proposta post. 858 00:47:32,905 --> 00:47:35,530 Entón, agora queremos enviar o formar de novo, porque non vai 859 00:47:35,530 --> 00:47:37,340 para crear as compras duplicadas. 860 00:47:37,340 --> 00:47:41,160 >> E nós imos entender que aquí abaixo, o método que estamos usando é POST. 861 00:47:41,160 --> 00:47:43,065 E, de feito, descargar bytes. 862 00:47:43,065 --> 00:47:45,460 Trasladou 401 deles. 863 00:47:45,460 --> 00:47:47,190 Programa de fermosos pequenos. 864 00:47:47,190 --> 00:47:51,600 Pero non hai ningún lugar que vemos os valores que se están pasados. 865 00:47:51,600 --> 00:47:59,540 As páxinas web poden ver a si mesmos, pero nós, como usuarios non son capaces de ver, 866 00:47:59,540 --> 00:48:01,650 a menos que vostede é un hacker. 867 00:48:01,650 --> 00:48:05,340 Se vostede é un hacker bo, pode ollar. 868 00:48:05,340 --> 00:48:09,360 >> Se sabe o básico formato HTML, 869 00:48:09,360 --> 00:48:11,790 os valores fará a coñecer nas páxinas. 870 00:48:11,790 --> 00:48:13,160 Vai ser capaz de ver. 871 00:48:13,160 --> 00:48:16,720 Os valores van estar alí, son só un pouco menos evidente para ti 872 00:48:16,720 --> 00:48:19,522 de acceso, basicamente. 873 00:48:19,522 --> 00:48:23,620 >> Temos máis preguntas sobre Get, POST 874 00:48:23,620 --> 00:48:26,800 antes-- o que imos facer a continuación é realmente ollar para un código 875 00:48:26,800 --> 00:48:30,837 que está dando en pset 7, falar como usa algúns destes conceptos, 876 00:48:30,837 --> 00:48:32,670 e falar do as cousas que está indo 877 00:48:32,670 --> 00:48:35,090 ter que facer un pouco no pset 7. 878 00:48:35,090 --> 00:48:36,760 Máis preguntas antes diso? 879 00:48:36,760 --> 00:48:38,047 Máis preguntas que vostedes teñen? 880 00:48:38,047 --> 00:48:41,250 881 00:48:41,250 --> 00:48:41,840 Gran. 882 00:48:41,840 --> 00:48:45,370 >> Todo ben, imos ollar un pouco de pset 7, 883 00:48:45,370 --> 00:48:49,530 sen dúbida que é todo máis animado. 884 00:48:49,530 --> 00:48:52,126 885 00:48:52,126 --> 00:48:54,750 Quero dicir, iso é algo que David pasa por un pouco. 886 00:48:54,750 --> 00:49:00,890 Pero teremos tres directorios no parte superior, así como un ficheiro de configuración. 887 00:49:00,890 --> 00:49:04,650 Isto é para bases de datos, o que nós imos falar en preto de cinco minutos. 888 00:49:04,650 --> 00:49:07,220 Inclúe, nunca ten buscar neste directorio 889 00:49:07,220 --> 00:49:12,480 se non quere, pero é bo para sei que hai todo tipo de axudantes. 890 00:49:12,480 --> 00:49:14,210 Helpers é como funcións votos. 891 00:49:14,210 --> 00:49:18,120 E entón temos de configuración, que define algunhas cousas. 892 00:49:18,120 --> 00:49:24,590 >> Existen algunhas funcións que ten CS50 escrito que están en auxiliar e de configuración. 893 00:49:24,590 --> 00:49:27,250 E algúns dos que PHP xa sae en arquivos 894 00:49:27,250 --> 00:49:30,880 vai facer unha chea de máis sorte traballo de perna de obtuso para ti. 895 00:49:30,880 --> 00:49:35,250 Como se entramos en público login.php, que é o que 896 00:49:35,250 --> 00:49:38,350 móstrase á dereita cando entra en pset 7. 897 00:49:38,350 --> 00:49:40,580 Imos ver o que hai este esixir declaración. 898 00:49:40,580 --> 00:49:43,420 E iso como unha especie de afiada inclúen, hashtag 899 00:49:43,420 --> 00:49:46,850 inclúen se é dunha xeración máis nova. 900 00:49:46,850 --> 00:49:49,740 Pero isto basicamente di que eu teño acceso 901 00:49:49,740 --> 00:49:52,260 a todas as funcións en config.php. 902 00:49:52,260 --> 00:49:55,290 E podería ter un requiren para todo tipo de outras cousas. 903 00:49:55,290 --> 00:49:59,670 >> configuración realmente require axudantes. 904 00:49:59,670 --> 00:50:02,490 Así, sempre que teña que configuración, tamén é 905 00:50:02,490 --> 00:50:05,660 incluíndo ou esixindo axudantes tamén. 906 00:50:05,660 --> 00:50:09,590 Entón, que lle dá acceso a todos os funcións legais que imos usar, 907 00:50:09,590 --> 00:50:10,420 cousas como renderse. 908 00:50:10,420 --> 00:50:13,490 Vou realmente para aliviar esta un pouco para abaixo. 909 00:50:13,490 --> 00:50:16,280 Así, a función entón estamos indo a pé a través de 910 00:50:16,280 --> 00:50:22,380 pouco antes de pasar para SQL algo bit é a función login.php, só 911 00:50:22,380 --> 00:50:26,586 porque usa algúns dos temas que acabamos de falar en PHP. 912 00:50:26,586 --> 00:50:30,840 >> Ve o primeiro é que $ _SERVER. 913 00:50:30,840 --> 00:50:34,500 Esta é outra variable global que vai estar lidando. 914 00:50:34,500 --> 00:50:38,460 É como _GET e _POST, pero o que servidor contén é que pode deixalo 915 00:50:38,460 --> 00:50:42,730 se o método de solicitude foi un GET ou un POST. 916 00:50:42,730 --> 00:50:47,250 Como anteriormente o que estabamos facendo é só no noso código que escribiu, 917 00:50:47,250 --> 00:50:51,880 estabamos só cambiando o para ser GET e POST dependendo do que o HTML ten. 918 00:50:51,880 --> 00:50:55,120 Pero hai páxinas que se poden acceder con ambos os tipos de solicitudes. 919 00:50:55,120 --> 00:50:57,410 E pode querer facer cousas distintas dependendo 920 00:50:57,410 --> 00:50:59,740 do tipo de solicitude, así como tamén en forma. 921 00:50:59,740 --> 00:51:04,400 >> Así, pode comprobar que a solicitude método a través de claves que acceden, 922 00:51:04,400 --> 00:51:08,630 mediante o uso dunha clave e conseguir o valor de algo no dicionario 923 00:51:08,630 --> 00:51:10,260 _SERVER. 924 00:51:10,260 --> 00:51:13,800 Entón, iso é outra mundial como variable _GET e _POST. 925 00:51:13,800 --> 00:51:16,990 >> De ser GET, queremos facer o formulario de rexistro. 926 00:51:16,990 --> 00:51:21,920 Renderización é unha función que, basicamente, só colócase o HTML apropiado 927 00:51:21,920 --> 00:51:24,500 e pasa algúns parámetros. 928 00:51:24,500 --> 00:51:28,740 Este título é un parámetro que é usado na exhibición, curiosamente, 929 00:51:28,740 --> 00:51:32,670 o título da páxina en pregunta, a cousa aquí enriba, 930 00:51:32,670 --> 00:51:34,850 ou dicir Hola no noso exemplo anterior. 931 00:51:34,850 --> 00:51:36,100 Agora temos unha cousa diferente. 932 00:51:36,100 --> 00:51:38,570 Else se é POST, nós facer algunhas outras cousas. 933 00:51:38,570 --> 00:51:40,790 Estamos a usar este método baleiro. 934 00:51:40,790 --> 00:51:42,750 Non é existir, el está baleiro. 935 00:51:42,750 --> 00:51:45,440 E vimos antes, PHP ten unha boa cantidade de construído 936 00:51:45,440 --> 00:51:52,370 en métodos que se hai David will-- son métodos que son útiles para ti, 937 00:51:52,370 --> 00:51:55,560 eles van ser alertados para ti na camiña por que David 938 00:51:55,560 --> 00:51:59,770 dá a visión xeral comezando, e tamén pezas de votos Zamyla. 939 00:51:59,770 --> 00:52:01,040 Ela está de volta todos. 940 00:52:01,040 --> 00:52:03,100 Todos podemos regozijar. 941 00:52:03,100 --> 00:52:06,530 desculparse é unha función apropiadamente chamado que basicamente só imprime 942 00:52:06,530 --> 00:52:10,130 algunhas mensaxes de erro, CS50 porque é moi educado. 943 00:52:10,130 --> 00:52:14,770 >> E agora isto, este é un pouco complicado, porque iso 944 00:52:14,770 --> 00:52:16,697 é onde estamos consultando a base de datos. 945 00:52:16,697 --> 00:52:18,280 Agora non falamos bases de datos. 946 00:52:18,280 --> 00:52:22,220 E nós estamos indo a próxima cinco minutos máis ou menos, como máximo. 947 00:52:22,220 --> 00:52:24,980 Pero esta é unha función CS50 que escribiu 948 00:52:24,980 --> 00:52:38,050 para obter unha mesa, basicamente, a partir de unha base de datos que estamos a traballar con o pset 7. 949 00:52:38,050 --> 00:52:40,860 Eu son moi malo co meu indexación hoxe cero. 950 00:52:40,860 --> 00:52:42,060 Pero si, é 7. 951 00:52:42,060 --> 00:52:46,340 >> Entón consulta vai voltar un matriz, é basicamente o bit de chave. 952 00:52:46,340 --> 00:52:54,130 E por isto non teñen dixitación, para liñas é un array de arrays. 953 00:52:54,130 --> 00:52:59,480 Porque cando estamos a pensar en unha mesa, o que nós imos facer 954 00:52:59,480 --> 00:53:04,830 é, como aprendeu na Serie de exercicios como o xogo de 15, de todos os xeitos 955 00:53:04,830 --> 00:53:06,990 onde tiña que usar unha matriz dobre, nós basicamente 956 00:53:06,990 --> 00:53:15,210 ter variedade de outros matrices fai unha táboa. 957 00:53:15,210 --> 00:53:18,150 E ten liñas e columnas. 958 00:53:18,150 --> 00:53:24,450 E entón podes acceder a eles como [0] [1], comeza a [0] [1]. 959 00:53:24,450 --> 00:53:26,900 Cousas básicas como esta. 960 00:53:26,900 --> 00:53:29,380 >> Entón, o que estamos facendo aquí nesta función, 961 00:53:29,380 --> 00:53:35,070 estamos pedindo a base de datos se o usuario é 962 00:53:35,070 --> 00:53:40,200 intentando entrar, que será enviado a través do método POST. 963 00:53:40,200 --> 00:53:43,950 Imos ver o que estamos a recibir o nome de usuario de _POST. 964 00:53:43,950 --> 00:53:46,900 Van enviar, o usuario ou, enviará un valor 965 00:53:46,900 --> 00:53:50,750 a través dun formulario mediante POST porque é o nome de usuario e contrasinal cousas. 966 00:53:50,750 --> 00:53:54,830 Estamos comprobando o nome de usuario a ver, é tanto sobre a mesa? 967 00:53:54,830 --> 00:53:58,070 Porque, se un usuario está facendo sesión en, a continuación, o seu nome de usuario 968 00:53:58,070 --> 00:54:03,320 debe ser almacenada na táboa de os usuarios que existen para este sitio. 969 00:54:03,320 --> 00:54:09,360 Entón, basicamente, o usuario está na base de datos, 970 00:54:09,360 --> 00:54:16,400 consulta vai voltar esta liña, que é unha matriz. 971 00:54:16,400 --> 00:54:24,560 >> Pero a parte complicada é que mesmo se a matriz dobre é de só unha liña, 972 00:54:24,560 --> 00:54:31,900 aínda que sexa un unha liña array-- como ten basically-- 973 00:54:31,900 --> 00:54:36,900 se ten un tamaño dunha matriz que está seguro outra matriz, 974 00:54:36,900 --> 00:54:38,940 está realmente lidando con unha columna. 975 00:54:38,940 --> 00:54:41,420 Senón que é tratada como unha matriz dobre. 976 00:54:41,420 --> 00:54:44,560 >> E é aí onde as veces poden ser complicado, porque temos liñas aquí. 977 00:54:44,560 --> 00:54:46,440 Nosa variable é liñas. 978 00:54:46,440 --> 00:54:48,590 E entón nós estamos creando unha nova variable chamada liña 979 00:54:48,590 --> 00:54:51,450 e define-la igual a a primeira liña de filas. 980 00:54:51,450 --> 00:54:55,150 E vai entender que o comentario di que é a primeira e única liña. 981 00:54:55,150 --> 00:54:57,080 >> Entón que é o complicado parte onde agora funciona 982 00:54:57,080 --> 00:54:59,660 pode devolver matrices moi facilmente. 983 00:54:59,660 --> 00:55:01,270 Non hai mallocs. 984 00:55:01,270 --> 00:55:02,280 Vostede non vai ver mallocs. 985 00:55:02,280 --> 00:55:03,940 Entón non vai ver os fallos seg. 986 00:55:03,940 --> 00:55:08,380 Pero funcións aínda estará pasando en torno de matrices e de datos en grupos. 987 00:55:08,380 --> 00:55:12,250 E ten que ter coidado co que exactamente súas funcións retornarán. 988 00:55:12,250 --> 00:55:15,160 E aínda que sexa un columna como esta, consultar 989 00:55:15,160 --> 00:55:17,520 aínda está indo para volver unha matriz de parella. 990 00:55:17,520 --> 00:55:21,390 Así, para que o acceso column-- ou pode pensar en todo isto como invertida 991 00:55:21,390 --> 00:55:22,870 xa que estamos a falar de liñas. 992 00:55:22,870 --> 00:55:26,810 Pero, para acceder a unha liña que, non pode simplemente dicir liñas. 993 00:55:26,810 --> 00:55:31,540 Aínda que sexa unha liña, ten que non rowsrows [0] para eliminar este tipo de 994 00:55:31,540 --> 00:55:37,360 pouco exterior da matriz e ten só a súa unha liña. 995 00:55:37,360 --> 00:55:38,342 >> Facer algunhas outras cousas. 996 00:55:38,342 --> 00:55:40,050 Hai unha función chamado password_verify 997 00:55:40,050 --> 00:55:42,980 que comprobar a contrasinal que foi posta. 998 00:55:42,980 --> 00:55:48,500 E entón vemos outro mundial variable aquí, _SESSION. 999 00:55:48,500 --> 00:55:51,340 Basicamente id da sesión é como manter o control 1000 00:55:51,340 --> 00:55:53,990 de se alguén está rexistrado ou non. 1001 00:55:53,990 --> 00:55:58,590 Entón, agora con login.php, estamos logar un usuario. 1002 00:55:58,590 --> 00:56:01,920 Entón, o que queremos facer é que queremos dicir o id da sesión é igual á liña 1003 00:56:01,920 --> 00:56:05,890 id, que só ten sentido porque cada liña terá un ID diferente 1004 00:56:05,890 --> 00:56:07,239 número como parte da táboa. 1005 00:56:07,239 --> 00:56:09,280 Nós imos entrar nun SQL segundo, polo que, se nada diso 1006 00:56:09,280 --> 00:56:13,500 Parece un pouco como blah, entón todo será esclarecido. 1007 00:56:13,500 --> 00:56:18,450 Pero imos definir o id igual a cousa axeitada, rexistrar o usuario en. 1008 00:56:18,450 --> 00:56:20,530 Desculpas se algo sae mal. 1009 00:56:20,530 --> 00:56:27,600 E iso é logins propósito en vida como profesor Malan diría. 1010 00:56:27,600 --> 00:56:29,130 >> Así que foi login.php. 1011 00:56:29,130 --> 00:56:33,750 E unha morea de código PHP que escribir en pset 7, que será un pouco. 1012 00:56:33,750 --> 00:56:36,470 Non esqueza chmod para os permisos correspondentes. 1013 00:56:36,470 --> 00:56:40,180 Haberá un pouco sobre que, no inicio da especificación. 1014 00:56:40,180 --> 00:56:46,382 >> Pero o PHP que é escrita será 1015 00:56:46,382 --> 00:56:47,840 facendo cousas que é semellante a esta. 1016 00:56:47,840 --> 00:56:49,715 Vai ser acceso a algunhas cousas que 1017 00:56:49,715 --> 00:56:52,760 se dan a vostede no variables globais PHP que 1018 00:56:52,760 --> 00:56:56,105 está lidando coa actual usuario rexistrado, se existe 1019 00:56:56,105 --> 00:57:00,460 temos solicitudes foron enviados a esta páxina, cousas distintas así. 1020 00:57:00,460 --> 00:57:05,790 E tamén será potencialmente iterado liñas desta cousa. 1021 00:57:05,790 --> 00:57:09,010 >> Nunha función, consulta diferente non volver esa matriz dobre. 1022 00:57:09,010 --> 00:57:11,450 E, se hai máis dun filas en que, 1023 00:57:11,450 --> 00:57:15,080 Se hai é-- si, se hai son máis dunha liña en que, 1024 00:57:15,080 --> 00:57:16,870 el ha ser unha mesa. 1025 00:57:16,870 --> 00:57:20,500 E pode querer facer unha iteración a través das liñas de esa matriz usando 1026 00:57:20,500 --> 00:57:22,860 o loop foreach que describimos. 1027 00:57:22,860 --> 00:57:30,270 >> Entón, se fai foreach nun dobre array, cal será o word-- aquí, 1028 00:57:30,270 --> 00:57:31,909 En realidade, eu vou escribilo. 1029 00:57:31,909 --> 00:57:32,950 Vou escribir rápido aquí. 1030 00:57:32,950 --> 00:57:44,280 >> Se temos un foreach de liñas como liña, cal é o tipo de liña? 1031 00:57:44,280 --> 00:57:45,390 Alguén sabe? 1032 00:57:45,390 --> 00:57:54,000 1033 00:57:54,000 --> 00:57:54,500 Vostede entendeu? 1034 00:57:54,500 --> 00:57:57,110 Entón liñas é unha matriz de parella. 1035 00:57:57,110 --> 00:58:02,810 Entón, o que é foreach vai inferir que queremos a partir desa matriz dobre 1036 00:58:02,810 --> 00:58:04,280 se estamos interactuar sobre iso? 1037 00:58:04,280 --> 00:58:07,170 1038 00:58:07,170 --> 00:58:10,770 Podemos asumir que basicamente que vai ser ou elementos, 1039 00:58:10,770 --> 00:58:14,970 ou filas ou columnas, basicamente. 1040 00:58:14,970 --> 00:58:18,740 E así nós, liñas e columnas pode tratar como o mesmo. 1041 00:58:18,740 --> 00:58:23,880 >> Basicamente o que o loop foreach vai que facer é que vai voltar as liñas. 1042 00:58:23,880 --> 00:58:28,500 liña será de tipo de liña, Tendo en conta que as liñas é unha matriz de parella. 1043 00:58:28,500 --> 00:58:32,290 Entón, se dá foreach unha matriz dobre, é 1044 00:58:32,290 --> 00:58:35,830 non vai facer unha iteración máis dun nivel profundo. 1045 00:58:35,830 --> 00:58:44,464 Que é basicamente para dicir se hai son oito células nesta mesa-- 1,2, 1046 00:58:44,464 --> 00:58:48,110 3 4, 5, 6, 7, o 8-- loop foreach non é 1047 00:58:48,110 --> 00:58:51,880 vai pasar por cada unha destas células. 1048 00:58:51,880 --> 00:58:56,390 Que o loop foreach fará foi ha pasar por esta liña, 1049 00:58:56,390 --> 00:58:57,870 darlle toda esta liña. 1050 00:58:57,870 --> 00:58:59,410 E entón el vai pasar por esa liña. 1051 00:58:59,410 --> 00:59:01,850 >> Por iso, só repite un nivel de profundidade. 1052 00:59:01,850 --> 00:59:05,310 Se engade un nested loop foreach, entón 1053 00:59:05,310 --> 00:59:16,280 pode tratar cada liña retornada desde liñas, fai liña foreach como elemento, 1054 00:59:16,280 --> 00:59:17,640 imos dicir. 1055 00:59:17,640 --> 00:59:22,750 E entón podes ecoar o elemento. 1056 00:59:22,750 --> 00:59:24,930 Entón esta é unha breve pouco de reciclaxe sobre como 1057 00:59:24,930 --> 00:59:30,220 pode estar usando foreach lazos no contexto de consulta. 1058 00:59:30,220 --> 00:59:32,840 >> Hai algunha pregunta sobre PHP? 1059 00:59:32,840 --> 00:59:36,520 Calquera cousa antes de nós pasar falar SQL 1060 00:59:36,520 --> 00:59:37,820 ea diversión de base de datos? 1061 00:59:37,820 --> 00:59:41,480 1062 00:59:41,480 --> 00:59:42,110 Sentirse ben? 1063 00:59:42,110 --> 00:59:42,750 Sentirse ben. 1064 00:59:42,750 --> 00:59:43,470 Todo ben. 1065 00:59:43,470 --> 00:59:49,130 >> Imos pasar ao seu PowerPoint, que probablemente perder. 1066 00:59:49,130 --> 00:59:51,800 SQL, Yay. 1067 00:59:51,800 --> 00:59:57,900 As persoas que están na miña sección tipicamente vai saber que subtítulos de siglas 1068 00:59:57,900 --> 01:00:01,220 son sempre só as primeiras palabras Creo que xogo que 1069 01:00:01,220 --> 01:00:02,690 algorithm-- que siglas. 1070 01:00:02,690 --> 01:00:04,090 Non é un algoritmo. 1071 01:00:04,090 --> 01:00:08,050 >> Entón, é unha base de datos SQL. 1072 01:00:08,050 --> 01:00:11,060 É unha linguaxe que traballa con bases de datos. 1073 01:00:11,060 --> 01:00:14,440 E todos os bancos de datos son é táboas, polo menos na forma 1074 01:00:14,440 --> 01:00:17,220 SQL que os representa. 1075 01:00:17,220 --> 01:00:23,610 >> Outra forma de pensar sobre bases de datos é bases de datos son un conxunto de claves e valores 1076 01:00:23,610 --> 01:00:24,110 basicamente. 1077 01:00:24,110 --> 01:00:29,530 Podes pensar en unha base de datos como un dicionario e tamén como unha mesa. 1078 01:00:29,530 --> 01:00:34,300 Basicamente, é un xeito de asociar datos diferentes con outros datos, 1079 01:00:34,300 --> 01:00:36,270 moitas veces a través de liñas e columnas. 1080 01:00:36,270 --> 01:00:38,470 E esa é a forma que é SQL funciona mellor. 1081 01:00:38,470 --> 01:00:40,880 >> Polo tanto, este é un exemplo dunha táboa. 1082 01:00:40,880 --> 01:00:44,610 Teño algúns exemplos de persoas na miña sección, que 1083 01:00:44,610 --> 01:00:45,970 Non tiven tempo para cambiar. 1084 01:00:45,970 --> 01:00:52,020 Pero temos cousas como ID, nome, superpotencia, e cidade natal. 1085 01:00:52,020 --> 01:00:54,100 Non sei onde calquera é desde a miña sección, 1086 01:00:54,100 --> 01:00:56,266 entón eu só vou asumir todo o mundo é de Nova York 1087 01:00:56,266 --> 01:00:59,370 Cidade porque eu teño unha alta estatística probabilidade de estar correcta. 1088 01:00:59,370 --> 01:01:04,200 >> SQL levará automaticamente coidar da columna ID para ti. 1089 01:01:04,200 --> 01:01:07,560 Se introduce unha nova liña nunha base de datos SQL, 1090 01:01:07,560 --> 01:01:09,700 será incrementado que Número de identificación e só 1091 01:01:09,700 --> 01:01:14,890 basicamente estar como cinco nomes, superpotencia, cidade natal, quenquera 1092 01:01:14,890 --> 01:01:16,430 para o fin do referido cadro. 1093 01:01:16,430 --> 01:01:19,160 Entón ID é unha columna que non ten que se preocupar. 1094 01:01:19,160 --> 01:01:22,770 Pero, como no caso de login.php, cando 1095 01:01:22,770 --> 01:01:26,610 estaban a recibir a identificación da sesión dunha táboa e usando só ID, 1096 01:01:26,610 --> 01:01:30,320 ID é unha forma de identificar de forma exclusiva un elemento de unha base de datos. 1097 01:01:30,320 --> 01:01:34,980 >> Entón, se tivemos dous Sams, ambos CS50 que ensinou, e de que ambos 1098 01:01:34,980 --> 01:01:39,370 eran de Milwaukee, estes serían aínda ten números de identificación distintos 1099 01:01:39,370 --> 01:01:43,420 e, así, ser distinguida no contexto da mesa. 1100 01:01:43,420 --> 01:01:48,700 Entón é iso que SQL está lidando con, traballando con no back-end. 1101 01:01:48,700 --> 01:01:54,160 >> Agora ben, estes son os catro comandos que vai ter para o traballo con SQL. 1102 01:01:54,160 --> 01:01:56,390 E eu xoguei a todos nun foto. 1103 01:01:56,390 --> 01:01:59,530 Pero nós imos pasar por todos eles individualmente. 1104 01:01:59,530 --> 01:02:03,300 >> O primeiro mando é Update, que fai o que podería esperar. 1105 01:02:03,300 --> 01:02:07,240 Digamos que teña algúns datos en a táboa que está fóra de data. 1106 01:02:07,240 --> 01:02:09,470 Como se está mantendo a par de nomes de persoas 1107 01:02:09,470 --> 01:02:13,350 e as idades, se alguén é idade aumenta, a continuación, 1108 01:02:13,350 --> 01:02:18,590 vai querer entrar e actualizar idade só desa persoa. 1109 01:02:18,590 --> 01:02:21,902 Para un exemplo que funciona co noso primeiro mesa-- 1110 01:02:21,902 --> 01:02:24,610 non te preocupes sobre a escrita de todo estes comandos á vez. 1111 01:02:24,610 --> 01:02:27,640 Pero se ten actualización para abaixo, que vai ser bo para esa parte, 1112 01:02:27,640 --> 01:02:29,790 porque nós imos voltar á mesa. 1113 01:02:29,790 --> 01:02:33,920 >> Entón, se nós voltar á mesa, imos dicir algo que pasou 1114 01:02:33,920 --> 01:02:38,480 Foi houbo un terremoto ou unha liña de falla que dividir directamente 1115 01:02:38,480 --> 01:02:39,920 través de Nova York. 1116 01:02:39,920 --> 01:02:45,130 E nós queriamos para actualizar todos que viviu en Nova York. 1117 01:02:45,130 --> 01:02:49,670 Todos eles tiveron que pasar á Pensilvania. 1118 01:02:49,670 --> 01:02:51,130 Isto non é unha cidade natal. 1119 01:02:51,130 --> 01:02:53,180 Todos eles tiveron que pasar a New Haven. 1120 01:02:53,180 --> 01:02:54,030 Alí imos nós. 1121 01:02:54,030 --> 01:02:57,630 Entón, todo o mundo en Nova York móvese para New Haven. 1122 01:02:57,630 --> 01:03:01,300 >> E entón iso é algo que é editando tres rexistros nesta táboa. 1123 01:03:01,300 --> 01:03:04,716 Pero en SQL, pode facer que en só un comunicado. 1124 01:03:04,716 --> 01:03:05,715 Entón imos voltar a actualizar. 1125 01:03:05,715 --> 01:03:09,670 Déixeme rapidamente borrar esta tarxeta de novo. 1126 01:03:09,670 --> 01:03:14,570 Cando estamos a falar actualización, existen 1127 01:03:14,570 --> 01:03:17,640 algunhas partes da sintaxe que son fundamentais. 1128 01:03:17,640 --> 01:03:19,770 Ben, toda a sintaxe é a clave. 1129 01:03:19,770 --> 01:03:22,210 Pero o material en verde é opcional. 1130 01:03:22,210 --> 01:03:25,680 Están obrigados a branco, nomes predefinidos como. 1131 01:03:25,680 --> 01:03:30,750 E a luz azul son cousas que varían segundo a táboa. 1132 01:03:30,750 --> 01:03:34,640 Entón é iso que está a suceder con o esquema de cores aquí, alí enriba. 1133 01:03:34,640 --> 01:03:40,250 >> Polo tanto, se queremos actualizar só as liñas das persoas que viven en Nova York, 1134 01:03:40,250 --> 01:03:43,490 Entón, o que nós fariamos si dixésemos actualización? 1135 01:03:43,490 --> 01:03:46,320 Entón mesa é onde poñemos o nome da nosa mesa. 1136 01:03:46,320 --> 01:03:49,170 Nós só dicir o nome da nosa mesa é a mesa un. 1137 01:03:49,170 --> 01:03:52,515 Por iso, queremos actualizar a táboa un. 1138 01:03:52,515 --> 01:03:57,470 E queremos set-- o que queremos para definir? 1139 01:03:57,470 --> 01:04:05,160 Ben, quero dicir, PHP así column-- trata liñas como identificadores únicos. 1140 01:04:05,160 --> 01:04:07,930 E, a continuación, son columnas os diferentes campos 1141 01:04:07,930 --> 01:04:09,940 destes elementos da base de datos. 1142 01:04:09,940 --> 01:04:14,210 >> Así, o primeiro elemento de base de datos ten un nome de Sam, superpotencia do CS50, 1143 01:04:14,210 --> 01:04:16,210 e unha cidade de Milwaukee. 1144 01:04:16,210 --> 01:04:20,710 Entón, se nós o referido conxunto, imos ollar para os parámetros de novo ese conxunto toma. 1145 01:04:20,710 --> 01:04:23,880 Temos columna é igual ao valor. 1146 01:04:23,880 --> 01:04:27,290 Por iso, queremos dicir que algúns column-- que lembrar 1147 01:04:27,290 --> 01:04:31,850 é un field-- queremos ver unha campo igual a algo novo. 1148 01:04:31,850 --> 01:04:42,340 >> Entón, se nós só dixo actualización táboa 1, establecer o nome igual Elliot. 1149 01:04:42,340 --> 01:04:46,310 Obteña algunhas persoas da nova sección no esta. 1150 01:04:46,310 --> 01:04:51,540 Pero se nós só fixo unha actualización da táboa definir o nome igual Elliot, o que sería 1151 01:04:51,540 --> 01:04:55,530 a mirada táboa como despois diso? 1152 01:04:55,530 --> 01:04:56,410 A xente ten algunha idea? 1153 01:04:56,410 --> 01:04:59,710 1154 01:04:59,710 --> 01:05:00,210 Si. 1155 01:05:00,210 --> 01:05:03,195 >> Audiencia: Todo en que liña converteríase Elliot. 1156 01:05:03,195 --> 01:05:04,570 COLUMNA: Todo en que liña? 1157 01:05:04,570 --> 01:05:06,067 Audiencia: Na primeira liña. 1158 01:05:06,067 --> 01:05:07,150 COLUMNA: Na primeira liña? 1159 01:05:07,150 --> 01:05:09,724 Por que a primeira liña? 1160 01:05:09,724 --> 01:05:10,890 Non quero coller ti. 1161 01:05:10,890 --> 01:05:13,287 >> Audiencia: Quizais todo en toda a mesa? 1162 01:05:13,287 --> 01:05:15,120 COLUMNA: Todo en a táboa enteira, si. 1163 01:05:15,120 --> 01:05:19,520 E iso é certo Eu porque-- estaba só axudar un pouco 1164 01:05:19,520 --> 01:05:22,650 há-- porque omitimos cláusula opcional WHERE. 1165 01:05:22,650 --> 01:05:27,260 Se non ten o ONDE cláusula, o que esta orde fará 1166 01:05:27,260 --> 01:05:32,240 é que vou traballar con cada soa liña na táboa. 1167 01:05:32,240 --> 01:05:35,430 O nome de todo o mundo facer Elliott basicamente 1168 01:05:35,430 --> 01:05:37,360 Elliot, que é moi feliz. 1169 01:05:37,360 --> 01:05:40,070 Ou Yanni, un dos dous. 1170 01:05:40,070 --> 01:05:42,490 Pero o nome de todo o mundo vai cambiar. 1171 01:05:42,490 --> 01:05:47,880 >> Entón, o xeito no usamos o ONDE clause-- e iso se aplica a todo wheres 1172 01:05:47,880 --> 01:05:51,410 que están en cada un dos estas cousas diferentes. 1173 01:05:51,410 --> 01:05:54,380 Entón, vai entender que SET ten columna de valor igual. 1174 01:05:54,380 --> 01:05:55,190 E o mesmo acontece con Where. 1175 01:05:55,190 --> 01:06:00,040 Pero estes son diferentes tipo de declaracións. 1176 01:06:00,040 --> 01:06:04,400 Entón, a columna é igual ao valor en SET está misión. 1177 01:06:04,400 --> 01:06:08,320 Como estamos dicindo que queremos para definir o nome igual a Elliot. 1178 01:06:08,320 --> 01:06:15,390 Pero nas cláusulas WHERE, estas son declaracións de igualdade. 1179 01:06:15,390 --> 01:06:20,410 Entón, imos dicir que só quería cambiar o nome da persoa a Elliot 1180 01:06:20,410 --> 01:06:23,940 se o seu nome era Ryan, imos dicir. 1181 01:06:23,940 --> 01:06:24,920 >> Así, cando dicimos 1182 01:06:24,920 --> 01:06:32,700 >> ONDE nome é igual a Ryan, que faría con éxito único cambio 1183 01:06:32,700 --> 01:06:37,440 o nome-- sería só cambiar o campo de nome nas filas 1184 01:06:37,440 --> 01:06:40,770 onde o campo de nome coincide co Ryan. 1185 01:06:40,770 --> 01:06:44,430 Entón, se tivésemos varias persoas chamado Ryan, todos os seus nomes 1186 01:06:44,430 --> 01:06:45,730 cambiaría para Elliot. 1187 01:06:45,730 --> 01:06:48,169 >> Isto é semellante ao exemplo se dunha liña de falla divide 1188 01:06:48,169 --> 01:06:50,960 Nova York e todo o mundo ten que moverse para New Haven, o xeito que pudermos 1189 01:06:50,960 --> 01:06:56,570 facelo nunha instrución é ACTUALIZACIÓN table1 SET cidade natal = New Haven 1190 01:06:56,570 --> 01:07:00,210 onde cidade natal é igual a Nova York. 1191 01:07:00,210 --> 01:07:03,410 Este é o poder de a instrución Update. 1192 01:07:03,410 --> 01:07:10,530 Podemos seleccionar calquera número de liñas mediante afirmacións verdadeiras 1193 01:07:10,530 --> 01:07:12,860 sobre os campos nesas liñas. 1194 01:07:12,860 --> 01:07:19,510 Non podemos dicir set Actualización table1 name = Elliot ONDE liña = 1, 1195 01:07:19,510 --> 01:07:24,820 agás que podemos se dicimos ID = 1. 1196 01:07:24,820 --> 01:07:27,350 1197 01:07:27,350 --> 01:07:29,830 >> Entón, nós estamos indo a ser traballando con igualdade 1198 01:07:29,830 --> 01:07:32,830 de campos, a igualdade de columnas. 1199 01:07:32,830 --> 01:07:38,030 Pero usando o campo ID é unha forma de seleccionar liñas individuais, especialmente, 1200 01:07:38,030 --> 01:07:43,210 porque o campo ID é un exclusivo identificador nunha base de datos SQL. 1201 01:07:43,210 --> 01:07:45,860 Así como actualizar unha fileira, ID é igual a 1. 1202 01:07:45,860 --> 01:07:49,560 Actualizar liña dous, só cambiar este número de identificación. 1203 01:07:49,560 --> 01:07:51,610 Pero o poder do Where é que 1204 01:07:51,610 --> 01:07:57,480 pode actualizar as cousas a base do que o seu valores actuais de certas cousas son. 1205 01:07:57,480 --> 01:07:58,155 Si Elliot? 1206 01:07:58,155 --> 01:08:02,678 >> Audiencia: E se queres a-- de novo, iso é outra cuestión. 1207 01:08:02,678 --> 01:08:07,660 Pero a miña primeira pregunta foi: onde isto está a suceder? 1208 01:08:07,660 --> 01:08:09,130 Onde estou a actualizar esta? 1209 01:08:09,130 --> 01:08:11,100 É este un código PHP? 1210 01:08:11,100 --> 01:08:13,379 >> COLUMNA: Onde actualizar, si. 1211 01:08:13,379 --> 01:08:15,170 Imos falar sobre onde todo isto 1212 01:08:15,170 --> 01:08:18,729 acontece especie de unha vez imos en todos os comandos. 1213 01:08:18,729 --> 01:08:21,130 Pero o que ten que sabemos agora é basicamente 1214 01:08:21,130 --> 01:08:26,279 que a base de datos SQL existe como algo 1215 01:08:26,279 --> 01:08:30,090 para acceder pola consulta función, que define CS50. 1216 01:08:30,090 --> 01:08:33,800 Polo tanto, se usa a función de consulta, podes acceder a esta táboa. 1217 01:08:33,800 --> 01:08:39,529 >> Entón estará enviando estes comandos para súa mesa en arquivos PHP 1218 01:08:39,529 --> 01:08:41,420 a través da función de consulta. 1219 01:08:41,420 --> 01:08:45,410 Tamén pode xogar coa súa táboa directamente. 1220 01:08:45,410 --> 01:08:49,050 E esa é a mellor forma de probar eses tipos de ordes. 1221 01:08:49,050 --> 01:08:52,720 E nós imos pasar por exactamente como facelo en só un pouco. 1222 01:08:52,720 --> 01:08:54,910 >> Entón, iso é o comando Update. 1223 01:08:54,910 --> 01:08:57,939 E o resto dos comandos vai ser unha especie de semellante, 1224 01:08:57,939 --> 01:08:59,069 traballar en cousas semellantes. 1225 01:08:59,069 --> 01:09:02,740 O INSERT INTO é, probablemente, o máis diferente de UPDATE. 1226 01:09:02,740 --> 01:09:06,170 Vou deixar isto para alí só un pouco e traballar aquí. 1227 01:09:06,170 --> 01:09:10,215 Entón INSERT INTO, podes ver aínda que a táboa é o mesmo. 1228 01:09:10,215 --> 01:09:17,010 Quere inserir. 1229 01:09:17,010 --> 01:09:20,286 A capitalización, SQL é caso insensible. 1230 01:09:20,286 --> 01:09:22,160 Entón non ten que capitalizar estas cousas. 1231 01:09:22,160 --> 01:09:27,960 Por convención, as palabras en branco son capitalizados. 1232 01:09:27,960 --> 01:09:31,590 Pero eu tamén codificados por cores deles. 1233 01:09:31,590 --> 01:09:34,390 A única razón que capitalizar aqueles cando está digitando- 1234 01:09:34,390 --> 01:09:36,609 é só para enfatizar os que son constantes. 1235 01:09:36,609 --> 01:09:39,189 E así que podes ollar para a capitalización ou o feito de 1236 01:09:39,189 --> 01:09:40,740 que eu colorase los de forma diferente. 1237 01:09:40,740 --> 01:09:44,910 >> Entón temos INSERT INTO, imos facer table1 novo. 1238 01:09:44,910 --> 01:09:45,930 Isto é todo nunha liña. 1239 01:09:45,930 --> 01:09:48,609 Eu só estou separándose o por as distintas declaracións. 1240 01:09:48,609 --> 01:09:52,399 Non te preocupes co feito de que table1 foi parar na segunda liña. 1241 01:09:52,399 --> 01:09:56,130 >> Entón, nós queremos facer un INSERT INTO Table1 algúns valores. 1242 01:09:56,130 --> 01:09:58,922 E vai notar a opcional bit, o que eu vou chegar a un segundo. 1243 01:09:58,922 --> 01:09:59,755 Entón temos values. 1244 01:09:59,755 --> 01:10:03,640 1245 01:10:03,640 --> 01:10:08,100 >> Entón, digamos que queremos engadir Andi para a nosa mesa, porque perdemos Andi. 1246 01:10:08,100 --> 01:10:09,390 Andi está enfermo. 1247 01:10:09,390 --> 01:10:12,490 Entón, imos engadir Andi á nosa mesa. 1248 01:10:12,490 --> 01:10:15,150 Lembre que o número de identificación actualízase automaticamente. 1249 01:10:15,150 --> 01:10:17,320 Entón, os únicos campos nós se preocupe 1250 01:10:17,320 --> 01:10:20,230 son nome, superpotencia, e cidade natal. 1251 01:10:20,230 --> 01:10:23,660 >> E así, o xeito que nós facemos que, mirando para a nosa sintaxe, é que temos 1252 01:10:23,660 --> 01:10:28,780 só teño un paréntesis, con comas valores separados, cada un dos cales 1253 01:10:28,780 --> 01:10:29,890 é un valor. 1254 01:10:29,890 --> 01:10:35,530 Entón, se nós quería introducir Andi na nosa mesa, todo o que temos que facer é Andi dereita. 1255 01:10:35,530 --> 01:10:38,630 O que hai de superpotencia da Andi, persoas na sección de Andi? 1256 01:10:38,630 --> 01:10:45,406 1257 01:10:45,406 --> 01:10:47,545 Ela gusta de voo, ou gusta velocidade, ou algo así. 1258 01:10:47,545 --> 01:10:48,920 O que xa temos alí enriba? 1259 01:10:48,920 --> 01:10:53,425 Temos CS50, voo, velocidade e forza. 1260 01:10:53,425 --> 01:10:54,850 >> Audiencia: A viaxe no tempo. 1261 01:10:54,850 --> 01:10:56,180 >> Speak: A viaxe no tempo, incrible. 1262 01:10:56,180 --> 01:11:04,280 Entón temos Andi, tempo viaxes, ea súa cidade natal. 1263 01:11:04,280 --> 01:11:05,530 Esa é unha pregunta moi boa. 1264 01:11:05,530 --> 01:11:09,210 Nova York, a menos que alguén sabe. 1265 01:11:09,210 --> 01:11:13,600 Todo o mundo é de Nova York é o lección a tirar de hoxe. 1266 01:11:13,600 --> 01:11:17,710 >> Polo tanto, esta declaración sería inserir, como unha quinta liña, 1267 01:11:17,710 --> 01:11:21,900 co tempo de viaxe superpotencia e unha cidade de Nova York. 1268 01:11:21,900 --> 01:11:25,660 Pero o campo opcional é basicamente unha forma 1269 01:11:25,660 --> 01:11:30,090 para especificar exactamente cales columnas quere introducir as cousas en. 1270 01:11:30,090 --> 01:11:33,710 >> O xeito que nós estamos facendo isto agora, Andi, curso do tempo, Nova York, 1271 01:11:33,710 --> 01:11:38,150 vai na orde exacta do noso nome mesa--, superpotencia, cidade natal. 1272 01:11:38,150 --> 01:11:42,290 E se quería facer algo diferente do que iso, 1273 01:11:42,290 --> 01:11:44,970 como dicir que non sabía superpotencia de alguén, 1274 01:11:44,970 --> 01:11:47,660 como como eu non sabía de Andi superpotencia no inicio. 1275 01:11:47,660 --> 01:11:50,450 Entón todo o que eu sabía era o seu nome ea súa cidade natal. 1276 01:11:50,450 --> 01:11:54,550 O que eu podería facer é que puiden fazer-- vou borrar iso rápido. 1277 01:11:54,550 --> 01:11:57,910 1278 01:11:57,910 --> 01:12:00,090 >> Quero actualizar só as columnas. 1279 01:12:00,090 --> 01:12:04,100 E é aí onde o opcional lista columna entra en xogo. 1280 01:12:04,100 --> 01:12:09,185 Eu só quero actualizar nome e cidade natal. 1281 01:12:09,185 --> 01:12:12,650 1282 01:12:12,650 --> 01:12:16,480 E entón eu vou dicir values. 1283 01:12:16,480 --> 01:12:24,430 Vou facer Andi e Nova York. 1284 01:12:24,430 --> 01:12:28,980 >> Se eu tivese omitido da lista de columnas e acaba de facer estas dúas cousas, 1285 01:12:28,980 --> 01:12:32,450 onde ía Nova York ir? 1286 01:12:32,450 --> 01:12:35,900 A columna que faría New York Cidade foron colocados? 1287 01:12:35,900 --> 01:12:38,950 A xente ten algunha idea? 1288 01:12:38,950 --> 01:12:40,160 Superpotencia, exactamente. 1289 01:12:40,160 --> 01:12:41,890 >> Entón, iso vai só ir en orde. 1290 01:12:41,890 --> 01:12:45,530 E xa que atinxe o fin do lista, el só vai deixar de encher as cousas en. 1291 01:12:45,530 --> 01:12:49,080 E os valores que se ve en todas as columnas só será NULL. 1292 01:12:49,080 --> 01:12:51,840 Entón porque especificamos nome e cidade natal, 1293 01:12:51,840 --> 01:12:56,110 imos ter ID 5, nomear Andi, superpotencia NULL. 1294 01:12:56,110 --> 01:12:58,750 Entón superpotencia é un valor non iniciado. 1295 01:12:58,750 --> 01:13:01,340 Non vai necesariamente chegar a Valgrind mesmos erros se tentar 1296 01:13:01,340 --> 01:13:01,970 e acceder a ela. 1297 01:13:01,970 --> 01:13:05,160 Todo vai ser moi ben zerado fóra, porque NULL é un valor en SQL. 1298 01:13:05,160 --> 01:13:06,780 Isto é unha constante. 1299 01:13:06,780 --> 01:13:08,980 E, a continuación, cidade natal será Nova York. 1300 01:13:08,980 --> 01:13:11,860 Entón ese é o comando INSERT INTO. 1301 01:13:11,860 --> 01:13:13,610 Antes de pasarmos, hai dous comandos. 1302 01:13:13,610 --> 01:13:19,060 A xente ten dúbidas sobre Update, sobre INSERT INTO, uns SQL 1303 01:13:19,060 --> 01:13:21,556 xeralmente antes de avanzarmos para os nosos anacos finais? 1304 01:13:21,556 --> 01:13:25,500 1305 01:13:25,500 --> 01:13:26,910 As persoas se senten ben, xenial. 1306 01:13:26,910 --> 01:13:27,410 Amoo. 1307 01:13:27,410 --> 01:13:29,480 Entón imos falar sobre SELECT. 1308 01:13:29,480 --> 01:13:33,445 Indo gabia Actualización aquí. 1309 01:13:33,445 --> 01:13:35,720 >> E elección será moi semellante. 1310 01:13:35,720 --> 01:13:38,790 O obxectivo do SELECT, O propósito de SELECT na vida 1311 01:13:38,790 --> 01:13:45,910 é darlle unha morea de columnas que satisfaga determinadas condicións. 1312 01:13:45,910 --> 01:13:48,230 E cando digo satisfacer certas condicións, 1313 01:13:48,230 --> 01:13:50,800 súa mente pode inmediatamente volver para aquela cláusula WHERE 1314 01:13:50,800 --> 01:13:52,090 que xurdiu en Update. 1315 01:13:52,090 --> 01:13:54,880 E esa cláusula é exactamente alí SELECT. 1316 01:13:54,880 --> 01:14:06,020 >> Se non poñer o ONDE cláusula e dicimos SELECT nome, 1317 01:14:06,020 --> 01:14:16,490 hometown-- escrito que un pouco wrong-- nome, cidade natal FROM table1. 1318 01:14:16,490 --> 01:14:19,690 Se nós só dicir que, o que escolla vai dar é que é 1319 01:14:19,690 --> 01:14:23,730 vai darnos unha double-- unha mesa, en vez. 1320 01:14:23,730 --> 01:14:27,450 Unha matriz dobre si estamos pensando en PHP sentidos. 1321 01:14:27,450 --> 01:14:33,239 Pero el só vai dar-nos unha dobre conxunto de dúas nome columns--, 1322 01:14:33,239 --> 01:14:33,780 e cidade natal. 1323 01:14:33,780 --> 01:14:36,400 1324 01:14:36,400 --> 01:14:38,130 E ha ignorar ID. 1325 01:14:38,130 --> 01:14:41,310 E ha ignorar superpotencia. 1326 01:14:41,310 --> 01:14:44,696 E vai só darnos cada soa liña do dito marco. 1327 01:14:44,696 --> 01:14:46,570 Entón, se nós só inserido Andi, teremos Andi. 1328 01:14:46,570 --> 01:14:48,605 E nós imos ter o orixinal catro. 1329 01:14:48,605 --> 01:14:53,720 No caso de que xa foron actualizados, que ser reflectida, etcétera, etcétera. 1330 01:14:53,720 --> 01:14:56,520 >> Polo tanto, este é porque non utilizar a cláusula WHERE. 1331 01:14:56,520 --> 01:14:59,200 Pero podemos usalo exactamente da igual que usan en Update. 1332 01:14:59,200 --> 01:15:05,310 Se nós só queremos unha táboa dos nomes e super poderes de persoas vivindo 1333 01:15:05,310 --> 01:15:13,430 en Nova York, podemos realizar unha instrución como SELECT nome, superpower-- 1334 01:15:13,430 --> 01:15:27,190 Eu só vou deixar isso-- DE table1 ONDE cidade natal = Nova York. 1335 01:15:27,190 --> 01:15:33,370 >> Entón, iso vai amosar que pode estar totalmente diferentes columnas, 1336 01:15:33,370 --> 01:15:36,920 e logo poñer as columnas que non está mesmo quedando atrás na cláusula WHERE. 1337 01:15:36,920 --> 01:15:39,200 Non queren o cidade natal de todos. 1338 01:15:39,200 --> 01:15:41,920 Pero queremos que o nome e a superpotencia de persoas 1339 01:15:41,920 --> 01:15:43,817 cuxa cidade natal é Nova York. 1340 01:15:43,817 --> 01:15:45,650 Entón, iso é algo que nós pode facer co ONDE 1341 01:15:45,650 --> 01:15:49,112 cláusula é que podemos xestionar columnas que non necesariamente queren de volta. 1342 01:15:49,112 --> 01:15:52,320 Do mesmo xeito como Update, podemos tratar con columnas que non necesariamente 1343 01:15:52,320 --> 01:15:53,270 quere actualizar. 1344 01:15:53,270 --> 01:15:58,890 Podemos actualizar a cidade de todos que o nome é Sam, por exemplo. 1345 01:15:58,890 --> 01:16:02,080 Podemos actualizar a cidade de todo aquel cuxo número de identificación é 2. 1346 01:16:02,080 --> 01:16:04,960 Entón, só tes que actualizar o cidade da segunda liña 1347 01:16:04,960 --> 01:16:08,220 onde non hai que xestionar necesaria a pregunta común. 1348 01:16:08,220 --> 01:16:13,264 >> E eliminar é, como era de esperar, DELETE FROM table1. 1349 01:16:13,264 --> 01:16:14,930 E entón temos outra cláusula WHERE. 1350 01:16:14,930 --> 01:16:17,940 Así, podemos dicir Where ID = 1. 1351 01:16:17,940 --> 01:16:18,950 Eliminar a primeira liña. 1352 01:16:18,950 --> 01:16:23,240 E DELETE sempre eliminar unha liña, ou que vai eliminar un número de liñas. 1353 01:16:23,240 --> 01:16:26,990 DELETE FROM táboa WHERE cidade natal = Nova York 1354 01:16:26,990 --> 01:16:28,740 ha borrar todos en Nova York. 1355 01:16:28,740 --> 01:16:30,985 Isto é, se houbo unha praga tráxico súbita 1356 01:16:30,985 --> 01:16:33,360 e só quería eliminar todos da mesa que 1357 01:16:33,360 --> 01:16:35,760 viviu nunha determinada cidade que foi alcanzado por unha praga. 1358 01:16:35,760 --> 01:16:38,050 Que se poidan descansar en paz. 1359 01:16:38,050 --> 01:16:43,849 >> Estes son os catro comandos SQL que vai ter usar. 1360 01:16:43,849 --> 01:16:45,390 Pode non ter usalos todos. 1361 01:16:45,390 --> 01:16:47,690 Pero estes son os catro CS50 que espera 1362 01:16:47,690 --> 01:16:53,630 para ser cómodo con entrar tanto cuestionario 1 e tamén pset7 e pset8. 1363 01:16:53,630 --> 01:16:55,820 >> Hai só que a táboa de novo. 1364 01:16:55,820 --> 01:16:58,930 Neste, superpotencia de Roy ten foi actualizado para feixes de láser, que 1365 01:16:58,930 --> 01:17:00,880 é un exemplo que eu non uso. 1366 01:17:00,880 --> 01:17:05,480 Non sei cal deles Roy prefire, pero forza. 1367 01:17:05,480 --> 01:17:07,670 Roy ten unha superpotencia de forza. 1368 01:17:07,670 --> 01:17:09,090 Katherine non facelo hoxe. 1369 01:17:09,090 --> 01:17:10,260 Isto é lamentable. 1370 01:17:10,260 --> 01:17:11,260 Pero ela ten super-velocidade. 1371 01:17:11,260 --> 01:17:13,780 1372 01:17:13,780 --> 01:17:14,670 >> Ben que foi PHP. 1373 01:17:14,670 --> 01:17:19,410 Antes de falar sobre MVC, fai Alguén ten dúbidas sobre PHP? 1374 01:17:19,410 --> 01:17:23,864 Agora SQL, PHP ou de súpeto ten chegar a unha pregunta sobre PHP? 1375 01:17:23,864 --> 01:17:27,560 1376 01:17:27,560 --> 01:17:28,460 Gran. 1377 01:17:28,460 --> 01:17:29,920 Todo ben, nós está todo definido axiña. 1378 01:17:29,920 --> 01:17:33,660 >> Entón, falando un pouco preto de vista modelo controladores, 1379 01:17:33,660 --> 01:17:38,770 imos voltar a algúns do material en pset7. 1380 01:17:38,770 --> 01:17:42,470 Entón, o que vista de modelo controlador é-- eu non son 1381 01:17:42,470 --> 01:17:45,660 indo para salvar as miñas modificacións para acceder porque eu totalmente masacrados-lo. 1382 01:17:45,660 --> 01:17:49,220 Pero, basicamente, temos dous cousas separadas suceder. 1383 01:17:49,220 --> 01:17:52,390 Temos un público directorio que contén 1384 01:17:52,390 --> 01:17:56,460 o código que será executado e as páxinas web que serán visitados. 1385 01:17:56,460 --> 01:17:58,780 E tamén temos este directorio visualizacións. 1386 01:17:58,780 --> 01:18:01,780 E vistas contén modelos. 1387 01:18:01,780 --> 01:18:04,390 >> Isto é o que a función render-- vimos a renda 1388 01:18:04,390 --> 01:18:08,240 función nun monte de código PHP CS50 que xa escribiu para ti, 1389 01:18:08,240 --> 01:18:10,550 que ten en certos parámetros. 1390 01:18:10,550 --> 01:18:14,510 Que este código está facendo é o que vai en vista, 1391 01:18:14,510 --> 01:18:18,000 que son conxuntos de como código HTML pre-escritura, 1392 01:18:18,000 --> 01:18:20,720 e é a inserción de valores en determinados lugares. 1393 01:18:20,720 --> 01:18:23,990 Isto é como cando entrar CS50 Finanzas, 1394 01:18:23,990 --> 01:18:25,760 o mesmo cabeceira é en cada páxina. 1395 01:18:25,760 --> 01:18:28,130 O mesmo é rodapé de cada páxina. 1396 01:18:28,130 --> 01:18:31,880 Isto é porque a forma que é facer os traballos que vai 1397 01:18:31,880 --> 01:18:36,720 corrixir automaticamente nese cabeceira e espectador que pode atopar en vista. 1398 01:18:36,720 --> 01:18:41,400 >> Nós, en realidade, pode poñerse en cabeceira, e mire, é un ficheiro HTML cunha cabeza. 1399 01:18:41,400 --> 01:18:43,280 Ten algunhas follas de estilo. 1400 01:18:43,280 --> 01:18:48,450 Non precisa ollar para CSS para pset7 se non quere. 1401 01:18:48,450 --> 01:18:50,560 Pero pode modificar Los se quere, facer 1402 01:18:50,560 --> 01:18:53,470 seu Finanzas ollar un pouco diferente. 1403 01:18:53,470 --> 01:18:57,560 >> Ten algúns PHP en a cabeceira un pouco para ver 1404 01:18:57,560 --> 01:19:01,240 se hai un título diferente debe poñer neste cabeceira. 1405 01:19:01,240 --> 01:19:04,300 Pero só algúns outros scripts, e ligazóns, e outras cousas. 1406 01:19:04,300 --> 01:19:08,700 Cabeza termina, corpo comeza, e oops, temos este estraño pouco efecto. 1407 01:19:08,700 --> 01:19:14,730 E hai unha div, así como unha especie sen forma de elemento 1408 01:19:14,730 --> 01:19:17,120 que ten unha idea do medio. 1409 01:19:17,120 --> 01:19:22,450 >> E entón cando vemos rodapé, temos o fin dunha div. 1410 01:19:22,450 --> 01:19:25,000 Temos un fondo, que é onde o texto do pé é. 1411 01:19:25,000 --> 01:19:26,770 Fin da div, fin do corpo, fin do HTML. 1412 01:19:26,770 --> 01:19:29,070 >> Entón, o que é a renda facendo é facer é unha especie 1413 01:19:29,070 --> 01:19:33,150 de remendos cabeceira, un diferente arquivo PHP que 1414 01:19:33,150 --> 01:19:37,110 conterá as cousas que reais vai ver como o cadro de saldos 1415 01:19:37,110 --> 01:19:39,690 se está a mercar ou vender accións. 1416 01:19:39,690 --> 01:19:41,480 E entón el vai engadir ao pé. 1417 01:19:41,480 --> 01:19:44,890 E a vista do modelo controlador idea é que nós 1418 01:19:44,890 --> 01:19:49,590 quere separar como as cousas parecen partir do código. 1419 01:19:49,590 --> 01:19:53,420 É queremos separar a interface e se o servidor, onde a interface é 1420 01:19:53,420 --> 01:20:00,440 as cousas que o usuario ve o Niza visuals-- HTML, CSS, cousas así, 1421 01:20:00,440 --> 01:20:02,320 imaxes, etcétera. 1422 01:20:02,320 --> 01:20:05,780 E o motor é PHP. 1423 01:20:05,780 --> 01:20:07,710 Este é o código que escribe. 1424 01:20:07,710 --> 01:20:10,240 Este é o lugar onde o código facendo operacións reais. 1425 01:20:10,240 --> 01:20:12,400 Isto é, cando está engadindo un stock a súa mesa, 1426 01:20:12,400 --> 01:20:14,890 cando está a mercar e venda, que é motor. 1427 01:20:14,890 --> 01:20:20,210 >> E podemos, como viu, incluíndo PHP directamente en HTML. 1428 01:20:20,210 --> 01:20:23,210 Entón, o que poderiamos ter feito para esta asignación é só tivo 1429 01:20:23,210 --> 01:20:26,200 un ficheiro HTML para cada páxina, como login. 1430 01:20:26,200 --> 01:20:30,260 E entón nesa páxina, pode tivo un enorme bloque de código PHP, 1431 01:20:30,260 --> 01:20:33,822 incluíndo todo de que o código esta páxina especificamente sería necesario. 1432 01:20:33,822 --> 01:20:35,780 E entón poderíamos ter feito isto para a carteira. 1433 01:20:35,780 --> 01:20:40,250 Poderiamos ter feito todas as compras e vender dentro das páxinas individuais. 1434 01:20:40,250 --> 01:20:43,680 >> Senón porque estamos renderización separado, desde onde 1435 01:20:43,680 --> 01:20:46,660 estamos escribindo o motor código, podemos facilmente 1436 01:20:46,660 --> 01:20:52,660 cambiar o xeito no que as cousas parecen sen cambiando a cada ficheiro único. 1437 01:20:52,660 --> 01:20:55,460 Facemos cousas como pode engadir unha nova div ao fondo 1438 01:20:55,460 --> 01:21:00,720 de-- Ola eu modifiquei o rodapé. 1439 01:21:00,720 --> 01:21:03,710 Pode só facer cousas así. 1440 01:21:03,710 --> 01:21:07,250 Pero tamén, pode cambiar todo o esquema visual 1441 01:21:07,250 --> 01:21:09,290 sen afectar o que é indo no motor. 1442 01:21:09,290 --> 01:21:12,000 E pode cambiar a motor enteiro e aínda 1443 01:21:12,000 --> 01:21:13,900 telo ollar só como facía antes. 1444 01:21:13,900 --> 01:21:14,400 Este 1445 01:21:14,400 --> 01:21:16,170 >> É a idea de controlador de vista do modelo. 1446 01:21:16,170 --> 01:21:19,992 E é realmente un paradigma imposto nalgunhas das linguaxes de programación 1447 01:21:19,992 --> 01:21:21,700 pode querer usar para proxectos finais. 1448 01:21:21,700 --> 01:21:25,100 Se fai o desenvolvemento IOS, eles teñen puntos de vista, 1449 01:21:25,100 --> 01:21:29,120 que é o que ve no iPhone, e entón o servidor como como unha cousa separada. 1450 01:21:29,120 --> 01:21:31,260 >> Pode pensar un pouco. 1451 01:21:31,260 --> 01:21:35,190 Hai unha morea de binarios en ciencia da computación, que é divertido, 1452 01:21:35,190 --> 01:21:37,270 porque todo é en binario. 1453 01:21:37,270 --> 01:21:38,550 Non planear iso. 1454 01:21:38,550 --> 01:21:41,590 Isto foi un xogo de palabras non intencional. 1455 01:21:41,590 --> 01:21:43,860 Si, non trocadilhos. 1456 01:21:43,860 --> 01:21:49,070 >> Pero, como ficheiros .h e arquivos .c, hai unha gran cantidade de separación das cousas que 1457 01:21:49,070 --> 01:21:49,900 quizais non sexa necesario. 1458 01:21:49,900 --> 01:21:54,330 Así, podemos só editar os arquivos h, ou alguén pode só ver un ficheiro.h e saber 1459 01:21:54,330 --> 01:21:57,650 exactamente as funcións que están no C ficheiro sen necesariamente saber 1460 01:21:57,650 --> 01:21:58,870 súa implementación. 1461 01:21:58,870 --> 01:22:02,800 Esta idea de compoñentes de separación que dependen uns dos outros 1462 01:22:02,800 --> 01:22:06,990 pero pode clasificar de acceder a un ao outro a través de diferentes canles, paso 1463 01:22:06,990 --> 01:22:09,310 de variables, só inclúen declaracións, cousas 1464 01:22:09,310 --> 01:22:14,440 así, este principio axuda a crear aplicacións 1465 01:22:14,440 --> 01:22:17,080 que pode ser máis facilmente editado por varias persoas, 1466 01:22:17,080 --> 01:22:20,440 pode ser máis facilmente modificado ou alteracións a grande escala, 1467 01:22:20,440 --> 01:22:24,880 e son máis fáciles de depurar nunha serie de formas. 1468 01:22:24,880 --> 01:22:28,254 >> Moi rápido, eu teño algunhas suxestións para pset7, 1469 01:22:28,254 --> 01:22:31,420 que eu vou facer pantalla completa para que non só mirando para as-- tippee punta punta. 1470 01:22:31,420 --> 01:22:33,964 1471 01:22:33,964 --> 01:22:35,130 Non hai que moitas consellos. 1472 01:22:35,130 --> 01:22:38,060 >> Pero eu mencionen PHP é difícil de depurar. 1473 01:22:38,060 --> 01:22:39,290 Dobres e triples verificalo. 1474 01:22:39,290 --> 01:22:41,550 Se o código non é só aparecendo na páxina, 1475 01:22:41,550 --> 01:22:46,240 pode ser un erro de PHP, desculpe. 1476 01:22:46,240 --> 01:22:48,570 >> Nunca ten que mirar para CSS se non quere. 1477 01:22:48,570 --> 01:22:52,150 Pero unha vez que está acabado, pode ser unha boa cousa pouco de diversión para simplemente entrar 1478 01:22:52,150 --> 01:22:54,770 e xogar cos parámetros CSS. 1479 01:22:54,770 --> 01:22:58,700 CSS e HTML son un exemplo dun modelo cousa vista controlador de estilo tamén, non? 1480 01:22:58,700 --> 01:23:02,150 Podería ter marcas de estilo no interior de elementos HTML. 1481 01:23:02,150 --> 01:23:04,800 Pero se tipo de terceirização-los a CSS, 1482 01:23:04,800 --> 01:23:08,180 son máis fáciles de editar, and play coa volta, e divertirse con. 1483 01:23:08,180 --> 01:23:10,816 >> Trata CS50 helper funciona como caixas negras. 1484 01:23:10,816 --> 01:23:12,940 Non é preciso saber exactamente o que está facendo encaixe, 1485 01:23:12,940 --> 01:23:16,770 pero confiar nel para sempre facer o ben cousa dependendo do que pasalo, 1486 01:23:16,770 --> 01:23:17,690 cousas como esta. 1487 01:23:17,690 --> 01:23:21,040 E eu recomendado acompañando paso a paso de David, 1488 01:23:21,040 --> 01:23:24,490 pasar por todos os material, non só os todos, 1489 01:23:24,490 --> 01:23:26,960 pero o que realmente pode tratar esas caixas como negro. 1490 01:23:26,960 --> 01:23:29,280 Non vai a estes funcións de procura de erros. 1491 01:23:29,280 --> 01:23:33,510 >> E saudar o regreso do noso Overlord Zamyla. 1492 01:23:33,510 --> 01:23:34,010 Gran. 1493 01:23:34,010 --> 01:23:40,430 >> Hai algunha pregunta finais antes que tipo de ir para o día? 1494 01:23:40,430 --> 01:23:42,610 Eu aínda estou vivo? 1495 01:23:42,610 --> 01:23:44,700 Gran. 1496 01:23:44,700 --> 01:23:47,120 Persoas Livestream Ola. 1497 01:23:47,120 --> 01:23:47,620 Gran. 1498 01:23:47,620 --> 01:23:50,260 Hai máis preguntas? 1499 01:23:50,260 --> 01:23:50,760 Non? 1500 01:23:50,760 --> 01:23:52,884 >> E entón eu creo que somos bo para ir hoxe. 1501 01:23:52,884 --> 01:23:55,550 Vou ir por aquí un pouco despois, se as persoas tiñan dúbidas 1502 01:23:55,550 --> 01:23:57,480 tiñan medo de preguntar sobre o córrego. 1503 01:23:57,480 --> 01:23:59,790 Pero, se non, teña un bo día. 1504 01:23:59,790 --> 01:24:01,933