1 00:00:00,000 --> 00:00:04,410 >> [Música tocando] 2 00:00:04,410 --> 00:00:12,250 3 00:00:12,250 --> 00:00:15,770 >> COLUNA 1: Este é CS50 e este é o fim de semana de sete. 4 00:00:15,770 --> 00:00:20,240 Hoje é talvez onde nós realmente ensinando idiomas. 5 00:00:20,240 --> 00:00:24,100 Nós introduzimos no último par de semanas HTML e CSS, nenhuma das quais 6 00:00:24,100 --> 00:00:25,240 são linguagens de programação. 7 00:00:25,240 --> 00:00:28,600 E, de fato, embora nós não olhar para quase todas as tags 8 00:00:28,600 --> 00:00:33,410 que vem com HTML e quase todos das propriedades CSS que vem com, 9 00:00:33,410 --> 00:00:35,007 isso é meio-lo para HTML e CSS. 10 00:00:35,007 --> 00:00:36,840 Nós vamos apenas geralmente começar a assumir que 11 00:00:36,840 --> 00:00:39,545 compreender as idéias gerais de tags e atributos, 12 00:00:39,545 --> 00:00:41,850 e sendo enviado páginas do cliente para o servidor. 13 00:00:41,850 --> 00:00:45,280 >> Porque hoje nós começamos a olhar para outra linguagem de programação, PHP. 14 00:00:45,280 --> 00:00:47,110 Nós vamos fazer isso super rápido. 15 00:00:47,110 --> 00:00:50,910 Nós não estamos indo para ensinar-lhe PHP per se, muito como nós não aspirar a ensinar-lhe 16 00:00:50,910 --> 00:00:52,670 C, por si só, mas em vez de programação. 17 00:00:52,670 --> 00:00:55,088 E, de fato, um dos metas para este curso 18 00:00:55,088 --> 00:00:57,820 não é para ensinar-lhe C, ou HTML ou CSS, ou PHP, 19 00:00:57,820 --> 00:01:00,370 ou qualquer número de outros palavras de zumbido ou siglas, 20 00:01:00,370 --> 00:01:03,097 mas sim a ciência da computação e como programar fundamentalmente. 21 00:01:03,097 --> 00:01:05,930 E, de fato, hoje nós começamos a tomar aquelas rodinhas todo o 22 00:01:05,930 --> 00:01:10,600 ainda por voar através de uma linguagem PHP chamada, como se segue. 23 00:01:10,600 --> 00:01:13,640 >> Aqui está o que esta linguagem parece. 24 00:01:13,640 --> 00:01:17,790 Acontece que não há necessidade de uma função principal em um programa escrito 25 00:01:17,790 --> 00:01:19,470 em uma linguagem chamada PHP. 26 00:01:19,470 --> 00:01:22,585 De modo que já soa um pouco mais simples de C, com a qual estamos familiarizados. 27 00:01:22,585 --> 00:01:25,370 Acontece que se você quer declarar uma variável, 28 00:01:25,370 --> 00:01:29,470 você fazê-lo de forma quase idêntica a C. Mas há claramente uma diferença aqui 29 00:01:29,470 --> 00:01:31,850 quando eu declarar uma string, ou talvez duas diferenças. 30 00:01:31,850 --> 00:01:32,725 O que parece diferente? 31 00:01:32,725 --> 00:01:35,810 32 00:01:35,810 --> 00:01:37,160 >> AUDIÊNCIA: O sinal de dólar. 33 00:01:37,160 --> 00:01:39,951 >> COLUNA 1: Sim, há dólar assinar, que nós nunca vimos antes. 34 00:01:39,951 --> 00:01:41,451 E o que está faltando? 35 00:01:41,451 --> 00:01:41,950 Sim? 36 00:01:41,950 --> 00:01:42,820 >> AUDIÊNCIA: [inaudível] 37 00:01:42,820 --> 00:01:44,403 >> COLUNA 1: Sim, não há nenhum tipo de dados. 38 00:01:44,403 --> 00:01:48,410 Assim, verifica-se que o PHP é o que nós chamar uma linguagem fracamente tipada, onde 39 00:01:48,410 --> 00:01:49,959 C é fortemente tipado. 40 00:01:49,959 --> 00:01:52,500 Vagamente digitado apenas significa que existem diferentes tipos de dados, 41 00:01:52,500 --> 00:01:54,470 há seqüências de caracteres e ints e carros alegóricos. 42 00:01:54,470 --> 00:01:56,330 Mas os números de computadores isso. 43 00:01:56,330 --> 00:01:58,664 Você o programador humano não tem que descobrir isso. 44 00:01:58,664 --> 00:02:00,580 Então tudo que você tem a fazer para declarar uma variável é 45 00:02:00,580 --> 00:02:03,220 sinal de dólar, o nome da sua variável e, em seguida, por exemplo, 46 00:02:03,220 --> 00:02:04,760 entre aspas, Olá mundo. 47 00:02:04,760 --> 00:02:07,662 >> Bem, isso é o que um condição parece em PHP. 48 00:02:07,662 --> 00:02:08,328 Quaisquer diferenças? 49 00:02:08,328 --> 00:02:10,650 50 00:02:10,650 --> 00:02:11,150 Não. 51 00:02:11,150 --> 00:02:12,540 Então não é que estes são idênticos. 52 00:02:12,540 --> 00:02:14,665 E você pode ter menos sucursais ou mais ramos, 53 00:02:14,665 --> 00:02:16,557 mas as voltas de sintaxe exatamente o mesmo. 54 00:02:16,557 --> 00:02:18,390 Expressões booleana pode ser encomendados juntos. 55 00:02:18,390 --> 00:02:20,400 As expressões booleanas pode ser anded juntos. 56 00:02:20,400 --> 00:02:21,430 Você ainda tem switches. 57 00:02:21,430 --> 00:02:23,790 Mesmo se você não tiver usado Destes, estes existem em C 58 00:02:23,790 --> 00:02:26,020 e eles são funcionalmente equivalente em PHP. 59 00:02:26,020 --> 00:02:28,260 >> E, na verdade, eles estão em PHP um pouco mais forte. 60 00:02:28,260 --> 00:02:32,540 Em C, você só pode comparar certo tipos de dados como inteiros e caracteres, 61 00:02:32,540 --> 00:02:36,320 Considerando que, em PHP você pode realmente comparar cordas pleno desenvolvimento, sem ter 62 00:02:36,320 --> 00:02:38,460 de se preocupar com os ponteiros e semelhantes. 63 00:02:38,460 --> 00:02:39,430 Então aqui está um loop. 64 00:02:39,430 --> 00:02:41,270 Este é apenas pseudocódigo código, se você quiser. 65 00:02:41,270 --> 00:02:43,400 Mas é estruturalmente idêntico ao C. 66 00:02:43,400 --> 00:02:47,520 >> Aqui está o loop while, um pseudocódigo therefore-- idêntico ao C. 67 00:02:47,520 --> 00:02:49,390 Aqui está um tumulto enquanto loop-- idênticos. 68 00:02:49,390 --> 00:02:51,390 E assim há um tipo de este padrão pelo qual aqui 69 00:02:51,390 --> 00:02:54,400 há alguns outros sintática recursos que estamos realmente indo para ver. 70 00:02:54,400 --> 00:02:57,340 Na verdade, aqui é um bom PHP na forma segundo a qual, 71 00:02:57,340 --> 00:02:59,350 se você quiser fazer uma iteração sobre uma matriz, e você 72 00:02:59,350 --> 00:03:02,309 não querem saltar através do aros mentais e sintáticas de ter 73 00:03:02,309 --> 00:03:05,178 int i é igual a 0, i menos que n, i, mais que plus-- 74 00:03:05,178 --> 00:03:07,040 é apenas um monte de sintaxe irritante. 75 00:03:07,040 --> 00:03:10,654 Você pode falar um pouco mais de forma fluida para cada um números 76 00:03:10,654 --> 00:03:13,320 como número, onde neste caso Números do sinal de dólar, eu estou supondo, 77 00:03:13,320 --> 00:03:15,400 é como uma matriz de números chamados. 78 00:03:15,400 --> 00:03:18,810 E então eu estou supondo que o número, singular, vai ser uma variável. 79 00:03:18,810 --> 00:03:22,940 >> E o PHP vai fazer por mim como eu fazer uma iteração ao longo deste ciclo é, em cada iteração, 80 00:03:22,940 --> 00:03:28,450 ele vai atualizar o número da variável para ser o i-ésimo elemento em números, plural. 81 00:03:28,450 --> 00:03:30,060 Então ele só lida com tudo isso para mim. 82 00:03:30,060 --> 00:03:32,750 Não há colchetes, não sinal de dólar, não há ponto e vírgula. 83 00:03:32,750 --> 00:03:34,117 É apenas um pouco mais simples. 84 00:03:34,117 --> 00:03:35,950 Bem, se você quer um array, verifica-se que você 85 00:03:35,950 --> 00:03:38,908 pode fazer algo bastante semelhante ao C. A sintaxe é um pouco diferente. 86 00:03:38,908 --> 00:03:41,000 Mas aqui está uma matriz chamada dólar assinado números. 87 00:03:41,000 --> 00:03:44,261 E eu uso, em PHP, praça suportes, ao que parece. 88 00:03:44,261 --> 00:03:47,260 E nós estamos indo para ver estes novamente em JavaScript-- ainda outro idioma. 89 00:03:47,260 --> 00:03:49,968 Eu só usar a notação de colchete ter uma lista separada por vírgulas 90 00:03:49,968 --> 00:03:51,530 de inteiros, neste caso. 91 00:03:51,530 --> 00:03:53,010 Mas isso me dá uma matriz. 92 00:03:53,010 --> 00:03:56,270 >> Mas ainda mais poderoso em PHP, temos também o que são, em geral 93 00:03:56,270 --> 00:03:57,640 chamado matrizes associativas. 94 00:03:57,640 --> 00:03:59,540 E um monte de línguas tem estes também. 95 00:03:59,540 --> 00:04:03,810 A coisa sobre matrizes C é que os índices 96 00:04:03,810 --> 00:04:06,940 para uma matriz, a coisa que você usar em colchetes, através do qual 97 00:04:06,940 --> 00:04:08,600 você acessar elementos, deve ser o que? 98 00:04:08,600 --> 00:04:10,620 >> AUDIÊNCIA: [inaudível] 99 00:04:10,620 --> 00:04:14,220 >> COLUNA 1: Eles têm de ser números ou inteiros, especificamente de zero em cima. 100 00:04:14,220 --> 00:04:17,140 Bem, em PHP, e, ao que parece para fora, em outros idiomas, 101 00:04:17,140 --> 00:04:20,820 você pode começar a ter índices que não são numéricos. 102 00:04:20,820 --> 00:04:23,880 Mas eles são realmente palavras ou frases, de modo que, em vez de 103 00:04:23,880 --> 00:04:27,070 tente se lembrar onde algo é, ou armazenado em uma variável i, 104 00:04:27,070 --> 00:04:31,720 você pode realmente usar uma palavra e dizer isso-- você pode dizer uma palavra como essa. 105 00:04:31,720 --> 00:04:34,730 >> Então Citação sinal de dólar é a nome de uma variável aqui. 106 00:04:34,730 --> 00:04:39,360 Este é um pouco descolados sintaxe isso é associar dois valor de chave 107 00:04:39,360 --> 00:04:41,250 pares para essa variável. 108 00:04:41,250 --> 00:04:45,490 Especificamente, isso está me dando uma matriz que é de comprimento 2. 109 00:04:45,490 --> 00:04:47,660 Mas os índices não são 0 e 1. 110 00:04:47,660 --> 00:04:51,250 Os índices estão entre aspas símbolo e cotação de preço fecha aspas. 111 00:04:51,250 --> 00:04:55,990 E os valores desses índices, respectivamente, é FB no Facebook 112 00:04:55,990 --> 00:05:00,360 e $ 79,53, quando eu durar verificado um preço por isso. 113 00:05:00,360 --> 00:05:01,210 >> O que isso significa? 114 00:05:01,210 --> 00:05:04,136 Bem, isso significa que em vez de escrever código 115 00:05:04,136 --> 00:05:09,612 como este, onde eu costumava fazer algo como dólar sign-- ou melhor, em C 116 00:05:09,612 --> 00:05:11,070 Eu não teria sequer um sinal de dólar. 117 00:05:11,070 --> 00:05:13,490 Gostaria de fazer algo como citações e, em seguida, 118 00:05:13,490 --> 00:05:18,410 Eu faria suporte de i para chegar em algum arbitrariamente numericamente valor indexado. 119 00:05:18,410 --> 00:05:21,430 A partir de hoje em PHP, se você deseja obter em algum valor, 120 00:05:21,430 --> 00:05:24,742 que tipo de ter mais expressividade semântica. 121 00:05:24,742 --> 00:05:27,450 Apenas uma maneira elegante de dizer que pudermos apenas chamar as coisas o que são. 122 00:05:27,450 --> 00:05:29,800 >> E se você quiser começar em algo símbolo, 123 00:05:29,800 --> 00:05:32,180 agora você literalmente fazer citar símbolo unquote 124 00:05:32,180 --> 00:05:34,910 entre colchetes em vez de um mero número. 125 00:05:34,910 --> 00:05:36,450 Portanto, é uma conveniência agradável. 126 00:05:36,450 --> 00:05:38,140 E isso é uma espécie de tudo por agora. 127 00:05:38,140 --> 00:05:40,240 Há cachos de outros recursos no PHP. 128 00:05:40,240 --> 00:05:43,180 E, de fato, PHP vem com a pia da cozinha proverbial. 129 00:05:43,180 --> 00:05:48,640 Dezenas, centenas de funções vêm com PHP-- tantos mais que veio com C. 130 00:05:48,640 --> 00:05:51,360 >> E que não se destina a oprimir, mas sim ajudá- 131 00:05:51,360 --> 00:05:53,900 você perceber que nós não já não têm de escrever código 132 00:05:53,900 --> 00:05:55,590 que é uma espécie de aqui conceitualmente. 133 00:05:55,590 --> 00:05:58,465 Agora, podemos começar a tirar partido de muito mais avançados recursos 134 00:05:58,465 --> 00:05:59,920 que linguagens como PHP tem. 135 00:05:59,920 --> 00:06:02,630 Portanto, não precisa se preocupar com mover as coisas na memória. 136 00:06:02,630 --> 00:06:05,338 Nós não temos que se preocupar com malloc e todos estes nível inferior, 137 00:06:05,338 --> 00:06:09,390 detalhes poderosas que você lutará com, se não lutar com, pset5, 138 00:06:09,390 --> 00:06:13,380 mas você pode começar a logo tomar para concedido. 139 00:06:13,380 --> 00:06:17,770 >> Na verdade, vamos escrever um super- programa simples em PHP, como se segue. 140 00:06:17,770 --> 00:06:21,550 Eu estou indo para ir cabeça em CS50 IDE aqui, eo que eu vou fazer 141 00:06:21,550 --> 00:06:29,370 é criar um novo arquivo, que muito simplesmente vai ser chamado Olá dot PHP. 142 00:06:29,370 --> 00:06:31,860 Então, ao invés de ponto c, é vai ser chamado ponto PHP. 143 00:06:31,860 --> 00:06:34,260 E então neste arquivo, Eu posso começar a digitar. 144 00:06:34,260 --> 00:06:36,960 Mas acontece que o uma coisa que eu tenho que saber 145 00:06:36,960 --> 00:06:41,470 é que qualquer arquivo PHP em geral, precisa começar com uma sintaxe especial. 146 00:06:41,470 --> 00:06:44,570 Similares em espírito à HTML, mas, novamente, PHP é uma linguagem de programação, não 147 00:06:44,570 --> 00:06:45,590 uma linguagem de marcação. 148 00:06:45,590 --> 00:06:48,700 >> Assim, cada arquivo, e é uma espécie de olhar estúpido eu admito. 149 00:06:48,700 --> 00:06:50,480 Abrir suporte, ponto de interrogação, PHP. 150 00:06:50,480 --> 00:06:53,060 E isso é só o forma de linguagem de dizer: 151 00:06:53,060 --> 00:06:58,400 hey, computador vem aqui algum código escrito em uma linguagem chamada PHP. 152 00:06:58,400 --> 00:07:01,900 E então, no final do seu arquivo, você faz o tipo de espécie de oposto. 153 00:07:01,900 --> 00:07:04,860 Você não escreve PHP novamente, você só fazer ponto de interrogação, suporte de ângulo. 154 00:07:04,860 --> 00:07:08,500 E então qualquer coisa que você colocar dentro destas duas marcas, por assim dizer, 155 00:07:08,500 --> 00:07:11,490 será, ou deveria ser, o código PHP. 156 00:07:11,490 --> 00:07:13,180 >> Então, vamos fazer algo super simples. 157 00:07:13,180 --> 00:07:19,370 Eu estou indo para ir em frente e fazer impressão def, Olá mundo, barra invertida n, salvar. 158 00:07:19,370 --> 00:07:27,310 E agora a minha linha, eu vou fazer, fazer hello-- não, eu vou fazer, 159 00:07:27,310 --> 00:07:28,726 dot cortar Olá. 160 00:07:28,726 --> 00:07:31,250 Não, barra ponto, hm. 161 00:07:31,250 --> 00:07:32,990 Então, alguma coisa é diferente. 162 00:07:32,990 --> 00:07:36,920 E, de fato, esta é uma diferença fundamental entre PHP e linguagens como C C. 163 00:07:36,920 --> 00:07:38,730 foi uma chamada linguagem compilada. 164 00:07:38,730 --> 00:07:40,929 O que isso significa para C para ser compilado? 165 00:07:40,929 --> 00:07:41,970 Qual foi a implicação? 166 00:07:41,970 --> 00:07:42,898 Sim. 167 00:07:42,898 --> 00:07:45,220 >> AUDIÊNCIA: Escreveu-o em código de máquina para que pudesse ser executado pelo computador. 168 00:07:45,220 --> 00:07:46,011 >> COLUNA 1: Exatamente. 169 00:07:46,011 --> 00:07:49,075 Temos que primeiro convertê-la em chamada de código de máquina, zeros e uns, 170 00:07:49,075 --> 00:07:51,950 antes ele vai realmente ser executável e compreendido pelo computador. 171 00:07:51,950 --> 00:07:52,840 Intel por dentro. 172 00:07:52,840 --> 00:07:54,530 Pela CPU no interior do computador. 173 00:07:54,530 --> 00:07:58,170 PHP, pelo contrário, é o que é chamado uma linguagem interpretada, que 174 00:07:58,170 --> 00:08:02,230 significa que você não compilá-lo em zeros e uns, código de máquina, 175 00:08:02,230 --> 00:08:04,360 você, em vez deixá-lo como código-fonte. 176 00:08:04,360 --> 00:08:08,130 E você, em vez passá-lo como entrada para um programa, um intérprete 177 00:08:08,130 --> 00:08:11,960 que outra pessoa escreveu anos atrás, que o entende 178 00:08:11,960 --> 00:08:14,310 linha por linha, caráter para o personagem. 179 00:08:14,310 --> 00:08:16,120 Assim, em outras palavras, os seres humanos lá fora, escreveu 180 00:08:16,120 --> 00:08:19,670 um programa que vai olhar em seu código linha por linha, 181 00:08:19,670 --> 00:08:21,680 e descobrir o que o computador deve fazer, 182 00:08:21,680 --> 00:08:25,960 sem convertê-lo diretamente a zeros e uns. 183 00:08:25,960 --> 00:08:28,370 >> Então, se ele vê um loop for, este chamado intérprete 184 00:08:28,370 --> 00:08:30,630 vai ser como, tudo bem, eu deveria fazer algo de novo e de novo e de novo. 185 00:08:30,630 --> 00:08:31,150 O que devo fazer? 186 00:08:31,150 --> 00:08:32,159 Deixe-me olhar para a próxima linha. 187 00:08:32,159 --> 00:08:33,367 Deixe-me olhar para a próxima linha. 188 00:08:33,367 --> 00:08:35,350 E ele realmente interpreta linha a linha. 189 00:08:35,350 --> 00:08:37,220 Então, para executá-lo, eu não uso maquiagem. 190 00:08:37,220 --> 00:08:39,409 Eu não uso barra dot neste caso. 191 00:08:39,409 --> 00:08:43,530 I em vez do PHP, que é o nome de um programa, a.k.a. 192 00:08:43,530 --> 00:08:46,562 Um intérprete, que é pré-instalado em CS50 IDE, 193 00:08:46,562 --> 00:08:48,770 e agora eu preciso passar um argumento de linha de comando, que 194 00:08:48,770 --> 00:08:52,290 é simplesmente o nome do arquivo que eu quero interpretar. 195 00:08:52,290 --> 00:08:54,740 Ou mais casualmente, que eu quero correr. 196 00:08:54,740 --> 00:08:57,000 E se eu pressione Enter, não temos. 197 00:08:57,000 --> 00:08:57,825 Ola mundo. 198 00:08:57,825 --> 00:08:59,950 Agora acontece que eu def impressão usado deliberadamente 199 00:08:59,950 --> 00:09:01,600 para nós ponte de C para PHP. 200 00:09:01,600 --> 00:09:05,150 A maioria dos programadores PHP, como você vai ver, não se incomodam mesmo usando print def. 201 00:09:05,150 --> 00:09:08,290 Eles só usar uma função chamada impressão, que C não tem. 202 00:09:08,290 --> 00:09:11,390 E por isso, se eu executá-lo novamente agora, ele realmente comporta-se funcionalmente ao mesmo. 203 00:09:11,390 --> 00:09:13,730 Eu não posso usar o percentual s e i por cento e assim por diante, 204 00:09:13,730 --> 00:09:16,250 mas há outras maneiras em PHP de fazer isso. 205 00:09:16,250 --> 00:09:18,100 Mas esta é apenas a dizer que sintaticamente, 206 00:09:18,100 --> 00:09:21,850 exceto algumas coisas estranhas up superior, e alguns caracteres estranhos para baixo 207 00:09:21,850 --> 00:09:25,960 na parte inferior, os conceitos de agora programação nesta outra língua 208 00:09:25,960 --> 00:09:27,860 vão ser exatamente o mesmo. 209 00:09:27,860 --> 00:09:30,120 >> Na verdade, vamos fazer um outro exemplo. 210 00:09:30,120 --> 00:09:32,520 Então, eu estou indo para ir em frente e feche este arquivo. 211 00:09:32,520 --> 00:09:37,740 Deixe-me criar um outro que Vou ligar condições 1 ponto PHP. 212 00:09:37,740 --> 00:09:40,770 Portanto, não zero, porque o que eu fiz era eu olhei para trás, há algumas semanas, 213 00:09:40,770 --> 00:09:43,490 tivemos um arquivo chamado condições de 1 ponto C. E o que 214 00:09:43,490 --> 00:09:47,590 Que fiz foi converteu-o em minha cabeça, e, aqui no papel, 215 00:09:47,590 --> 00:09:51,290 e logo no curso de website, linha por linha em PHP. 216 00:09:51,290 --> 00:09:55,520 >> Assim, na versão C, fizemos algo como string s recebe obter string. 217 00:09:55,520 --> 00:09:58,200 Portanto, é um pouco diferente fazer isso em PHP. 218 00:09:58,200 --> 00:10:01,390 Em vez disso, eu só vou para fazer, ou melhor, I 219 00:10:01,390 --> 00:10:05,870 poderia ter feito int n recebe chegar int, neste exemplo anterior. 220 00:10:05,870 --> 00:10:12,600 Então, ao invés disso, eu vou fazer n obtém linha de ler, eu gostaria de um número inteiro, 221 00:10:12,600 --> 00:10:13,670 Por favor. 222 00:10:13,670 --> 00:10:15,110 Portanto, esta é apenas a minha indicação. 223 00:10:15,110 --> 00:10:17,260 E assim se vê, e Eu só sei que isto 224 00:10:17,260 --> 00:10:20,480 de ter lido ou visto a função antes, as linhas de função em PHP ler 225 00:10:20,480 --> 00:10:23,810 leva um argumento que é um prompt para o ser humano, e seu propósito na vida 226 00:10:23,810 --> 00:10:26,220 é ler uma linha de texto que ele ou ela em tipos. 227 00:10:26,220 --> 00:10:29,160 E depois que ele armazena texto para a variável n. 228 00:10:29,160 --> 00:10:32,200 >> E agora eu poderia querer fazer algo como eu fiz semanas atrás, em como semana 229 00:10:32,200 --> 00:10:33,290 um da classe. 230 00:10:33,290 --> 00:10:36,600 Se n for maior do que zero, então, eu vou 231 00:10:36,600 --> 00:10:42,930 para emprestar sintaxe que acabamos de ver, print def, você escolheu um número positivo, 232 00:10:42,930 --> 00:10:44,360 n barra invertida. 233 00:10:44,360 --> 00:10:49,990 Else if n é igual a igual a zero, eu sou indo para ir em frente e dizer: print def, 234 00:10:49,990 --> 00:10:54,090 você pegou de zero barra invertida n. 235 00:10:54,090 --> 00:10:56,830 Senão, o caso deve é claro ser, print def, 236 00:10:56,830 --> 00:10:58,620 você escolheu um número negativo. 237 00:10:58,620 --> 00:11:00,970 >> E certamente podemos implementar a lógica dessa coisa 238 00:11:00,970 --> 00:11:03,390 em um monte de diferentes maneiras, mas o ponto aqui 239 00:11:03,390 --> 00:11:07,210 é que sintacticamente, quase nada é novo. 240 00:11:07,210 --> 00:11:09,830 É apenas o sinal de dólar e uma nova função e linha de ler. 241 00:11:09,830 --> 00:11:12,090 Mas, fundamentalmente, o que há de novo Agora é que eu estou interpretando isso. 242 00:11:12,090 --> 00:11:13,910 Eu estou passando como entrada para outro programa. 243 00:11:13,910 --> 00:11:16,620 Então, se eu quiser executar isso, se Eu não cometer erros, 244 00:11:16,620 --> 00:11:20,140 Eu estou indo para executar PHP, de 1 ponto condições PHP, entrar, 245 00:11:20,140 --> 00:11:23,440 Eu estou indo para digitar o número 50, e vamos assumir por agora ele funciona. 246 00:11:23,440 --> 00:11:25,940 Uma vez que a lógica é a mesmo material que uma semana. 247 00:11:25,940 --> 00:11:28,020 >> Tudo bem, então isso é muito underwhelming, certo? 248 00:11:28,020 --> 00:11:30,240 Nós poderíamos fazer isso em qualquer número de línguas. 249 00:11:30,240 --> 00:11:33,200 Vamos fazer algo muito mais poderoso. 250 00:11:33,200 --> 00:11:35,610 Vamos problema acabamento definir cinco. 251 00:11:35,610 --> 00:11:37,370 Então, eu estou indo para ir em frente e fazer isso. 252 00:11:37,370 --> 00:11:42,920 Eu estou indo para criar um arquivo chamado dicionário dot PHP, 253 00:11:42,920 --> 00:11:45,424 e inclinado como você pode ser scramble para baixo lotes de notas, 254 00:11:45,424 --> 00:11:47,340 as notas só irá ajudá- se você está permitido 255 00:11:47,340 --> 00:11:48,923 para implementar problemas definir cinco em PHP. 256 00:11:48,923 --> 00:11:52,706 Mas vamos ver o quão rápido agora nós pode implementar esse mesmo conjunto de problemas. 257 00:11:52,706 --> 00:11:56,830 >> Então no dicionário dot PHP, eu vou assumir que já existe 258 00:11:56,830 --> 00:11:58,514 um arquivo no mundo chamado ortográfico. 259 00:11:58,514 --> 00:12:01,430 E, de fato, eu fiz isso com antecedência, e não vamos andar por esta linha 260 00:12:01,430 --> 00:12:03,596 por linha, mas se você estiver Curioso quer mais tarde e realmente 261 00:12:03,596 --> 00:12:06,250 para envolver sua mente em torno do diferenças entre C e PHP, 262 00:12:06,250 --> 00:12:09,030 literalmente comparar esse arquivo, Speller, a partir do código fonte de hoje 263 00:12:09,030 --> 00:12:11,190 que vou postar mais tarde hoje, contra p set 264 00:12:11,190 --> 00:12:15,309 cinco ortográfico ponto c que nós damos-lhe, e é quase a mesma linha por linha. 265 00:12:15,309 --> 00:12:16,600 Há mais alguns cifrões. 266 00:12:16,600 --> 00:12:18,330 Algumas funções são um pouco diferente. 267 00:12:18,330 --> 00:12:20,038 Mas é uma boa forma de sorte de ver como 268 00:12:20,038 --> 00:12:22,740 você traduzir de uma língua para outra. 269 00:12:22,740 --> 00:12:24,812 E é quase idêntico linha para linha. 270 00:12:24,812 --> 00:12:27,770 Mas eu estou indo supor que essa existe, eo que eu vou fazer aqui 271 00:12:27,770 --> 00:12:31,310 é tentar explodir o seu mente por reimplementar 272 00:12:31,310 --> 00:12:36,210 a totalidade do problema ajustou cinco maneira mais rápido do que você tem feito até agora. 273 00:12:36,210 --> 00:12:39,330 Assim, por exemplo, eu vou primeiro declarar uma variável global chamada size, 274 00:12:39,330 --> 00:12:40,444 e configurá-lo igual a zero. 275 00:12:40,444 --> 00:12:41,610 Agora isso não é muita economia. 276 00:12:41,610 --> 00:12:44,170 As probabilidades são que você implementou tamanho praticamente o mesmo, 277 00:12:44,170 --> 00:12:48,440 ou dica dica, vai esta noite ou amanhã, apenas usando uma variável global chamada 278 00:12:48,440 --> 00:12:49,900 tamanho, e defini-la igual a zero. 279 00:12:49,900 --> 00:12:52,660 Isso não é um particularmente Spoiler incrível. 280 00:12:52,660 --> 00:12:57,180 >> Então, quais foram os seus dados estruturas de escolha, aqueles de vocês que mergulharam em 281 00:12:57,180 --> 00:13:02,170 e ler a especificação, estruturas de dados que ter a maioria de vocês têm vindo a utilizar? 282 00:13:02,170 --> 00:13:06,840 Uma tabela ou tentar, talvez algumas variantes. 283 00:13:06,840 --> 00:13:10,490 Assim, a implementação de uma tabela hash, pelo menos, é uma espécie de um monte de linhas de código, 284 00:13:10,490 --> 00:13:10,990 certo? 285 00:13:10,990 --> 00:13:13,700 E nem todos eles pode ser funcional neste momento na semana, 286 00:13:13,700 --> 00:13:14,366 mas isso é bom. 287 00:13:14,366 --> 00:13:19,300 Porque em PHP, se eu quer uma tabela hash, feito. 288 00:13:19,300 --> 00:13:20,260 Certo? 289 00:13:20,260 --> 00:13:22,610 Então, essa variável que eu tenho apenas declarado é, obviamente, 290 00:13:22,610 --> 00:13:26,180 chamada tabela sinal de dólar, por a introdução antes. 291 00:13:26,180 --> 00:13:28,902 >> Mas eu realmente só quero, pelo no final do dia, uma matriz. 292 00:13:28,902 --> 00:13:31,610 Mas não um indexado numericamente array, porque isso é como duas semanas 293 00:13:31,610 --> 00:13:33,440 material, quando falamos sobre matrizes. 294 00:13:33,440 --> 00:13:34,850 Eu quero uma tabela hash. 295 00:13:34,850 --> 00:13:38,070 Mas uma tabela hash é realmente apenas uma maneira concreta de dizer: 296 00:13:38,070 --> 00:13:40,190 você quer uma matriz associativa. 297 00:13:40,190 --> 00:13:43,270 Você quer ser capaz de chaves associadas com valores. 298 00:13:43,270 --> 00:13:44,200 Chaves com valores. 299 00:13:44,200 --> 00:13:45,640 O que é um dicionário, realmente? 300 00:13:45,640 --> 00:13:47,080 Bem, é um monte de chaves. 301 00:13:47,080 --> 00:13:50,320 Palavras como maçã, pêra e banana, e todas estas palavras inglesas 302 00:13:50,320 --> 00:13:51,490 que entregar-lhe. 303 00:13:51,490 --> 00:13:54,820 >> E os valores que você está efetivamente inserir em seu dicionário 304 00:13:54,820 --> 00:13:57,790 ou são verdadeiras, ou a ausência, false. 305 00:13:57,790 --> 00:14:00,540 Em outras palavras, você está inserindo um monte de pares de valores-chave, 306 00:14:00,540 --> 00:14:03,720 maçã, verdade, pera, verdadeira, banana, é verdade. 307 00:14:03,720 --> 00:14:07,446 De modo que quando você recuperar ou olhar -se que os dados em sua tabela hash 308 00:14:07,446 --> 00:14:10,070 com a sua função de verificação, você é quer receber de volta uma resposta, 309 00:14:10,070 --> 00:14:13,260 sim, eu encontrei em meu complexo hash de tabela, ou não, ele não está lá, 310 00:14:13,260 --> 00:14:14,540 assim que você retornar falso. 311 00:14:14,540 --> 00:14:19,440 >> Então, para fazer isso, tudo que eu preciso é o de dados estrutura como propus antes. 312 00:14:19,440 --> 00:14:22,050 Eu só preciso ser capaz associar palavras 313 00:14:22,050 --> 00:14:25,570 como, entre aspas, símbolo, com um valor como, é verdade. 314 00:14:25,570 --> 00:14:27,090 Portanto, há a minha tabela de hash. 315 00:14:27,090 --> 00:14:28,180 Vamos realmente usá-lo. 316 00:14:28,180 --> 00:14:30,310 Portanto, há algumas funções Eu preciso implementar. 317 00:14:30,310 --> 00:14:33,300 Eu estou indo para ir em frente e morder fora de um tamanho função chamada. 318 00:14:33,300 --> 00:14:34,390 Ele não tem argumentos. 319 00:14:34,390 --> 00:14:36,660 Não tem que se preocupar com a palavra, vazio, em PHP. 320 00:14:36,660 --> 00:14:38,770 Eu estou indo simplesmente para retornar tamanho. 321 00:14:38,770 --> 00:14:41,287 >> E como um aparte, PHP tem esse detalhe minorly irritante, 322 00:14:41,287 --> 00:14:44,620 onde se algo é global, você tem que dizer a função em que você estiver usando 323 00:14:44,620 --> 00:14:46,220 que, hey, essa é uma variável global. 324 00:14:46,220 --> 00:14:49,330 Então, menor estupidez, mas você tem que fazê-lo, no entanto. 325 00:14:49,330 --> 00:14:50,920 >> Assim que sobre carga? 326 00:14:50,920 --> 00:14:52,990 Eu estou indo para implementar uma carga função chamada 327 00:14:52,990 --> 00:14:56,790 que leva, em nome de um dicionário, assim como no problema ajustou cinco. 328 00:14:56,790 --> 00:14:59,554 E antes de prosseguir, notar que eu não tenho 329 00:14:59,554 --> 00:15:00,970 foi bastante digitando as mesmas coisas. 330 00:15:00,970 --> 00:15:06,060 O que é obviamente diferente em PHP sobre como você declarar uma função contra C? 331 00:15:06,060 --> 00:15:06,616 Sim. 332 00:15:06,616 --> 00:15:07,490 AUDIÊNCIA: [inaudível] 333 00:15:07,490 --> 00:15:08,573 COLUNA 1: Nenhum tipo de retorno. 334 00:15:08,573 --> 00:15:12,350 E, de fato, esse é o caso, PHP na medida em que está vagamente digitado, 335 00:15:12,350 --> 00:15:14,190 Também é um pouco desleixado nesse sentido. 336 00:15:14,190 --> 00:15:17,680 Você não especificar como o programador o que esta função retorna. 337 00:15:17,680 --> 00:15:20,490 Você teria que realmente olhar no código para descobrir isso. 338 00:15:20,490 --> 00:15:22,670 Ou ler os comentários ou a documentação. 339 00:15:22,670 --> 00:15:24,870 Então prós e contras de estes tipos de decisões. 340 00:15:24,870 --> 00:15:26,750 Mas eu tenho que dizer a palavra-chave, a função. 341 00:15:26,750 --> 00:15:28,360 E quando aprendemos JavaScript em algumas semanas 342 00:15:28,360 --> 00:15:31,026 vamos ver a mesma coisa novamente, mas é a mesma idéia. 343 00:15:31,026 --> 00:15:34,220 O nome da função, o seu argumento ou argumentos ou a falta dela, e agora 344 00:15:34,220 --> 00:15:35,630 aqui é a implementação. 345 00:15:35,630 --> 00:15:38,860 >> Então eu vou cortar alguns cantos apenas para ser dramático por apenas um momento. 346 00:15:38,860 --> 00:15:40,485 Mas eu estou indo para ir em frente e dizer isso. 347 00:15:40,485 --> 00:15:44,890 Isto é como eu pode carregar um arquivo em um array. 348 00:15:44,890 --> 00:15:47,580 Há uma função em PHP chamado arquivo. 349 00:15:47,580 --> 00:15:49,300 Você entregá-lo o nome de um arquivo. 350 00:15:49,300 --> 00:15:53,950 Ele entrega-lhe de volta uma matriz, dentro de que é cada linha do arquivo. 351 00:15:53,950 --> 00:15:56,480 A partir de zero, um, no máximo a n menos 1 linhas. 352 00:15:56,480 --> 00:15:57,210 É isso aí, certo? 353 00:15:57,210 --> 00:15:57,990 Não há nenhuma f leitura. 354 00:15:57,990 --> 00:15:58,826 Não há nenhuma f get s. 355 00:15:58,826 --> 00:15:59,700 Não há por cento s. 356 00:15:59,700 --> 00:16:00,420 Não há dores de cabeça. 357 00:16:00,420 --> 00:16:01,220 Não há nenhuma feof. 358 00:16:01,220 --> 00:16:03,950 Todo esse material com o qual você foi lutar talvez, 359 00:16:03,950 --> 00:16:06,550 com p definir quatro e cinco, vai embora. 360 00:16:06,550 --> 00:16:09,450 >> Então, eu só ler essas linhas em o arquivo e, em seguida, você sabe o quê? 361 00:16:09,450 --> 00:16:15,510 Se eu quero iterar sobre essas palavras, Eu posso fazer, para cada um linhas como linha. 362 00:16:15,510 --> 00:16:19,992 Lembre-se que esta era uma espécie de inteligente caminho de iteração sobre uma matriz, índice 363 00:16:19,992 --> 00:16:25,090 pelo índice, e em cada chamada iteração a linha atual, linha sinal de dólar. 364 00:16:25,090 --> 00:16:31,560 E aqui eu estou indo para ir e dizer tabela, suporte, linha, fica verdadeiro. 365 00:16:31,560 --> 00:16:35,880 >> Em outras palavras, é assim que eu inserir em minha tabela hash em PHP. 366 00:16:35,880 --> 00:16:38,740 Eu digo tabela sinal de dólar, o que é a minha matriz associativa que foi 367 00:16:38,740 --> 00:16:40,690 vazio por a linha de código em cima. 368 00:16:40,690 --> 00:16:42,790 Então eu índice para ele não, utilizando um número, 369 00:16:42,790 --> 00:16:45,300 mas utilizando o literalmente palavra-chave que me interessa. 370 00:16:45,300 --> 00:16:47,730 Talvez seja a maçã ou pêra ou banana ou qualquer outra coisa, 371 00:16:47,730 --> 00:16:51,645 mas especificamente Estou indexação para ele como se eu proposto anteriormente. 372 00:16:51,645 --> 00:16:53,770 Eu tomo o nome do meu matriz associativa, e então eu 373 00:16:53,770 --> 00:16:56,450 usar entre aspas no colchetes com uma corda, 374 00:16:56,450 --> 00:16:58,490 em vez de um número real. 375 00:16:58,490 --> 00:17:00,250 >> E então é isso. 376 00:17:00,250 --> 00:17:01,720 A função de carga é feito. 377 00:17:01,720 --> 00:17:05,119 Uma vez que loop for, eu coloquei tudo na tabela de hash. 378 00:17:05,119 --> 00:17:07,810 Agora pequeno aviso legal, há uma algumas coisas que eu não precisam de correção. 379 00:17:07,810 --> 00:17:10,030 E a versão Vou postar on-line terá todas as nuances, 380 00:17:10,030 --> 00:17:12,670 mas é na maior parte apenas vai ser alguma verificação de erros e alguns pequenos ajustes. 381 00:17:12,670 --> 00:17:14,044 Mas isso é de fato a essência dele. 382 00:17:14,044 --> 00:17:16,750 Se eu agora quero implementar a função chamada 383 00:17:16,750 --> 00:17:19,869 verificar, que espera um palavra como seu argumento, 384 00:17:19,869 --> 00:17:22,099 como eu poderia ir sobre como fazer isso? 385 00:17:22,099 --> 00:17:30,020 Bem, eu estou indo simplesmente para dizer que, se dentro da minha mesa, a palavra de localização, 386 00:17:30,020 --> 00:17:30,652 Se estiver definido. 387 00:17:30,652 --> 00:17:32,360 Assim, se houver é-- na verdade, você sabe o quê? 388 00:17:32,360 --> 00:17:34,830 Eu vou fazê-lo em um pouco de pseudocódigo. 389 00:17:34,830 --> 00:17:36,020 Mas a ideia é a mesma. 390 00:17:36,020 --> 00:17:41,640 Se isso for igual a true, retorna true. 391 00:17:41,640 --> 00:17:43,890 Tudo certo. 392 00:17:43,890 --> 00:17:46,851 Else-- você pode tipo de ver onde este é going-- para retornar falso. 393 00:17:46,851 --> 00:17:47,350 Feito. 394 00:17:47,350 --> 00:17:49,640 Verificação é feita. 395 00:17:49,640 --> 00:17:50,940 >> Pretty nice, certo? 396 00:17:50,940 --> 00:17:52,560 E então o que é isso realmente chegar? 397 00:17:52,560 --> 00:17:53,680 E isso também, eu cortar alguns cantos. 398 00:17:53,680 --> 00:17:56,020 Olhe para a versão on-line para todas as ligeiras diferenças. 399 00:17:56,020 --> 00:17:57,103 Mas essa é a essência dele. 400 00:17:57,103 --> 00:17:59,080 Índice em seu matriz associativa, a.k.a. 401 00:17:59,080 --> 00:18:02,910 Tabela hash, ver se há um valor lá, se ele é definido como verdadeiro, e se assim for, 402 00:18:02,910 --> 00:18:03,930 return true. 403 00:18:03,930 --> 00:18:05,819 Então, nós temos reduzidos toda a complexidade. 404 00:18:05,819 --> 00:18:07,110 Assim, tipo de sopro da mente, certo? 405 00:18:07,110 --> 00:18:09,680 Eu não vou incomodar terminá-lo com descarga, porque em fact-- oh, você sabe o quê? 406 00:18:09,680 --> 00:18:11,620 Sim, vamos terminá-lo com descarga. 407 00:18:11,620 --> 00:18:18,940 >> Descarregar em uma tabela hash pode parecer como função de descarregamento, o retorno. 408 00:18:18,940 --> 00:18:19,930 OK assim que é de descarregamento. 409 00:18:19,930 --> 00:18:21,350 Porque não há nada para descarregar, certo? 410 00:18:21,350 --> 00:18:22,170 Não há nenhuma malloc. 411 00:18:22,170 --> 00:18:24,280 Eu não explicitamente pedir ao sistema operacional para qualquer coisa. 412 00:18:24,280 --> 00:18:25,571 Eu só comecei a usar variáveis. 413 00:18:25,571 --> 00:18:30,510 E assim isso também é uma manifestação de características de linguagens de alto nível. 414 00:18:30,510 --> 00:18:32,940 Então, novamente, a maior parte desse prazo temos lidado aqui 415 00:18:32,940 --> 00:18:34,280 com C. Super baixo nível. 416 00:18:34,280 --> 00:18:35,980 Você pode ver a memória do computador. 417 00:18:35,980 --> 00:18:38,440 Você pode tocar em qualquer coisa que você quer na memória RAM do seu computador, 418 00:18:38,440 --> 00:18:39,440 por bem ou por mal. 419 00:18:39,440 --> 00:18:41,760 >> Até aqui, nós vamos a dar-se esse poder. 420 00:18:41,760 --> 00:18:44,730 Mas, meu Deus, olha como muito menos código que eu escrevi. 421 00:18:44,730 --> 00:18:47,660 Na verdade, se eu não estava falando e falando sobre a minha digitação, 422 00:18:47,660 --> 00:18:50,190 que teria sido feito com Neste exemplo há cinco minutos. 423 00:18:50,190 --> 00:18:52,150 Então o que é o preço a ser pago? 424 00:18:52,150 --> 00:18:54,100 Bem, vamos dar uma olhada. 425 00:18:54,100 --> 00:18:55,340 Vamos dar uma olhada. 426 00:18:55,340 --> 00:18:59,340 Eu estou indo para ir em frente e correr CS50. 427 00:18:59,340 --> 00:19:02,160 Deixe-me ir primeiro em exemplos de hoje onde 428 00:19:02,160 --> 00:19:03,970 Eu tenho o diretório textos como antes. 429 00:19:03,970 --> 00:19:08,520 Eu estou indo para executar a solução que ele vem com problema ajustou cinco chamado 430 00:19:08,520 --> 00:19:11,190 Speller, que está na conta do CS50. 431 00:19:11,190 --> 00:19:14,040 >> E eu estou indo para executá-lo em algo grande como a Bíblia King James, 432 00:19:14,040 --> 00:19:16,547 apenas para que possamos realmente colocar o soluções do pessoal para o teste. 433 00:19:16,547 --> 00:19:19,130 Agora, por vezes, a internet é um pouco mais lento, um pouco mais rápido, 434 00:19:19,130 --> 00:19:20,338 Pode demorar um pouco para se deslocar. 435 00:19:20,338 --> 00:19:23,730 Mas levou um total de .56 segundos corrigir a ortografia da King James 436 00:19:23,730 --> 00:19:25,150 Bíblia usando a solução de equipe. 437 00:19:25,150 --> 00:19:25,620 Então, muito bom. 438 00:19:25,620 --> 00:19:27,786 O seu pode ser muito mais lento, e isso é totalmente bom. 439 00:19:27,786 --> 00:19:30,090 Mas é correto aqui. 440 00:19:30,090 --> 00:19:32,440 Então essa é a solução equipe. 441 00:19:32,440 --> 00:19:34,785 Se eu entrar e limpar a versão do PHP. 442 00:19:34,785 --> 00:19:36,990 E eu vou fazer um pouco como fermento espetáculo coisa. 443 00:19:36,990 --> 00:19:39,720 Nós vamos pegar o código que eu escrevi antes, por isso é perfeitamente correta. 444 00:19:39,720 --> 00:19:42,678 Porque o código que eu escrevi não vai para ser perfeitamente correto apenas agora. 445 00:19:42,678 --> 00:19:47,310 Mas se eu executar a versão do PHP, o que eu tenho que desistir de hoje? 446 00:19:47,310 --> 00:19:49,980 Levei cinco minutos para implementar p ajustou cinco, eu afirmo. 447 00:19:49,980 --> 00:19:51,770 Qual o preço que eu pago? 448 00:19:51,770 --> 00:19:52,270 Sim. 449 00:19:52,270 --> 00:19:52,937 >> AUDIÊNCIA: Speed. 450 00:19:52,937 --> 00:19:53,645 COLUNA 1: Speed. 451 00:19:53,645 --> 00:19:54,380 O que você quer dizer? 452 00:19:54,380 --> 00:19:55,230 >> AUDIÊNCIA: Vai levar mais tempo. 453 00:19:55,230 --> 00:19:55,660 >> COLUNA 1: Tudo bem. 454 00:19:55,660 --> 00:19:56,160 Vamos ver. 455 00:19:56,160 --> 00:19:59,590 Vai demorar mais tempo, não escrever, mas para executá-lo. 456 00:19:59,590 --> 00:20:00,090 Sim. 457 00:20:00,090 --> 00:20:00,960 Então, vamos tentar isso. 458 00:20:00,960 --> 00:20:05,720 Então aqui eu estou indo para ir em frente e fazer PHP do speller, e porque o arquivo de 459 00:20:05,720 --> 00:20:06,360 chamado ortográfico. 460 00:20:06,360 --> 00:20:07,580 Então eu não estou correndo o dicionário, recall, 461 00:20:07,580 --> 00:20:09,204 Estou executando o programa chamado ortográfico. 462 00:20:09,204 --> 00:20:12,450 Eu vou passar na mesma arquivo, King James o quinto. 463 00:20:12,450 --> 00:20:14,377 Ele está voando. 464 00:20:14,377 --> 00:20:17,210 Este poderia ser apenas velocidade à Internet, por isso não ler muito para isso. 465 00:20:17,210 --> 00:20:21,680 Mas ele se sente mais com certeza. 466 00:20:21,680 --> 00:20:23,280 1,26 segundos. 467 00:20:23,280 --> 00:20:25,150 >> Agora que ainda é muito maldito rápido, certo? 468 00:20:25,150 --> 00:20:28,140 E a única razão que me senti como mais como três, ou quatro, ou cinco 469 00:20:28,140 --> 00:20:30,515 segundo, isso é só porque a internet estava sendo lento. 470 00:20:30,515 --> 00:20:33,980 O tempo de computador passado foi de 1,26 segundo, contra Acho 0,56. 471 00:20:33,980 --> 00:20:35,880 Assim, mais do que duas vezes mais lenta. 472 00:20:35,880 --> 00:20:39,170 Agora que ainda é muito danado rápido, mas é uma manifestação 473 00:20:39,170 --> 00:20:40,860 de fato, esse preço exato. 474 00:20:40,860 --> 00:20:43,460 >> Porque nós estamos interpretando no código linha por linha, 475 00:20:43,460 --> 00:20:46,740 e esse programa PHP é ler o meu top código para baixo, da esquerda para a direita, 476 00:20:46,740 --> 00:20:47,940 ele tem que fazer mais do pensamento. 477 00:20:47,940 --> 00:20:50,430 Tem que tipo de converter -lo dentro da própria 478 00:20:50,430 --> 00:20:53,464 correspondente à máquina código em tempo real, por assim dizer, 479 00:20:53,464 --> 00:20:55,380 embora os mecanismos são um pouco diferentes. 480 00:20:55,380 --> 00:20:59,430 Em vez de apenas para alimentar o Intel CPU os zeros e uns matérias- 481 00:20:59,430 --> 00:21:00,930 que entende nativamente. 482 00:21:00,930 --> 00:21:04,110 >> Então, absolutamente, mãos para baixo, nós pagamos um preço. 483 00:21:04,110 --> 00:21:09,120 E código escrito em uma linguagem como PHP tende a ser mais lento. 484 00:21:09,120 --> 00:21:10,050 Mas meu deus. 485 00:21:10,050 --> 00:21:12,740 Então agora quando eu soletrar verificar o meu arquivo, eu gastar um extra de 0,7 486 00:21:12,740 --> 00:21:17,280 ou então segundos vs 20 horas para implementar um corretor ortográfico mais rápido, certo? 487 00:21:17,280 --> 00:21:18,397 É uma espécie de um trade-off. 488 00:21:18,397 --> 00:21:20,980 E se você está apenas começando p definir cinco, pode não ser de 20 horas. 489 00:21:20,980 --> 00:21:22,188 Pode ser muito menos do que isso. 490 00:21:22,188 --> 00:21:23,600 Mas é um trade-off, de verdade. 491 00:21:23,600 --> 00:21:27,820 E se você estiver executando o código em realmente grande conjuntos de dados, ou mesmo em hardware mais antigo, 492 00:21:27,820 --> 00:21:32,650 esses tipos de diferenças certamente pode somar. 493 00:21:32,650 --> 00:21:34,880 >> Quaisquer perguntas até agora? 494 00:21:34,880 --> 00:21:35,617 Sim. 495 00:21:35,617 --> 00:21:36,492 >> AUDIÊNCIA: [inaudível] 496 00:21:36,492 --> 00:21:38,187 497 00:21:38,187 --> 00:21:39,978 COLUNA 1: Desculpe, pode você dizer isso mais uma vez? 498 00:21:39,978 --> 00:21:40,853 AUDIÊNCIA: [inaudível] 499 00:21:40,853 --> 00:21:43,326 500 00:21:43,326 --> 00:21:44,700 COLUNA 1: Você está dando-se tempo. 501 00:21:44,700 --> 00:21:45,283 Bem, então sim. 502 00:21:45,283 --> 00:21:47,322 Está a poupar tempo, não ter de compilá-lo, 503 00:21:47,322 --> 00:21:48,530 se é isso que você está perguntando. 504 00:21:48,530 --> 00:21:50,710 E, de fato, em CS50, a maioria dos programas, 505 00:21:50,710 --> 00:21:53,668 mesmo que pode demorar um pouco para escrever, eles são relativamente curto. 506 00:21:53,668 --> 00:21:56,860 Algumas dezenas, algumas centenas de linhas de código, e assim eles compilar muito rapidamente. 507 00:21:56,860 --> 00:21:58,470 Mas quando você começa escrever programas maiores, 508 00:21:58,470 --> 00:22:01,511 como se você for Microsoft ou se você estiver Google e escrever realmente grandes programas 509 00:22:01,511 --> 00:22:05,360 em C, ou C ++ ou semelhante compilado línguas, poderia levar muitos segundos, 510 00:22:05,360 --> 00:22:08,577 ou mesmo minutos ou mais para compilar milhões de linhas de código. 511 00:22:08,577 --> 00:22:10,660 E há também, que diferença vai somar. 512 00:22:10,660 --> 00:22:12,840 >> E, de fato, uma vez que hoje transição, mesmo dia 513 00:22:12,840 --> 00:22:15,910 hoje, para programação web utilizando PHP, você é 514 00:22:15,910 --> 00:22:18,460 indo encontrá-lo apenas tanto mais agradável para escrever código 515 00:22:18,460 --> 00:22:21,501 quando você não tem que fazer estes estúpidos medidas como a mudança para o seu terminal 516 00:22:21,501 --> 00:22:24,202 janela, tipo de make Olá, re executá-lo, recarregar a janela. 517 00:22:24,202 --> 00:22:25,910 Apenas tantos estúpido etapas que mecânicos 518 00:22:25,910 --> 00:22:28,480 apenas ficar no caminho de fazer o interessante, o trabalho divertido. 519 00:22:28,480 --> 00:22:31,450 E, de fato nós jogar isso fora com PHP. 520 00:22:31,450 --> 00:22:34,960 E nós podemos interagir com mais rapidamente. 521 00:22:34,960 --> 00:22:35,495 Sim. 522 00:22:35,495 --> 00:22:36,370 AUDIÊNCIA: [inaudível] 523 00:22:36,370 --> 00:22:40,294 524 00:22:40,294 --> 00:22:40,960 COLUNA 1: Claro. 525 00:22:40,960 --> 00:22:42,876 Posso esclarecer o que significa ser interpretado? 526 00:22:42,876 --> 00:22:45,870 Quando você compilar uma linguagem como C, ele vai para baixo 527 00:22:45,870 --> 00:22:48,140 como dissemos à máquina código, zeros e uns. 528 00:22:48,140 --> 00:22:51,860 E a Intel decidiu anos atrás, que certos padrões de zeros e uns 529 00:22:51,860 --> 00:22:56,220 representam disso, ou subtração, ou impressão, ou outras operações básicas. 530 00:22:56,220 --> 00:23:00,250 No mundo de uma linguagem interpretada como PHP ou JavaScript, ou Python, 531 00:23:00,250 --> 00:23:03,120 ou Ruby, ou cachos de outros, em vez alguém 532 00:23:03,120 --> 00:23:05,120 escreveu um interpreter-- neste caso, 533 00:23:05,120 --> 00:23:09,770 É também chamado de PHP, idêntico ao Nome do language-- que, essencialmente, 534 00:23:09,770 --> 00:23:13,840 tem um grande laço nele que itera ao longo de todas as linhas do código 535 00:23:13,840 --> 00:23:18,170 que eu alimentá-lo como entrada, como Olá dot PHP, ou dicionário dot PHP. 536 00:23:18,170 --> 00:23:21,760 >> E então você pode pensar em sua grande laço como tendo uma série de condições. 537 00:23:21,760 --> 00:23:26,340 E essas condições dizer, se o humano tem escrito a palavra-chave para, 538 00:23:26,340 --> 00:23:28,470 começar a fazer o seu código de novo e de novo. 539 00:23:28,470 --> 00:23:31,360 Ou se o humano tem escrito a linha de código, 540 00:23:31,360 --> 00:23:34,880 se, apenas a executar a sua próxima linha condicionalmente. 541 00:23:34,880 --> 00:23:37,740 Então, é realmente como interpretar em um sentido humano, linha 542 00:23:37,740 --> 00:23:39,660 por linha, e que apenas leva tempo. 543 00:23:39,660 --> 00:23:41,340 Leva sobrecarga. 544 00:23:41,340 --> 00:23:44,189 E o que é um preço-- boa question-- nós pagamos. 545 00:23:44,189 --> 00:23:46,480 Então vamos fazer outra demo isso é um pouco mais dramático. 546 00:23:46,480 --> 00:23:51,160 Há, eu diria, um estádio isto em 90% de probabilidade de falhar horrivelmente, 547 00:23:51,160 --> 00:23:53,869 mas você vai se surpreender com 10% de probabilidade. 548 00:23:53,869 --> 00:23:55,660 Assim, a cada ano nós tentamos para fazer isso, pelo qual 549 00:23:55,660 --> 00:23:59,061 tentar escrever um programa que passa por conjunto de problemas zero, para as quais você tem 550 00:23:59,061 --> 00:24:02,060 apresentados os números de telefone e um monte de outras informações demográficas, 551 00:24:02,060 --> 00:24:06,030 e nós programaticamente enviar-lhe uma mensagem de texto. 552 00:24:06,030 --> 00:24:08,540 E então o telefone de todos começa a apitar ou vibrando, 553 00:24:08,540 --> 00:24:11,460 e é apenas surpreendente, porque bem, olhar para o que os computadores podem fazer. 554 00:24:11,460 --> 00:24:13,840 >> Isso raramente funciona corretamente ao que parece, em grande parte, 555 00:24:13,840 --> 00:24:16,800 porque eu normalmente ficar na lista negra pelo Gmail ou algum outro serviço 556 00:24:16,800 --> 00:24:19,630 para realmente tentando fazer isso em escala. 557 00:24:19,630 --> 00:24:24,940 Mas engraçado é também, desde que Não temos todos aqui hoje, 558 00:24:24,940 --> 00:24:27,690 diversão fato a última vez que o tempo tentei isso há dois anos, 559 00:24:27,690 --> 00:24:30,870 Eu acho que eu escrevi um programa que se sentou em uma iteração de loop 560 00:24:30,870 --> 00:24:34,040 sobre todos os alunos da turma, e cada um deles uma mensagem de texto, 561 00:24:34,040 --> 00:24:37,534 e ele disse algo como: por que não está na aula? 562 00:24:37,534 --> 00:24:39,170 Amor, CS50 bot. 563 00:24:39,170 --> 00:24:42,580 >> Você não tem idéia de quantos se desculparam e e-mails espécie de dolorosas 564 00:24:42,580 --> 00:24:46,970 Recebi como resposta do n menos 100 pessoas que não estavam aqui 565 00:24:46,970 --> 00:24:47,960 aquele dia. 566 00:24:47,960 --> 00:24:52,116 E ainda mais engraçado, mais vergonhoso story-- você sabe, vamos colocá-lo lá fora. 567 00:24:52,116 --> 00:24:53,740 É já em vídeo de alguns anos atrás. 568 00:24:53,740 --> 00:24:56,810 Assim, em breve você vai ver-me escrever um loop for, em que 569 00:24:56,810 --> 00:25:00,640 é muito fácil escrever um bug em que para circuito, de tal modo que pela primeira vez 570 00:25:00,640 --> 00:25:02,800 através do laço, você enviar uma mensagem de texto. 571 00:25:02,800 --> 00:25:06,190 >> A segunda vez através do laço I deveria ter enviado mais uma mensagem de texto, 572 00:25:06,190 --> 00:25:08,250 e, em seguida, mais um texto mensagem, e mais um. 573 00:25:08,250 --> 00:25:11,490 Mas acontece que se você cometer um erro de digitação Durante a programação, às vezes você 574 00:25:11,490 --> 00:25:14,460 pode escrever programas que enviam um mensagem de texto, em seguida, duas mensagens de texto, 575 00:25:14,460 --> 00:25:18,742 em seguida, três mensagens de texto para todos que já recebeu uma mensagem de texto. 576 00:25:18,742 --> 00:25:21,450 E como você sabe, fazer alguma coisa, mais alguma coisa, algo mais, 577 00:25:21,450 --> 00:25:25,910 mais alguma coisa, é grande O de um lote de mensagens de texto, ou n ao quadrado, 578 00:25:25,910 --> 00:25:29,830 ou $ 0,10 em uma mensagem de texto, US $ 20.000. 579 00:25:29,830 --> 00:25:33,700 >> Felizmente eu pressione Control-C antes que aconteceu, mas eu devo pelo menos um 580 00:25:33,700 --> 00:25:37,550 de seus antecessores $ 20 para o 200 algumas mensagens de texto estranhas que, 581 00:25:37,550 --> 00:25:40,450 não só foi para o seu telefone, mas também era como um telefone flip mais velho 582 00:25:40,450 --> 00:25:43,520 por isso gostaria empurrado para fora de seu memória qualquer outro texto pessoal 583 00:25:43,520 --> 00:25:45,930 mensagem que ele tinha realmente chegado. 584 00:25:45,930 --> 00:25:49,250 Portanto, temos um objetivo hoje, para não fazer isso. 585 00:25:49,250 --> 00:25:50,620 Talvez ativar o modo avião. 586 00:25:50,620 --> 00:25:51,120 Tudo certo. 587 00:25:51,120 --> 00:25:56,590 Então, vamos entrar em um aqui callled-- programa 588 00:25:56,590 --> 00:25:59,060 que chamarei texto dot PHP. 589 00:25:59,060 --> 00:26:01,074 E com antecedência, eu tenho dois arquivos aqui. 590 00:26:01,074 --> 00:26:06,030 Eu fiz um arquivo para apenas pessoal, que tem todas as informações do pessoal, todos os nomes 591 00:26:06,030 --> 00:26:07,260 no site do curso. 592 00:26:07,260 --> 00:26:09,756 E então por enquanto eu só colocar alguns números falsos 555-1212. 593 00:26:09,756 --> 00:26:11,380 Assim, estes não seria realmente ir a qualquer lugar. 594 00:26:11,380 --> 00:26:15,140 Mas observe o interior deste arquivo CSV, que falamos brevemente antes 595 00:26:15,140 --> 00:26:16,540 no contexto de arquivo IO. 596 00:26:16,540 --> 00:26:18,730 >> O que é um arquivo CSV? 597 00:26:18,730 --> 00:26:19,970 Separados por vírgula variáveis. 598 00:26:19,970 --> 00:26:24,400 E isso é como uma espécie de muito banco de dados leve, se você quiser. 599 00:26:24,400 --> 00:26:28,650 Há uma espécie de tipo de quatro colunas neste arquivo, e não irregular, 600 00:26:28,650 --> 00:26:32,400 mas essencialmente as vírgulas representam colunas no arquivo. 601 00:26:32,400 --> 00:26:35,400 A primeira coluna é o TF ou o nome do CA. 602 00:26:35,400 --> 00:26:37,800 A segunda coluna é o seu sobrenome. 603 00:26:37,800 --> 00:26:39,820 Terceira coluna é o seu número de telefone. 604 00:26:39,820 --> 00:26:44,760 E quarta coluna aparentemente é-- quarta coluna é, aparentemente, o quê? 605 00:26:44,760 --> 00:26:45,870 OK, por isso é seu portador. 606 00:26:45,870 --> 00:26:47,180 Então, Verizon, ou Sprint, ou que não. 607 00:26:47,180 --> 00:26:48,620 E se eu misspoke anteriormente, CSV. 608 00:26:48,620 --> 00:26:51,800 Valores separados por vírgula CSV é aqui. 609 00:26:51,800 --> 00:26:54,260 >> Então, o que eu posso fazer com isso? 610 00:26:54,260 --> 00:26:56,940 Bem, este é apenas um arquivo de texto grande, e é uma espécie de muito tempo, certo? 611 00:26:56,940 --> 00:26:58,690 Como é que isto vai ser meio chato. 612 00:26:58,690 --> 00:27:03,510 E verifica-se, porém, que, se eu quiser enviar uma mensagem de texto para, vamos 613 00:27:03,510 --> 00:27:05,180 Alex dizer aqui. 614 00:27:05,180 --> 00:27:09,690 Deixe-me entrar em meu navegador e sair do modo de tela cheia 615 00:27:09,690 --> 00:27:11,660 só assim eu posso alternar. 616 00:27:11,660 --> 00:27:20,280 Acontece, vamos ver, se eu entrar aqui, e fazer login no Gmail, tudo bem. 617 00:27:20,280 --> 00:27:22,950 Não olhe para esta parte. 618 00:27:22,950 --> 00:27:23,880 Assim eu começo a ver. 619 00:27:23,880 --> 00:27:26,551 620 00:27:26,551 --> 00:27:28,800 é claro que o livestream pode ainda ver o que estou fazendo. 621 00:27:28,800 --> 00:27:29,360 Tudo certo. 622 00:27:29,360 --> 00:27:31,850 >> Então aqui é apenas com Gmail O relato de John Harvard. 623 00:27:31,850 --> 00:27:34,000 Então, se eu quiser enviar uma mensagem de texto para Alex, 624 00:27:34,000 --> 00:27:35,530 Eu posso, claro compor uma mensagem. 625 00:27:35,530 --> 00:27:38,410 E ao que parece, e eu tenho testei com Alex antes aqui, 626 00:27:38,410 --> 00:27:42,260 assim você pode acrescentar um certo domínio nomear para os números de telefone das pessoas, 627 00:27:42,260 --> 00:27:45,850 porque não existe no mundo coisas chamado de SMS para enviar e-mail gateways. 628 00:27:45,850 --> 00:27:50,000 Que é uma maneira elegante de dizer tudo de nós que têm telefones celulares que 629 00:27:50,000 --> 00:27:53,200 têm números de telefone, é claro, há provavelmente para a sua operadora, 630 00:27:53,200 --> 00:27:56,840 um sufixo como em certa Vtext.com para Verizon mensagem de texto 631 00:27:56,840 --> 00:28:00,320 dot com, que você pode acrescentar ao seu número de telefone pessoal próprio, e, em seguida, 632 00:28:00,320 --> 00:28:03,540 você ou amigos, ou seus pais podem texto que naquele endereço particular. 633 00:28:03,540 --> 00:28:07,380 >> E Verizon tem um servidor, um e-mail servidor, que ao receber este e-mail, 634 00:28:07,380 --> 00:28:11,180 olha para a parte numérica e, em seguida, usa qualquer magia especial indústria 635 00:28:11,180 --> 00:28:14,540 eles têm de realmente enviá-lo para fora sobre as ondas de rádio para o seu celular particular 636 00:28:14,540 --> 00:28:15,040 telefone. 637 00:28:15,040 --> 00:28:18,030 Agora, isso é bom porque eu não faço realmente sabe como enviar uma mensagem de texto 638 00:28:18,030 --> 00:28:20,460 ou escrever código ainda para o meu telefone celular, 639 00:28:20,460 --> 00:28:23,580 e você pode fazer exatamente isso para um projeto final, mas por enquanto tudo 640 00:28:23,580 --> 00:28:24,770 Eu tenho é o meu laptop aqui. 641 00:28:24,770 --> 00:28:29,830 Então, eu quero iterar que CSV arquivo, linha, por linha, por linha, por linha, 642 00:28:29,830 --> 00:28:35,160 agarrar cada um dos números de telefone do pessoal, e sua operadora e programaticamente, 643 00:28:35,160 --> 00:28:39,770 concatenar, ou seja, ligar o telefone número com o nome de domínio apropriado 644 00:28:39,770 --> 00:28:40,820 e, em seguida, enviar um e-mail. 645 00:28:40,820 --> 00:28:41,940 >> Então, isso é um monte de etapas. 646 00:28:41,940 --> 00:28:45,530 E boa sorte de fazer isso em C. É um pesadelo de uma situação 647 00:28:45,530 --> 00:28:48,350 para abrir um arquivo, lê-lo linha, por linha, por linha, como você 648 00:28:48,350 --> 00:28:51,100 estão vendo, ou pode ver em breve com conjunto de problemas cinco, se não 649 00:28:51,100 --> 00:28:53,560 problema definir quatro, e em seguida para concatenar dinamicamente 650 00:28:53,560 --> 00:28:57,020 duas cordas juntos, porque em C, a tomar duas cordas e combiná-los, 651 00:28:57,020 --> 00:29:00,900 o que você faz minimamente precisa fazer mais provável? 652 00:29:00,900 --> 00:29:03,020 Você precisa declarar mais memória, certo? 653 00:29:03,020 --> 00:29:04,710 E perguntar, malloc, posso ter mais memória? 654 00:29:04,710 --> 00:29:07,060 Portanto, posso colocar metade deste aqui, metade deste aqui. 655 00:29:07,060 --> 00:29:08,150 É apenas tantos passos. 656 00:29:08,150 --> 00:29:10,310 E por esse ponto que você perdeu interesse na pequena demonstração estúpida 657 00:29:10,310 --> 00:29:11,851 onde você faz telefone beep de todos. 658 00:29:11,851 --> 00:29:14,590 Vamos fazer esse tipo de PHP estilo, pelo qual apenas 659 00:29:14,590 --> 00:29:16,210 começar a utilizar mais do que pia da cozinha. 660 00:29:16,210 --> 00:29:18,050 >> E as idéias são fundamentalmente o mesmo, 661 00:29:18,050 --> 00:29:20,710 mas nós não temos que preocupar-se muito muito sobre esse nível inferior. 662 00:29:20,710 --> 00:29:22,950 Então vamos ver como eu poderia vai fazer sobre isso. 663 00:29:22,950 --> 00:29:26,664 E só assim que eu não faço repetir os erros do passado, 664 00:29:26,664 --> 00:29:28,330 Eu escrevi algumas notas para mim aqui. 665 00:29:28,330 --> 00:29:31,070 E vamos ver se consigo Caminhemos através de algumas das etapas fundamentais, 666 00:29:31,070 --> 00:29:33,861 e, em seguida, por causa do tempo nós vamos talvez alguns cantos cortados no final. 667 00:29:33,861 --> 00:29:38,007 Eu estou indo para ir em frente e fazer aberto suporte de PHP para começar este arquivo. 668 00:29:38,007 --> 00:29:39,590 E eu estou indo para ir em frente e fazer isso. 669 00:29:39,590 --> 00:29:41,490 Identificador de arquivo, como você vai em breve, na verdade, 670 00:29:41,490 --> 00:29:44,790 chama uma função chamada f aberto. 671 00:29:44,790 --> 00:29:46,280 E lembre-se isso abre um arquivo. 672 00:29:46,280 --> 00:29:48,800 E a citação, fecha aspas, r significa que, mais uma vez? 673 00:29:48,800 --> 00:29:49,800 Basta abri-lo para leitura. 674 00:29:49,800 --> 00:29:51,210 Agora em p conjunto para, você fez isso. 675 00:29:51,210 --> 00:29:54,500 E lidar poderia ser qualquer coisa, fu, bar, bas, qualquer nome de variável. 676 00:29:54,500 --> 00:29:57,470 Mas, geralmente, um computador cientista chamaria um arquivo aberto, 677 00:29:57,470 --> 00:30:00,962 dando-lhe um identificador de arquivo, algo para agarrar por assim dizer. 678 00:30:00,962 --> 00:30:02,670 Eu só vou fazer alguns verificação de erros. 679 00:30:02,670 --> 00:30:07,260 Portanto, se o identificador é falsa, assim como no C, eu vou fazer algo como: 680 00:30:07,260 --> 00:30:09,545 não pôde abrir arquivo, barra invertida n. 681 00:30:09,545 --> 00:30:11,420 E então eu só vou para ir em frente e sair. 682 00:30:11,420 --> 00:30:14,340 E verifica-se, em PHP, Eu não estou dentro de uma função. 683 00:30:14,340 --> 00:30:16,160 Não há nenhuma função principal aqui. 684 00:30:16,160 --> 00:30:17,450 Então eu não voltar, per se. 685 00:30:17,450 --> 00:30:18,120 Eu sair. 686 00:30:18,120 --> 00:30:19,619 Que é essencialmente a mesma coisa. 687 00:30:19,619 --> 00:30:22,510 E eu estou saindo com um y provavelmente. 688 00:30:22,510 --> 00:30:24,220 Uma significa apenas um erro de algum tipo. 689 00:30:24,220 --> 00:30:25,580 É diferente de zero, por isso é um erro. 690 00:30:25,580 --> 00:30:30,220 >> Tudo bem, então se eu estou aqui agora no meu programa eu abrir o arquivo. 691 00:30:30,220 --> 00:30:34,250 Eu estou indo para ir em frente e declarar uma matriz denominada endereços, 692 00:30:34,250 --> 00:30:38,610 e em C Eu teria que saber o tamanho da matriz de antecedência, certo? 693 00:30:38,610 --> 00:30:41,910 Ou eu teria de declarar esta é um ponteiro, e depois usar malloc. 694 00:30:41,910 --> 00:30:44,720 E, em seguida, cada vez que leio através de outra linha no arquivo, 695 00:30:44,720 --> 00:30:46,620 Eu estou indo a necessidade de malloc mais memória, malloc mais memória. 696 00:30:46,620 --> 00:30:47,703 Isso é uma dor no pescoço. 697 00:30:47,703 --> 00:30:50,950 E, felizmente, PHP e Ruby, e Python e JavaScript, que 698 00:30:50,950 --> 00:30:53,880 vai crescer suas matrizes para você automaticamente. 699 00:30:53,880 --> 00:30:54,830 Não mais malloc. 700 00:30:54,830 --> 00:30:56,227 Não há mais o gerenciamento de memória. 701 00:30:56,227 --> 00:30:57,560 O computador cuida disso. 702 00:30:57,560 --> 00:31:00,330 Mas o preço que você paga. 703 00:31:00,330 --> 00:31:01,350 É um pouco mais lento. 704 00:31:01,350 --> 00:31:03,190 E para um programa como este nós não vamos notar. 705 00:31:03,190 --> 00:31:04,720 Nós vamos enviar 100 mensagens de texto. 706 00:31:04,720 --> 00:31:06,136 Por exemplo, não vai sentir isso. 707 00:31:06,136 --> 00:31:08,430 É realmente só começa a importa idioma de sua escolha 708 00:31:08,430 --> 00:31:11,490 quando seus dados ou seus programas obter muito, muito considerável, 709 00:31:11,490 --> 00:31:14,120 como será o caso, de modo mais com nosso material baseado na web. 710 00:31:14,120 --> 00:31:15,450 >> Mas, por agora, vamos seguir em frente. 711 00:31:15,450 --> 00:31:20,120 Enquanto despeja há uma função em C chamada f obter CSV. 712 00:31:20,120 --> 00:31:24,570 Arquivo obter CSV, que leva um identificador de arquivo como argumento, 713 00:31:24,570 --> 00:31:28,810 e ele passa, em seguida, linha por linha, por linha, para ler em uma fileira. 714 00:31:28,810 --> 00:31:30,964 Então ele só lê uma linha de texto do arquivo. 715 00:31:30,964 --> 00:31:34,130 Mas o que é agradável sobre esta função, não apenas entregar-me uma linha de texto. 716 00:31:34,130 --> 00:31:37,320 Ele procura por essas vírgulas, e analisa a linha. 717 00:31:37,320 --> 00:31:41,740 E para analisar a linha significa dividir que em determinados valores neste contexto. 718 00:31:41,740 --> 00:31:45,510 >> Em outras palavras, o sinal de dólar linha é uma variável que é 719 00:31:45,510 --> 00:31:47,010 vai me dar um monte de índices. 720 00:31:47,010 --> 00:31:49,635 Este vai ser o primeira coluna na minha CSV. 721 00:31:49,635 --> 00:31:52,510 Este vai ser o segundo coluna, este vai ser o terceiro, 722 00:31:52,510 --> 00:31:53,968 e este vai ser o quarto. 723 00:31:53,968 --> 00:31:57,440 Porque recall, e não o Excel cooperar a última vez que fiz isso, 724 00:31:57,440 --> 00:32:03,350 mas se eu baixar equipe dot CSV. 725 00:32:03,350 --> 00:32:04,940 Opa, não renomear. 726 00:32:04,940 --> 00:32:09,120 Se eu baixar equipe dot CSV, e tente abri-la, 727 00:32:09,120 --> 00:32:12,510 Eu já registered-- oh I não fez a atualização Excel desde a última vez. 728 00:32:12,510 --> 00:32:15,880 Você vai ver que, em equipe dot CSV, eu tenho quatro colunas. 729 00:32:15,880 --> 00:32:18,720 Então, quando eu li no primeira linha para Abby aqui, 730 00:32:18,720 --> 00:32:23,582 dólar sinal linha 0 é Abby, dólar sinal de linha é Lyons, 731 00:32:23,582 --> 00:32:27,740 dólar sinal linha dois é o número dela, e, em seguida, portadora de seu telefone. 732 00:32:27,740 --> 00:32:28,410 >> Então, isso é tudo. 733 00:32:28,410 --> 00:32:30,740 E isso é bom, porque eu não tem que descobrir agora fora 734 00:32:30,740 --> 00:32:32,800 onde todos estes são realmente vírgulas. 735 00:32:32,800 --> 00:32:35,300 Então, eu estou indo para ir em frente e fazer isso, dado que a definição, 736 00:32:35,300 --> 00:32:38,960 Eu vou dizer que seu nome é em suporte de linha zero, como prometido. 737 00:32:38,960 --> 00:32:41,150 E eu vou grab-- e na verdade, você sabe o quê? 738 00:32:41,150 --> 00:32:42,780 Eu não estou indo para se preocupar o seu nome, neste caso. 739 00:32:42,780 --> 00:32:43,988 Eu vou mantê-lo simples. 740 00:32:43,988 --> 00:32:48,610 Eu vou fazer o seu número é em suporte de linha dois, eu acho. 741 00:32:48,610 --> 00:32:50,510 E seu portador estava em onde? 742 00:32:50,510 --> 00:32:53,405 Fileira de três andares,. 743 00:32:53,405 --> 00:32:54,280 Então, nada de novo lá. 744 00:32:54,280 --> 00:32:56,770 É apenas de zero a indexação em uma matriz. 745 00:32:56,770 --> 00:32:58,760 >> E agora, eu vou fazer o seguinte. 746 00:32:58,760 --> 00:33:03,930 Se o transportador é igual a igual a AT & T-- Eu só vou ter um loop-- 747 00:33:03,930 --> 00:33:06,790 Eu quero criar um e-mail endereço que se parece com isso. 748 00:33:06,790 --> 00:33:12,320 Vai ser 617-555-1212 no, o que é, text.ATT.net, 749 00:33:12,320 --> 00:33:13,490 é o que eu quero fazer. 750 00:33:13,490 --> 00:33:15,260 Então, como posso fazer isso? 751 00:33:15,260 --> 00:33:16,730 Eu vou fazer o seguinte. 752 00:33:16,730 --> 00:33:22,460 Seu endereço vai ser o seu número, e agora, deixe-me ir em frente e fazer isso. 753 00:33:22,460 --> 00:33:23,760 Esta é uma sintaxe descolados. 754 00:33:23,760 --> 00:33:27,250 Eu poderia fazer o truque por cento s, mas eu realmente pode apenas fazer isso. 755 00:33:27,250 --> 00:33:29,900 >> Então isso é uma coisa PHP, mas vamos considerar o que estou fazendo. 756 00:33:29,900 --> 00:33:31,630 Dólares assinar endereço em à esquerda, apenas uma variável. 757 00:33:31,630 --> 00:33:32,300 Dê-me uma variável. 758 00:33:32,300 --> 00:33:33,390 Eu não tenho para especificar o tipo. 759 00:33:33,390 --> 00:33:34,570 PHP vai descobrir isso. 760 00:33:34,570 --> 00:33:36,580 No lado direito, qual é o tipo de dados 761 00:33:36,580 --> 00:33:38,399 dessa coisa toda em do lado direito? 762 00:33:38,399 --> 00:33:40,190 Parece que uma string, porque não há duplo 763 00:33:40,190 --> 00:33:42,280 cita na extrema esquerda e extrema direita. 764 00:33:42,280 --> 00:33:44,210 Agora há alguns descolados nova sintaxe aqui. 765 00:33:44,210 --> 00:33:47,550 Há as chaves, eo número cifrão. 766 00:33:47,550 --> 00:33:52,860 Mas dê uma adivinhar o que é que a sintaxe provavelmente dizendo PHP para fazer por mim? 767 00:33:52,860 --> 00:33:53,360 Sim. 768 00:33:53,360 --> 00:33:54,630 Basta inserir o valor lá. 769 00:33:54,630 --> 00:33:55,530 Portanto, não por cento s. 770 00:33:55,530 --> 00:33:58,160 Nós poderíamos usar impressão f ou s f impressão ou algo parecido, 771 00:33:58,160 --> 00:34:00,070 mas PHP e um monte de linguagens de alto nível, 772 00:34:00,070 --> 00:34:03,070 você vai ver que você poderia fazer a mesma coisa funcionalmente, talvez 773 00:34:03,070 --> 00:34:04,019 seis maneiras diferentes. 774 00:34:04,019 --> 00:34:06,310 E assim começa a se tornar uma questão de projeto ou estilo. 775 00:34:06,310 --> 00:34:09,902 Portanto, esta é apenas uma maneira olhar enigmático de dizer, me dê um endereço de email, 776 00:34:09,902 --> 00:34:12,110 mas o plug-in em número entre essas chaves. 777 00:34:12,110 --> 00:34:15,440 E as chaves não vai acabar no endereço final. 778 00:34:15,440 --> 00:34:18,010 >> Agora podemos ignorar alguns dos estas linhas por causa do tempo. 779 00:34:18,010 --> 00:34:21,210 Assim, se um transportador é igual é igual a verHorizon-- whoops, 780 00:34:21,210 --> 00:34:24,989 Verizon-- eu quero fazer algo muito semelhante, onde o endereço fica, 781 00:34:24,989 --> 00:34:27,569 Citação, fecha aspas, número em text.ATT.net. 782 00:34:27,569 --> 00:34:30,380 783 00:34:30,380 --> 00:34:35,050 E então eu posso fazer o mesmo tipo de coisa para o resto das operadoras. 784 00:34:35,050 --> 00:34:37,090 Mas eu vou fazer ponto, ponto, ponto por agora. 785 00:34:37,090 --> 00:34:43,050 E agora vamos supor que Eu quero adicionar matriz, empurrar. 786 00:34:43,050 --> 00:34:45,969 Eu quero adicionar ao matriz, chamados de endereços. 787 00:34:45,969 --> 00:34:50,409 >> Este endereço, isto é como você acrescentar algo a uma matriz em PHP. 788 00:34:50,409 --> 00:34:51,610 Você não precisa fazer malloc. 789 00:34:51,610 --> 00:34:53,068 Você não tem para redimensionar a matriz. 790 00:34:53,068 --> 00:34:54,259 Você acabou de dizer matriz, empurrão. 791 00:34:54,259 --> 00:34:57,300 O que você quer para o conjunto push-- você quer empurrar algo sobre? 792 00:34:57,300 --> 00:34:58,000 Endereços. 793 00:34:58,000 --> 00:34:59,550 O que você quer empurrar para endereços? 794 00:34:59,550 --> 00:35:00,350 Endereço. 795 00:35:00,350 --> 00:35:02,430 E, de fato, se você realmente quer ser inteligente, 796 00:35:02,430 --> 00:35:05,610 um pouco de açúcar sintático para isso, por assim dizer, 797 00:35:05,610 --> 00:35:10,230 que significa apenas como você pode fazer isso no a maneira mais bonita, seria para fazer isso. 798 00:35:10,230 --> 00:35:14,060 Isto também tem o efeito de crescimento a matriz de endereços por um tamanho, 799 00:35:14,060 --> 00:35:17,130 e, em seguida, que plop adicional endereço de e-mail para ele. 800 00:35:17,130 --> 00:35:17,630 Sim. 801 00:35:17,630 --> 00:35:19,730 >> AUDIÊNCIA: [inaudível] 802 00:35:19,730 --> 00:35:22,520 >> COLUNA 1: Um erro de digitação no mais se-- oh, portador. 803 00:35:22,520 --> 00:35:23,070 Está ok. 804 00:35:23,070 --> 00:35:26,971 Ele também não vai gostar do meu fracasso em implementar parte deste programa 805 00:35:26,971 --> 00:35:27,470 mais tarde. 806 00:35:27,470 --> 00:35:28,810 Mas obrigado por captura. 807 00:35:28,810 --> 00:35:30,671 Mais um bug. 808 00:35:30,671 --> 00:35:31,170 Obrigado. 809 00:35:31,170 --> 00:35:33,746 Queremos que este seja Vtext.com. 810 00:35:33,746 --> 00:35:34,340 Sim. 811 00:35:34,340 --> 00:35:34,839 Tudo certo. 812 00:35:34,839 --> 00:35:36,330 Então onde é que isto nos deixa? 813 00:35:36,330 --> 00:35:38,224 Nós escrevemos o código para abrir o arquivo. 814 00:35:38,224 --> 00:35:40,390 Temos um loop para iterar sobre as linhas no arquivo. 815 00:35:40,390 --> 00:35:43,650 Nós temos código que adiciona ao meu matriz, um de cada vez, o correctamente 816 00:35:43,650 --> 00:35:44,790 endereço de e-mail formatado. 817 00:35:44,790 --> 00:35:48,480 Então, tudo o que realmente falta é enviar um e-mail para cada uma dessas pessoas. 818 00:35:48,480 --> 00:35:52,830 >> Então eu fui em frente e preparou-me como se segue. 819 00:35:52,830 --> 00:35:59,580 O que eu vou fazer aqui é-- e vamos vá em frente e pular para algum código real, 820 00:35:59,580 --> 00:36:00,620 que se parece com isso. 821 00:36:00,620 --> 00:36:02,950 Então aqui é o pré-cozido versão que eu escrevi anteriormente. 822 00:36:02,950 --> 00:36:04,700 E notem que eu terminei implementação de Sprint. 823 00:36:04,700 --> 00:36:06,130 Eu terminei de execução T-Mobile. 824 00:36:06,130 --> 00:36:08,020 Eu terminei a implementação Virgin Mobile. 825 00:36:08,020 --> 00:36:09,622 E eu vou me desculpar com antecedência. 826 00:36:09,622 --> 00:36:12,080 Há algumas transportadoras que alguns alunos da turma tem 827 00:36:12,080 --> 00:36:14,640 que eu não me incomodei enumerando na condição de se aqui. 828 00:36:14,640 --> 00:36:16,015 Assim, nem todos os textos vão sair. 829 00:36:16,015 --> 00:36:17,556 Mas vamos ver o que mais eu preciso fazer. 830 00:36:17,556 --> 00:36:19,660 Eu fechar o arquivo, basta como em p definir quatro. 831 00:36:19,660 --> 00:36:20,835 >> E esta é a nova sintaxe. 832 00:36:20,835 --> 00:36:22,710 E nós vamos ver um pouco bit desta ao longo do tempo, 833 00:36:22,710 --> 00:36:24,450 especialmente com p definir sete e oito. 834 00:36:24,450 --> 00:36:28,140 Mas esta é a sintaxe para criar um tipo especial de estrutura. 835 00:36:28,140 --> 00:36:31,490 Acontece lá fora, é uma biblioteca que vem com PHP, chamado mailer PHP. 836 00:36:31,490 --> 00:36:33,840 Seu propósito na vida é programaticamente enviar e-mails. 837 00:36:33,840 --> 00:36:36,840 Código É alguém escreveu que torna mais fácil para nós para enviar e-mails, 838 00:36:36,840 --> 00:36:39,131 por isso não tem que manter indo e voltando para o Gmail, 839 00:36:39,131 --> 00:36:41,151 e colando em endereços de email das pessoas. 840 00:36:41,151 --> 00:36:44,150 Há um monte de linhas aqui que, honestamente, eu meio que copiou 841 00:36:44,150 --> 00:36:45,660 e colado a partir da documentação. 842 00:36:45,660 --> 00:36:47,409 E, de fato, se você estiver Curioso, eu deixei tudo 843 00:36:47,409 --> 00:36:50,550 das URLs da documentação no código que nós vamos postar mais tarde. 844 00:36:50,550 --> 00:36:52,360 E note que, entre as coisas que estou fazendo 845 00:36:52,360 --> 00:36:55,710 é, eu estou dizendo a esta biblioteca, usar o servidor do Gmail, certo? 846 00:36:55,710 --> 00:36:59,360 SMTP nós conversamos brevemente sobre quando nós estavam em Yale sobre ser correio simples 847 00:36:59,360 --> 00:37:00,110 protocolo de transferência. 848 00:37:00,110 --> 00:37:02,920 É que o protocolo servidores usados ​​para enviar e-mail, 849 00:37:02,920 --> 00:37:05,150 e that's-- Gmail tem um desses. 850 00:37:05,150 --> 00:37:07,290 Um porto, este é o número da porta TCP. 851 00:37:07,290 --> 00:37:09,630 É bom se você não vi 587 antes. 852 00:37:09,630 --> 00:37:11,420 Só sei que a partir da documentação. 853 00:37:11,420 --> 00:37:12,250 Aqui está o meu nome de usuário. 854 00:37:12,250 --> 00:37:13,670 Vou usar o bot CF50. 855 00:37:13,670 --> 00:37:16,690 E em um momento, eu estou indo só para digite a senha atual do bot. 856 00:37:16,690 --> 00:37:18,690 E, em seguida, para baixo aqui, observe o que permanece. 857 00:37:18,690 --> 00:37:22,840 >> Eu definir o meu endereço de para ser bot no CS50.net. 858 00:37:22,840 --> 00:37:26,240 Eu acho que não vai se arrepender enviando uma mensagem de texto para 800 pessoas que 859 00:37:26,240 --> 00:37:30,590 diz, sinto sua falta, bot amor CS50, talvez para aqueles que não poderia fazê-lo hoje. 860 00:37:30,590 --> 00:37:33,160 E então, em linha 76, o que eu faço? 861 00:37:33,160 --> 00:37:39,010 Este tipo de olhares como C. Portanto, para i é igual a 0, n equals-- agora contar é nova. 862 00:37:39,010 --> 00:37:42,077 Acontece que, se você deseja obter o número de coisas em uma matriz, 863 00:37:42,077 --> 00:37:43,660 você não tem que se lembrar mais. 864 00:37:43,660 --> 00:37:45,370 Você pode apenas pedir a um função chamada contagem, 865 00:37:45,370 --> 00:37:48,320 e ele vai te dizer quantas endereços estão nessa matriz. 866 00:37:48,320 --> 00:37:53,210 >> E então eu estou indo para adicionar o endereço para o e-mail. 867 00:37:53,210 --> 00:37:55,090 E eu sei que isso usando a documentação. 868 00:37:55,090 --> 00:37:56,900 Há uma função de endereço add. 869 00:37:56,900 --> 00:37:58,980 E agora notar que há é uma peça de sintaxe. 870 00:37:58,980 --> 00:38:01,470 Nós já vimos isso antes em C. similares em espírito. 871 00:38:01,470 --> 00:38:04,100 Você pode pensar em sinal de dólar O correio como a variável, o que ela é. 872 00:38:04,100 --> 00:38:08,100 Mas é uma estrutura dentro de que não são apenas propriedades, 873 00:38:08,100 --> 00:38:09,400 variáveis ​​se você quiser. 874 00:38:09,400 --> 00:38:13,480 Mas verifica-se que em PHP, que é uma programação orientada a objeto 875 00:38:13,480 --> 00:38:16,520 linguagem, como Java, se você tomou APCS. 876 00:38:16,520 --> 00:38:21,420 >> Sinal de dólar mail, se você quiser a-- Ele também tem funções no interior do mesmo, 877 00:38:21,420 --> 00:38:22,380 ou métodos. 878 00:38:22,380 --> 00:38:24,720 Então, isso quer dizer que mailer especial PHP 879 00:38:24,720 --> 00:38:29,280 biblioteca, se eu tenho uma variável do mesmo, se eu quero chamar uma função que 880 00:38:29,280 --> 00:38:31,559 que vem com biblioteca, para fins de hoje, 881 00:38:31,559 --> 00:38:33,100 só sei que você use a notação de seta. 882 00:38:33,100 --> 00:38:34,150 Não há nenhuma notação de ponto. 883 00:38:34,150 --> 00:38:35,220 É apenas a seta. 884 00:38:35,220 --> 00:38:36,380 Mas isso não é um ponteiro. 885 00:38:36,380 --> 00:38:38,680 É apenas emprestado de sintaxe do C. 886 00:38:38,680 --> 00:38:43,620 Então chame adicionar o endereço dentro de objeto desta biblioteca ou variável. 887 00:38:43,620 --> 00:38:44,440 >> Tudo certo. 888 00:38:44,440 --> 00:38:45,570 Esta é a linha mágica. 889 00:38:45,570 --> 00:38:46,740 É assim que eu enviar um e-mail. 890 00:38:46,740 --> 00:38:50,040 Isto é o equivalente da abertura Gmail, digitando-o para fora, e bater enviar. 891 00:38:50,040 --> 00:38:54,870 Mas está indo para enviar uma vez enviar e-mail para este endereço, com este corpo, 892 00:38:54,870 --> 00:38:57,120 do bot CS50. 893 00:38:57,120 --> 00:38:58,710 E agora a linha de chave. 894 00:38:58,710 --> 00:39:03,130 Esta linha foi ausente em 2011 como quando eu penso que este último tentou. 895 00:39:03,130 --> 00:39:05,640 Essa linha há, naturalmente, limpa os endereços. 896 00:39:05,640 --> 00:39:07,920 Então, logicamente, se eu não limpar o endereço 897 00:39:07,920 --> 00:39:11,740 após cada iteração, o primeiro enviar e-mail ou mensagem de texto vai para Alice, 898 00:39:11,740 --> 00:39:14,320 o segundo vai Alice e Bob, o terceiro 899 00:39:14,320 --> 00:39:17,870 vai para Alice e Bob e Charlie, daí o erro muito caro 900 00:39:17,870 --> 00:39:18,760 Eu fiz esse ano. 901 00:39:18,760 --> 00:39:21,080 >> Então vamos ver. 902 00:39:21,080 --> 00:39:24,200 Há alguma pergunta antes de enviar a todos um texto 903 00:39:24,200 --> 00:39:28,210 mensagem com 10 por cento de probabilidade? 904 00:39:28,210 --> 00:39:28,940 Alguma pergunta? 905 00:39:28,940 --> 00:39:30,330 Tudo certo. 906 00:39:30,330 --> 00:39:36,100 Vamos me entrar aqui e mudança a senha para o que deve funcionar, 907 00:39:36,100 --> 00:39:37,780 provavelmente vai ficar na lista negra pelo Gmail. 908 00:39:37,780 --> 00:39:39,821 Assim, eles não podem ir todos para fora, uma vez que provavelmente 909 00:39:39,821 --> 00:39:42,960 não gostam de nós o envio de e-mails 800 em um loop de uma vez. 910 00:39:42,960 --> 00:39:45,140 Desde que não é comportamento particularmente humano. 911 00:39:45,140 --> 00:39:47,460 >> Oh, eu vou mudar uma coisa. 912 00:39:47,460 --> 00:39:50,850 Lá em cima, eu estou indo para sent-- alterar o arquivo para estudantes dot CSV. 913 00:39:50,850 --> 00:39:55,420 E eu não vou abrir isso, mas esta é uma arquivo CSV idêntica não 100 funcionários, 914 00:39:55,420 --> 00:39:58,970 mas apenas 800 alunos, de Harvard, Yale porque 915 00:39:58,970 --> 00:40:00,207 Tem outubro recesso esta semana. 916 00:40:00,207 --> 00:40:03,290 E parece que um tipo de coisa idiota a fazer ao texto todos eles por que motivo 917 00:40:03,290 --> 00:40:04,750 eles não estão em sala de aula no feriado. 918 00:40:04,750 --> 00:40:05,250 Está ok. 919 00:40:05,250 --> 00:40:08,310 Apenas estudantes de Harvard hoje dentro desse arquivo. 920 00:40:08,310 --> 00:40:12,320 E agora vamos voltar na minha janela de terminal. 921 00:40:12,320 --> 00:40:13,710 Estou um pouco nervoso. 922 00:40:13,710 --> 00:40:22,000 >> OK, então agora eu estou indo para ir para o diretório, e dot texto PHP PHP. 923 00:40:22,000 --> 00:40:24,950 Como cerca de um voluntário corajoso? 924 00:40:24,950 --> 00:40:26,690 Então eu não quero isso para mim. 925 00:40:26,690 --> 00:40:28,410 OK, vamos lá para cima. 926 00:40:28,410 --> 00:40:29,162 Qual o seu nome? 927 00:40:29,162 --> 00:40:29,662 MAYA: Maya. 928 00:40:29,662 --> 00:40:30,328 COLUNA 1: Maya. 929 00:40:30,328 --> 00:40:31,610 Vamos lá para cima, Maya. 930 00:40:31,610 --> 00:40:34,120 Tudo certo. 931 00:40:34,120 --> 00:40:35,389 Vamos ver se isso funciona. 932 00:40:35,389 --> 00:40:38,430 Eu coloquei meu próprio endereço de e-mail no file-- meu próprio número de telefone no arquivo, 933 00:40:38,430 --> 00:40:40,110 de modo que espero que eu vou conseguir um também. 934 00:40:40,110 --> 00:40:40,819 Bom te conhecer. 935 00:40:40,819 --> 00:40:41,443 MAYA: Da mesma forma. 936 00:40:41,443 --> 00:40:44,510 COLUNA 1: Então tudo que você tem a fazer é pressione Enter para enviar 800 mensagens de texto, 937 00:40:44,510 --> 00:40:45,466 se eu não estragar. 938 00:40:45,466 --> 00:40:51,106 939 00:40:51,106 --> 00:40:51,606 Agradável. 940 00:40:51,606 --> 00:40:55,556 941 00:40:55,556 --> 00:40:58,430 Pode demorar um pouco, estatisticamente, até chegarmos a um e-mail address-- 942 00:40:58,430 --> 00:41:00,573 uma mensagem de texto que é no quarto agora. 943 00:41:00,573 --> 00:41:03,880 944 00:41:03,880 --> 00:41:05,390 Vamos relaxar e ver. 945 00:41:05,390 --> 00:41:06,940 >> AUDIÊNCIA: [ASSOBIO] 946 00:41:06,940 --> 00:41:08,270 >> COLUNA 1: Ah, sim. 947 00:41:08,270 --> 00:41:09,230 >> AUDIÊNCIA: Oh, gotcha. 948 00:41:09,230 --> 00:41:16,720 949 00:41:16,720 --> 00:41:19,180 >> COLUNA 1: Para esta laços é-- não é lento por causa do PHP. 950 00:41:19,180 --> 00:41:21,810 Esta é lento porque Gmail é nós de estrangulamento e não 951 00:41:21,810 --> 00:41:25,170 deixar-nos enviar mais de como um e-mail por segundo. 952 00:41:25,170 --> 00:41:26,300 Qualquer coisa? 953 00:41:26,300 --> 00:41:29,990 Isso foi uma coisa difícil para mim para testar a casa com apenas eu e meu um telefone, então. 954 00:41:29,990 --> 00:41:37,630 955 00:41:37,630 --> 00:41:41,111 É que espero que a partir do bot? 956 00:41:41,111 --> 00:41:41,610 Sim? 957 00:41:41,610 --> 00:41:42,110 Não? 958 00:41:42,110 --> 00:41:44,760 959 00:41:44,760 --> 00:41:46,620 Diga sim. 960 00:41:46,620 --> 00:41:47,479 Não? 961 00:41:47,479 --> 00:41:49,374 É de um amigo? 962 00:41:49,374 --> 00:41:49,874 Desajeitado. 963 00:41:49,874 --> 00:41:50,374 ESTÁ BEM. 964 00:41:50,374 --> 00:41:56,580 965 00:41:56,580 --> 00:42:00,090 Quase certeza de que está funcionando embora. 966 00:42:00,090 --> 00:42:00,910 Uh oh. 967 00:42:00,910 --> 00:42:03,190 Eles black-- oh, espere um minuto. 968 00:42:03,190 --> 00:42:04,280 Oh, você sabe o quê? 969 00:42:04,280 --> 00:42:06,100 Um momento por favor. 970 00:42:06,100 --> 00:42:07,802 Apenas Maya e I-- Mia, foi? 971 00:42:07,802 --> 00:42:08,301 MAYA: Maya. 972 00:42:08,301 --> 00:42:12,110 COLUNA 1: Maya, vão sabe o que eu fiz de errado aqui. 973 00:42:12,110 --> 00:42:14,890 Oh, espere um minuto. 974 00:42:14,890 --> 00:42:23,320 Eu acho que eu apenas enviou 100 mensagens de texto para 555-1212. 975 00:42:23,320 --> 00:42:24,346 Estar por. 976 00:42:24,346 --> 00:42:28,080 977 00:42:28,080 --> 00:42:29,270 Eu não posso vencer qualquer ano. 978 00:42:29,270 --> 00:42:30,180 ESTÁ BEM. 979 00:42:30,180 --> 00:42:30,680 Maya? 980 00:42:30,680 --> 00:42:33,530 981 00:42:33,530 --> 00:42:36,219 Corrigir isso na pós-produção. 982 00:42:36,219 --> 00:42:36,718 Dammit! 983 00:42:36,718 --> 00:42:39,430 984 00:42:39,430 --> 00:42:40,390 Na sequência de endereço. 985 00:42:40,390 --> 00:42:41,301 OK, stand by. 986 00:42:41,301 --> 00:42:41,800 Desculpe. 987 00:42:41,800 --> 00:42:44,550 988 00:42:44,550 --> 00:42:47,080 É doloroso a cada ano. 989 00:42:47,080 --> 00:42:48,640 OK, um momento. 990 00:42:48,640 --> 00:42:50,530 Isso é bom. 991 00:42:50,530 --> 00:42:54,010 Eu estou indo em vez de fazer isso. 992 00:42:54,010 --> 00:42:55,470 De endereços Impressão. 993 00:42:55,470 --> 00:42:56,030 OK, stand by. 994 00:42:56,030 --> 00:43:01,340 Imprimir endereços, suporte i. 995 00:43:01,340 --> 00:43:02,710 Sim, eu gosto disso. 996 00:43:02,710 --> 00:43:10,220 Dólar sign-- OK eu vou explicar o que eu sou fazendo em um momento, depois que eu executar este. 997 00:43:10,220 --> 00:43:11,670 Todo ano. 998 00:43:11,670 --> 00:43:13,125 OK, aqui vamos nós. 999 00:43:13,125 --> 00:43:15,750 Eu tenho apenas-- e eu não quero para mostrar o número de telefone de todos, 1000 00:43:15,750 --> 00:43:17,740 mas Maya pode confirmar com um aceno de cabeça, 1001 00:43:17,740 --> 00:43:20,800 que ela vê todo mundo número de telefone na classe 1002 00:43:20,800 --> 00:43:26,750 que eu vou copiar para um programa chamado Gmail. 1003 00:43:26,750 --> 00:43:30,860 E se no Gmail, o que queremos dizer? 1004 00:43:30,860 --> 00:43:32,137 Sinto sua falta. 1005 00:43:32,137 --> 00:43:33,220 Amor-- isso não é de mim. 1006 00:43:33,220 --> 00:43:35,230 Eu ainda nem chegou enviar ainda. 1007 00:43:35,230 --> 00:43:39,450 Então, vamos em frente e fazer isso, se eu posso fazer zoom. 1008 00:43:39,450 --> 00:43:40,300 ESTÁ BEM. 1009 00:43:40,300 --> 00:43:42,480 Então, eu estou usando um programa chamado Gmail agora. 1010 00:43:42,480 --> 00:43:44,490 Se Maya, você gostaria de clique no botão Enviar, 1011 00:43:44,490 --> 00:43:46,970 vamos simular o que código deveria ter feito. 1012 00:43:46,970 --> 00:43:54,630 1013 00:43:54,630 --> 00:43:55,254 >> Qualquer coisa? 1014 00:43:55,254 --> 00:43:56,062 >> [BIP] 1015 00:43:56,062 --> 00:43:56,870 >> AUDIÊNCIA: Yep. 1016 00:43:56,870 --> 00:43:58,030 >> COLUNA 1: Sim? 1017 00:43:58,030 --> 00:43:59,210 Salvação? 1018 00:43:59,210 --> 00:44:00,427 >> AUDIÊNCIA: Yep. 1019 00:44:00,427 --> 00:44:01,260 COLUNA 1: Miss você. 1020 00:44:01,260 --> 00:44:02,718 E eu vou mandar para fora o resto. 1021 00:44:02,718 --> 00:44:06,060 Mandei metade porque eu não acho que Gmail deixaria aqueles passar. 1022 00:44:06,060 --> 00:44:12,410 Então lembre-se, hoje é o dia que você aprendeu que eu posso usar o Gmail. 1023 00:44:12,410 --> 00:44:14,977 1024 00:44:14,977 --> 00:44:15,810 Isso foi horrível. 1025 00:44:15,810 --> 00:44:17,140 Um grande aplauso para Maya. 1026 00:44:17,140 --> 00:44:18,980 Obrigado. 1027 00:44:18,980 --> 00:44:21,280 Tudo bem, então. 1028 00:44:21,280 --> 00:44:22,210 o quê 1029 00:44:22,210 --> 00:44:23,140 >> [BIP] 1030 00:44:23,140 --> 00:44:25,010 1031 00:44:25,010 --> 00:44:26,580 >> Temos alguns sinais sonoros, sim? 1032 00:44:26,580 --> 00:44:27,080 Tudo certo. 1033 00:44:27,080 --> 00:44:30,590 Agora eu estou indo para obter 700 realmente e-mails infelizes costas dos colegas de classe. 1034 00:44:30,590 --> 00:44:32,400 Assim, pelo menos vamos ver se isso valeu a pena. 1035 00:44:32,400 --> 00:44:33,300 Então, o que deu errado? 1036 00:44:33,300 --> 00:44:35,300 Eu vou descobrir o que deu errado após o fato, 1037 00:44:35,300 --> 00:44:38,340 mas basta olhar o quão fácil que era para fazer isso em PHP. 1038 00:44:38,340 --> 00:44:44,598 Então o que podemos realmente fazer agora que temos esta expressividade do PHP. 1039 00:44:44,598 --> 00:44:45,970 Isso foi-- que foi horrível. 1040 00:44:45,970 --> 00:44:46,480 Tudo certo. 1041 00:44:46,480 --> 00:44:48,430 Então era isso que deveria ter saído. 1042 00:44:48,430 --> 00:44:52,770 Isso me estava testando esta manhã no meu telefone, screenshot real de meu telefone. 1043 00:44:52,770 --> 00:44:56,180 >> Mas agora vamos considerar o porquê na verdade estamos introduzindo 1044 00:44:56,180 --> 00:44:57,840 todas essas coisas em primeiro lugar. 1045 00:44:57,840 --> 00:45:01,625 Assim, o objetivo não é escrever esses programas que 1046 00:45:01,625 --> 00:45:03,250 são escritos na linha de comando, certo? 1047 00:45:03,250 --> 00:45:05,000 Então eu escrevi um simples Olá programa, eu escrevi 1048 00:45:05,000 --> 00:45:09,155 um pequeno programa que faz condicionais, e usada uma linha de leitura e assim por diante. 1049 00:45:09,155 --> 00:45:11,530 E, em teoria, eu só escrevi um programa que enviou para fora 1050 00:45:11,530 --> 00:45:14,290 800 mensagens de texto, mais ou menos 800. 1051 00:45:14,290 --> 00:45:16,830 E que o programa era tudo ainda correm na linha de comando. 1052 00:45:16,830 --> 00:45:18,538 E isso, claro, é não a web, certo? 1053 00:45:18,538 --> 00:45:22,160 A meta agora é começar a usá o que eu reivindico é uma mais fácil de usar 1054 00:45:22,160 --> 00:45:24,720 língua, ouso dizer que a mais linguagem poderosa em termos 1055 00:45:24,720 --> 00:45:27,104 dos recursos que vêm com ele, para começar 1056 00:45:27,104 --> 00:45:29,850 escrevendo código que gera páginas web. 1057 00:45:29,850 --> 00:45:33,248 >> Assim última vez e, na semana passada, nós falamos sobre HTTP e HTML. 1058 00:45:33,248 --> 00:45:36,350 E o que é agradável sobre HTML é que não é apenas texto puro. 1059 00:45:36,350 --> 00:45:38,220 E o texto é certamente algo que você pode 1060 00:45:38,220 --> 00:45:42,040 imprimir, literalmente, chamando a impressão f função ou a função de impressão. 1061 00:45:42,040 --> 00:45:46,160 E, de fato, é o que é PHP agora vai nos permitir fazer. 1062 00:45:46,160 --> 00:45:48,610 Assim, entre os exemplos ter no código-fonte de hoje, 1063 00:45:48,610 --> 00:45:51,610 Além disso a parte do código que eu coloquei lá em cima há pouco, 1064 00:45:51,610 --> 00:45:55,440 temos programas como este, por exemplo. 1065 00:45:55,440 --> 00:45:58,760 Froshims, ou Freshman Intramural Sports, era, na verdade, 1066 00:45:58,760 --> 00:46:01,500 um dos primeiros extracurriculars Eu me envolvi com anos atrás. 1067 00:46:01,500 --> 00:46:03,750 E meu companheiro de quarto e eu, com algumas outras crianças no campus, 1068 00:46:03,750 --> 00:46:05,280 usado para executar o programa froshims. 1069 00:46:05,280 --> 00:46:07,420 Estou recebendo minhas mensagens de texto agora. 1070 00:46:07,420 --> 00:46:14,030 >> Agora, para que, de volta ao dia, de modo que este 1996 foi mais ou menos, houve uma internet, 1071 00:46:14,030 --> 00:46:17,395 mas não havia lá process-- houve website para froshims. 1072 00:46:17,395 --> 00:46:20,270 E por isso, se você queria para se inscrever para futebol ou vôlei ou qualquer outra coisa, 1073 00:46:20,270 --> 00:46:22,240 você iria preencher essa coisa chamado um pedaço de papel, 1074 00:46:22,240 --> 00:46:25,060 e você iria atravessar Harvard quintal, e você deslize- 1075 00:46:25,060 --> 00:46:29,230 no slot de correio do Proctor, que estava em Wigglesworth, um dos dormitórios. 1076 00:46:29,230 --> 00:46:31,270 E isso que você estava registado. 1077 00:46:31,270 --> 00:46:33,570 E ele ou ela faria em seguida, compor um e-mail para você 1078 00:46:33,570 --> 00:46:36,514 manualmente, assim como eu apenas fiz aqui com Maya, 1079 00:46:36,514 --> 00:46:38,930 e então você será confirmado como tendo sido registrado. 1080 00:46:38,930 --> 00:46:40,840 >> Portanto, este foi como baixo pendurado fruto, por assim dizer. 1081 00:46:40,840 --> 00:46:42,930 Era uma espécie de estúpido que que estávamos usando para este papel. 1082 00:46:42,930 --> 00:46:45,024 Eu queria que nós fôssemos capazes apenas para ir em um site, 1083 00:46:45,024 --> 00:46:47,440 ou ter os calouros ir em uma website, cadastre-se para o esporte, 1084 00:46:47,440 --> 00:46:50,398 e apenas automatizar um monte dessas coisas colocando seus nomes e e-mails 1085 00:46:50,398 --> 00:46:51,850 e assim por diante numa base de dados. 1086 00:46:51,850 --> 00:46:56,510 E, de facto, a primeira versão do site, usando HTML de super feio, 1087 00:46:56,510 --> 00:46:58,195 pode ter parecido algo como isto. 1088 00:46:58,195 --> 00:47:01,070 Na verdade, foi, ironicamente, mais embaraçoso bonito do que esta de volta 1089 00:47:01,070 --> 00:47:01,460 então. 1090 00:47:01,460 --> 00:47:02,890 Mas eu usei uma linguagem de programação. 1091 00:47:02,890 --> 00:47:06,060 Não PHP, mas sim chamado Perl, que é uma linguagem mais velho, 1092 00:47:06,060 --> 00:47:07,251 mas muito semelhante em espírito. 1093 00:47:07,251 --> 00:47:09,000 E eu apenas completamente ensinou-o a mim mesmo. 1094 00:47:09,000 --> 00:47:12,208 E ele me levou um tempo para descobrir isso, fazendo muitas perguntas de amigos. 1095 00:47:12,208 --> 00:47:14,080 Mas as idéias lá eram exatamente o mesmo. 1096 00:47:14,080 --> 00:47:18,050 Porque o que o PHP foi realmente concebido para não é o material de linha de comando 1097 00:47:18,050 --> 00:47:20,450 nós apenas jogado com, mas para programação web. 1098 00:47:20,450 --> 00:47:24,960 >> É realmente amarrado em sua característica definida para a web, como se segue. 1099 00:47:24,960 --> 00:47:26,370 Este é froshims. 1100 00:47:26,370 --> 00:47:28,720 E se eu quisesse cadastre-se desta forma, 1101 00:47:28,720 --> 00:47:30,930 isso é muito feio, certamente, mas deixe-me ir em frente 1102 00:47:30,930 --> 00:47:34,440 e ser um aluno menos confortável, e qualquer esporte para Matthews, 1103 00:47:34,440 --> 00:47:35,630 clique em Register. 1104 00:47:35,630 --> 00:47:39,780 O que eu quero ser capaz de fazer é enviar informações de um formulário, 1105 00:47:39,780 --> 00:47:42,400 não para o servidor do Google como fizemos da última vez, completamente 1106 00:47:42,400 --> 00:47:47,100 batota usando seu backend, I quero implementar meu próprio código backend. 1107 00:47:47,100 --> 00:47:51,410 O que significa escrever PHP código que vive em uma URL 1108 00:47:51,410 --> 00:47:54,180 que os dados do formulário pode ser submetido. 1109 00:47:54,180 --> 00:47:57,510 >> E então o seu código, escrito em PHP em um servidor, 1110 00:47:57,510 --> 00:47:59,400 pode então responder a essa entrada do usuário. 1111 00:47:59,400 --> 00:48:03,287 Como o seu nome, ou nível de conforto, ou dormitório, e, em seguida, fazer algo com ele. 1112 00:48:03,287 --> 00:48:05,120 Neste caso, eu apenas estupidamente imprimiu 1113 00:48:05,120 --> 00:48:06,750 como texto, que não é tão bonita. 1114 00:48:06,750 --> 00:48:09,590 Mas você poderia certamente imaginar, se você conhece HTML, 1115 00:48:09,590 --> 00:48:13,010 e em breve você vai saber como gerar HTML com impressão f, e de impressão, 1116 00:48:13,010 --> 00:48:16,500 e funções similares, certamente você pode gerar uma página web mais bonita que diz: 1117 00:48:16,500 --> 00:48:17,929 David hey, você agora está registrado. 1118 00:48:17,929 --> 00:48:20,220 Você é um menos confortável estudante de Matthews, certo? 1119 00:48:20,220 --> 00:48:23,880 >> Você pode apenas usar um monte de% ses, ou as chaves e sinal de dólar 1120 00:48:23,880 --> 00:48:27,750 notação eu usei há pouco, a gerar texto que é mais user friendly 1121 00:48:27,750 --> 00:48:28,567 do que este. 1122 00:48:28,567 --> 00:48:30,150 Então vamos dar uma olhada em um presente de arquivo. 1123 00:48:30,150 --> 00:48:34,666 Froshim de zero ponto PHP parece com isso. 1124 00:48:34,666 --> 00:48:37,860 1125 00:48:37,860 --> 00:48:43,500 Quando eu recarregar CS50 IDE, de zero froshim se parece com isso. 1126 00:48:43,500 --> 00:48:45,700 Este é nulo froshim ponto PHP. 1127 00:48:45,700 --> 00:48:47,730 E o que você observa sobre este arquivo? 1128 00:48:47,730 --> 00:48:49,506 >> AUDIÊNCIA: [inaudível] 1129 00:48:49,506 --> 00:48:50,922 COLUNA 1: Desculpe, um pouco mais alto? 1130 00:48:50,922 --> 00:48:53,250 AUDIÊNCIA: [inaudível] É tudo em HTML. 1131 00:48:53,250 --> 00:48:57,130 E, de fato, que é, porque o que é interessante sobre o PHP 1132 00:48:57,130 --> 00:48:58,880 é que ele foi concebido ser, para melhor 1133 00:48:58,880 --> 00:49:02,110 ou para pior, entremeadas com código HTML. 1134 00:49:02,110 --> 00:49:05,850 E, de fato, embora esta arquivo, froshim de zero ponto PHP, 1135 00:49:05,850 --> 00:49:11,470 tem um comentário PHP no topo dele, é tudo apenas HTML. 1136 00:49:11,470 --> 00:49:17,655 Mas por outro lado, se eu abrir, vamos digamos, cadastre-se de zero ponto PHP, que 1137 00:49:17,655 --> 00:49:19,550 só tem um grande comentário no topo. 1138 00:49:19,550 --> 00:49:26,500 Isso também parece quase inteiramente como HTML, exceto para o quê? 1139 00:49:26,500 --> 00:49:29,350 Line, o que, 21 looks um pouco estranho. 1140 00:49:29,350 --> 00:49:32,739 >> Mas repare que eu estou entrando no modo de PHP com o suporte aberto ponto de interrogação PHP. 1141 00:49:32,739 --> 00:49:33,780 Então eu tenho algumas coisas. 1142 00:49:33,780 --> 00:49:36,724 E, em seguida, no final da linha Eu tenho quase, ponto de interrogação PHP. 1143 00:49:36,724 --> 00:49:38,390 E é isso que eu quero dizer com misturados. 1144 00:49:38,390 --> 00:49:41,910 Você pode escrever HTML que você acabou deseja que o servidor para cuspir. 1145 00:49:41,910 --> 00:49:45,090 Mas se você quiser fazer algo parcialmente dinâmica através da página, 1146 00:49:45,090 --> 00:49:47,699 como inserir o meu nome ou dormitório ou nível de conforto, 1147 00:49:47,699 --> 00:49:49,490 Eu posso usar uma função como a cópia r, que é 1148 00:49:49,490 --> 00:49:52,492 imprimir recursiva, o que significa apenas imprimir esta variável, formatá-lo 1149 00:49:52,492 --> 00:49:53,200 como você quiser. 1150 00:49:53,200 --> 00:49:55,880 Não é realmente para propósitos humanos, é apenas 1151 00:49:55,880 --> 00:49:58,290 para fins de diagnóstico ou depuração. 1152 00:49:58,290 --> 00:49:59,460 Então é assim que eu fiz isso. 1153 00:49:59,460 --> 00:50:06,100 >> Se eu em vez de ir froshims dois dot PHP, notar que a ação desta forma 1154 00:50:06,100 --> 00:50:09,680 não é registrado de zero ponto como o PHP old-- o anterior era realmente. 1155 00:50:09,680 --> 00:50:11,222 Mas ele está registrado dois dot PHP. 1156 00:50:11,222 --> 00:50:13,680 Então, vamos olhar como este se comporta de forma um pouco diferente. 1157 00:50:13,680 --> 00:50:15,140 Se eu entrar em versão dois. 1158 00:50:15,140 --> 00:50:20,430 Se aqui, se eu registrar como David, menos confortável, de dormitório de Mathews, 1159 00:50:20,430 --> 00:50:21,480 registe-se. 1160 00:50:21,480 --> 00:50:23,770 Então, desta vez ele disse, você são registrados, não realmente. 1161 00:50:23,770 --> 00:50:25,370 Vamos ver o que eu fiz aqui. 1162 00:50:25,370 --> 00:50:29,760 Se eu olhar para registro de dois pontos PHP, isso tem mais algum código PHP. 1163 00:50:29,760 --> 00:50:35,410 É um pouco mais limpo, embora ainda envolve um pouco longo nesta linha. 1164 00:50:35,410 --> 00:50:36,260 Observe aqui. 1165 00:50:36,260 --> 00:50:40,300 I imprimir meu tag HTML, minha marca de cabeça, minha tag title, a cabeça, o corpo. 1166 00:50:40,300 --> 00:50:45,410 >> E então eu começo a dizer coisas como entrar no modo de PHP. 1167 00:50:45,410 --> 00:50:48,540 E assim que tag, suporte aberto PHP-- ponto de interrogação PHP diz, 1168 00:50:48,540 --> 00:50:53,460 hey, servidor, execute-- interpretar o seguinte material como PHP 1169 00:50:53,460 --> 00:50:55,030 até ver a marca de fim. 1170 00:50:55,030 --> 00:50:58,590 E mesmo que você pode não saber qualquer PHP outro que você já viu até agora, 1171 00:50:58,590 --> 00:51:01,290 você pode tipo de ler isso muito intuitivamente. 1172 00:51:01,290 --> 00:51:10,670 Se o nome estiver vazio, ou o conforto é vazio, ou dormitório está vazio, o que eu faço? 1173 00:51:10,670 --> 00:51:12,830 O que eu digo para o usuário? 1174 00:51:12,830 --> 00:51:15,330 Você deve fornecer o seu nome, conforto, e alojamento, e assim por diante. 1175 00:51:15,330 --> 00:51:17,750 Senão, eu digo que você é registrado, bem, não realmente. 1176 00:51:17,750 --> 00:51:19,190 >> E eu não digo realmente porque não há banco de dados. 1177 00:51:19,190 --> 00:51:20,200 Eu não estou fazendo nada com os dados. 1178 00:51:20,200 --> 00:51:22,408 Estou apenas jogá-la fora para fins de demonstração. 1179 00:51:22,408 --> 00:51:24,320 Agora eu tipo de economizado ao longo da linha 22. 1180 00:51:24,320 --> 00:51:26,400 Há mais de sintaxe lá, mas sinal de dólar 1181 00:51:26,400 --> 00:51:28,320 sublinhado post é bem interessante. 1182 00:51:28,320 --> 00:51:30,300 E isso é o que é agradável sobre PHP. 1183 00:51:30,300 --> 00:51:35,610 No PHP, você tem o que são chamados algumas variáveis ​​globais super. 1184 00:51:35,610 --> 00:51:38,430 Eles são uma espécie de ainda mais importante do que as variáveis ​​globais. 1185 00:51:38,430 --> 00:51:41,370 E estes, tudo em maiúsculas como tal, vem com PHP. 1186 00:51:41,370 --> 00:51:44,550 Então se você tem um servidor que tem um servidor web instalado, como o Apache, 1187 00:51:44,550 --> 00:51:49,390 e você instalar o idioma suporte para PHP, de repente você 1188 00:51:49,390 --> 00:51:52,250 pode começar a usar esses super- variáveis ​​globais em seu código. 1189 00:51:52,250 --> 00:51:54,330 >> E o que é agradável sobre PHP é que se você apenas 1190 00:51:54,330 --> 00:51:57,540 gravar um arquivo que termina em dot PHP, colocá-lo em um servidor web, 1191 00:51:57,540 --> 00:52:01,260 e depois que você enviar um formulário para ele via que marca a ação e uma tag de formulário, 1192 00:52:01,260 --> 00:52:05,110 esse atributo ação no forma tag, PHP e da Web 1193 00:52:05,110 --> 00:52:09,360 figuras completamente fora como agarrar todos esses pares de chaves de valor fora 1194 00:52:09,360 --> 00:52:11,633 do URL como questão marca q é igual a gatos, 1195 00:52:11,633 --> 00:52:14,782 ele vai descobrir como q e gatos. 1196 00:52:14,782 --> 00:52:17,710 Se você enviar uma foto ou um nome de usuário, ou uma senha para gostar Facebook, 1197 00:52:17,710 --> 00:52:21,360 PHP vai descobrir para você onde todos os dados é. 1198 00:52:21,360 --> 00:52:23,821 E ela só vai entregá- você uma matriz associativa 1199 00:52:23,821 --> 00:52:27,560 chamado dólar pós sinal de sublinhado, ou sinal de dólar sublinhar obter, 1200 00:52:27,560 --> 00:52:30,590 dependendo se você está usando GET ou POST submissões. 1201 00:52:30,590 --> 00:52:32,950 E ela só vai entregar-lhe uma variável global super, 1202 00:52:32,950 --> 00:52:37,254 de modo que, se você deseja obter no nome que o usuário enviou via web que 1203 00:52:37,254 --> 00:52:41,894 forma, você literalmente apenas dizer o nome da variável global super, citações, 1204 00:52:41,894 --> 00:52:43,380 unquote, nome. 1205 00:52:43,380 --> 00:52:46,144 E citações, conforto unquote, e citações, dormitório fecha aspas. 1206 00:52:46,144 --> 00:52:48,810 E nós vamos ser capazes de fazer isso e muito mais com PHP. 1207 00:52:48,810 --> 00:52:50,540 E mesmo que este foi um olhar turbilhão no que faz, 1208 00:52:50,540 --> 00:52:51,980 vamos mergulhar muito mais na próxima semana. 1209 00:52:51,980 --> 00:52:54,247 Vamos introduzir um banco de dados de modo que você é, na verdade, 1210 00:52:54,247 --> 00:52:56,816 vai começar a implementar based-- seu próprio e-comércio 1211 00:52:56,816 --> 00:52:59,150 como o Web site no tempo apenas uma semana. 1212 00:52:59,150 --> 00:53:02,750 Então, vamos ver você na próxima vez, e espero que você tenha as mensagens de texto. 1213 00:53:02,750 --> 00:53:05,450 Tchau. 1214 00:53:05,450 --> 00:53:06,950 >> [Música tocando] 1215 00:53:06,950 --> 00:53:11,450 1216 00:53:11,450 --> 00:53:12,950 >> [ABERTURA DE PORTA] 1217 00:53:12,950 --> 00:53:14,475 >> COLUNA 2: Hey. 1218 00:53:14,475 --> 00:53:15,350 COLUNA 3: Qual é? 1219 00:53:15,350 --> 00:53:17,750 COLUNA 2: O que você está fazendo? 1220 00:53:17,750 --> 00:53:19,850 COLUNA 3: Trabalho em um conjunto de problemas. 1221 00:53:19,850 --> 00:53:21,050 COLUNA 2: Nice. 1222 00:53:21,050 --> 00:53:22,550 Toca aqui. 1223 00:53:22,550 --> 00:53:23,150 >> [TOCA AQUI] 1224 00:53:23,150 --> 00:53:25,584 >> O que é-- uh, o que você está fazendo aqui? 1225 00:53:25,584 --> 00:53:26,750 COLUNA 3: Apenas pendurando para fora. 1226 00:53:26,750 --> 00:53:28,134 Acabei de voltar da academia. 1227 00:53:28,134 --> 00:53:30,050 Eu não poderia ajudar, mas notar quando high-fived, 1228 00:53:30,050 --> 00:53:32,450 que você tem mãos muito ásperas. 1229 00:53:32,450 --> 00:53:33,950 Você ir para a academia? 1230 00:53:33,950 --> 00:53:35,150 >> COLUNA 2: Não. 1231 00:53:35,150 --> 00:53:36,650 Não. 1232 00:53:36,650 --> 00:53:38,450 >> COLUNA 3: Cara, você olha muito grande. 1233 00:53:38,450 --> 00:53:45,950 O que é ruim, porque todo mundo sabe 8-ball é o grande homem no campus. 1234 00:53:45,950 --> 00:53:48,050 Toca aqui. 1235 00:53:48,050 --> 00:53:49,550 >> COLUNA 2: Uh, não. 1236 00:53:49,550 --> 00:53:50,450 Não, eu acho que eu sou bom. 1237 00:53:50,450 --> 00:53:52,300 Eu acho que eu sou bom. 1238 00:53:52,300 --> 00:53:54,097