1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Así que hemos hecho un montón de trabajo en C, 3 00:00:07,370 --> 00:00:09,536 y C es una muy cool idioma porque te da 4 00:00:09,536 --> 00:00:12,840 la capacidad de sumergirse realmente bajo nivel en sus programas. 5 00:00:12,840 --> 00:00:16,810 Tenemos la oportunidad de hacer las cosas como Realmente minutos como manipular 6 00:00:16,810 --> 00:00:18,800 bytes individuales de la memoria. 7 00:00:18,800 --> 00:00:21,420 Recordemos que realmente punteros nos permitirá que la flexibilidad. 8 00:00:21,420 --> 00:00:25,260 >> Pero es lo que siempre hay que tener ese nivel de grano fino de los detalles 9 00:00:25,260 --> 00:00:26,820 en nuestros programas? 10 00:00:26,820 --> 00:00:28,210 Probablemente no, ¿verdad? 11 00:00:28,210 --> 00:00:30,376 Y si vamos a tener un equilibrio entre ser 12 00:00:30,376 --> 00:00:32,911 capaz de hacer muy, muy cosas y promociones, realmente, realmente 13 00:00:32,911 --> 00:00:35,910 grandes cosas que nosotros no tenemos que pensar aproximadamente, que no tenemos que poner en práctica 14 00:00:35,910 --> 00:00:40,290 estos realmente grandes ideas si que ya están construidas en para nosotros, 15 00:00:40,290 --> 00:00:43,980 en general, para la construcción de grandes programas o proyectos grandes, 16 00:00:43,980 --> 00:00:49,130 probablemente vamos a errar por el lado de haber más cosas lenguaje construido en 17 00:00:49,130 --> 00:00:51,300 para nosotros, en lugar de tener las cosas de bajo nivel. 18 00:00:51,300 --> 00:00:53,970 Y ahí es donde realmente viene en PHP. 19 00:00:53,970 --> 00:00:58,200 >> Ahora, una de las razones que enseñamos PHP en CS50 20 00:00:58,200 --> 00:01:01,020 es que está fuertemente inspirado en C. Y, de hecho, en mi opinión, 21 00:01:01,020 --> 00:01:05,140 Realmente hay dos idiomas progenitoras que 22 00:01:05,140 --> 00:01:08,200 son muy comunes hoy en día. 23 00:01:08,200 --> 00:01:10,110 C y LISP. 24 00:01:10,110 --> 00:01:13,280 Y son lenguas progenitoras porque todos los demás de programación moderno 25 00:01:13,280 --> 00:01:17,380 lenguaje que se ha desarrollado desde entonces se inspira 26 00:01:17,380 --> 00:01:20,330 por uno u otro sintácticamente. 27 00:01:20,330 --> 00:01:26,160 PHP es muy similar sintácticamente a C, mientras que lenguas como el Esquema, 28 00:01:26,160 --> 00:01:27,900 por ejemplo, que usted puede haber oído hablar, 29 00:01:27,900 --> 00:01:32,070 está fuertemente inspirado en una lengua llamado LISP, que es una lengua más antigua. 30 00:01:32,070 --> 00:01:34,220 >> Así que la razón por la que enseñamos PHP en CS50 es que, 31 00:01:34,220 --> 00:01:37,730 conociendo C como fundamentalmente como lo hace en este punto, 32 00:01:37,730 --> 00:01:41,280 recogiendo PHP, lo que le da la capacidad de hacer las cosas mucho más altos de nivel 33 00:01:41,280 --> 00:01:44,710 que C lo hace, no es que gran parte de un obstáculo, 34 00:01:44,710 --> 00:01:48,230 porque ya tiene la idea básica de la sintaxis. 35 00:01:48,230 --> 00:01:50,590 C ha existido por casi 45 años en este punto. 36 00:01:50,590 --> 00:01:52,780 PHP ha sido de alrededor de unos 20 años. 37 00:01:52,780 --> 00:01:57,080 Y el hecho de que 25 años En el medio, los programadores 38 00:01:57,080 --> 00:02:01,540 determinado que lo harían mucho más Prefiero tener habilidades de nivel superior, 39 00:02:01,540 --> 00:02:04,970 y los errores y luchas de los 20 años en el medio 40 00:02:04,970 --> 00:02:08,210 llevado a PHP y otros lenguajes modernos. 41 00:02:08,210 --> 00:02:11,039 >> De PHP una gran variedad de idioma para software 42 00:02:11,039 --> 00:02:14,042 que allow-- para software que-- donde 43 00:02:14,042 --> 00:02:16,250 necesita hacer cosas que en C son realmente complicado. 44 00:02:16,250 --> 00:02:18,480 Así, por ejemplo, trabajando con cadenas en C 45 00:02:18,480 --> 00:02:21,709 es muy complicado, porque como sabemos, las cadenas en C 46 00:02:21,709 --> 00:02:23,250 son en realidad conjuntos de caracteres. 47 00:02:23,250 --> 00:02:25,230 No es un tipo de datos incorporado. 48 00:02:25,230 --> 00:02:28,220 O tal vez es más importante, algo que ni siquiera cubrimos en C, 49 00:02:28,220 --> 00:02:30,360 ¿y si lo que necesitas hacer algunas redes de computadoras? 50 00:02:30,360 --> 00:02:30,860 ¿Correcto? 51 00:02:30,860 --> 00:02:34,920 >> C tiene la capacidad de hacerlo, pero es tan arcano y tan difícil de hacer realidad. 52 00:02:34,920 --> 00:02:37,580 ¿No sería bueno si el lengua tenía una manera fácil incorporado 53 00:02:37,580 --> 00:02:38,910 para implementar redes? 54 00:02:38,910 --> 00:02:43,420 Y PHP es un lenguaje que hace que, o facilita que, un poco más. 55 00:02:43,420 --> 00:02:47,740 Como ya he dicho, PHP es muy fuertemente inspirado de C. La sintaxis es muy similar. 56 00:02:47,740 --> 00:02:51,760 Y por lo que debe de esperar que el transición de una a la otra 57 00:02:51,760 --> 00:02:54,710 un poco más suave que algunos otros idiomas podrían ser. 58 00:02:54,710 --> 00:02:58,800 >> Para empezar a escribir PHP, simplemente abrir un archivo con la extensión de archivo .php. 59 00:02:58,800 --> 00:03:00,670 Técnicamente esto no es en realidad es necesario, 60 00:03:00,670 --> 00:03:04,495 pero si quieres cosas como la sintaxis destacando en el IDE, por lo que ese tipo 61 00:03:04,495 --> 00:03:07,620 nombres o nombres de variables, funciones, usted sabe, las palabras clave del lenguaje 62 00:03:07,620 --> 00:03:10,090 se destacan en un color específico, por lo general, 63 00:03:10,090 --> 00:03:14,020 querer nombrar sus archivos con una extensión de archivo en particular. 64 00:03:14,020 --> 00:03:18,430 Así que hemos llamado a nuestra archivo con un .php extensión, pero luego también con PHP, 65 00:03:18,430 --> 00:03:23,310 todo el código PHP que escribimos en ese archivo tiene que estar encerrado en estos PHP 66 00:03:23,310 --> 00:03:25,190 delimitadores que vemos aquí en la pantalla. 67 00:03:25,190 --> 00:03:27,910 Soporte angular? Php para empezar. 68 00:03:27,910 --> 00:03:30,860 Entonces escribimos todo nuestro PHP código que queremos en el medio. 69 00:03:30,860 --> 00:03:32,260 Y entonces ? 70 00:03:32,260 --> 00:03:34,710 soporte en ángulo para cerrar. 71 00:03:34,710 --> 00:03:37,170 >> Si no hacemos esto, entonces ¿Qué va a pasar? 72 00:03:37,170 --> 00:03:38,170 No va a estrellarse. 73 00:03:38,170 --> 00:03:39,410 No va a realmente arruinar nuestro programa. 74 00:03:39,410 --> 00:03:41,440 Pero no va a tener el efecto que queremos. 75 00:03:41,440 --> 00:03:44,540 ¿Qué va a pasar, en realidad, es que cuando tratamos de ejecutar este programa, 76 00:03:44,540 --> 00:03:50,330 todo lo que no entre estos delimitadores va a ser impreso textualmente. 77 00:03:50,330 --> 00:03:52,210 No va a en realidad ejecutar el código, 78 00:03:52,210 --> 00:03:56,010 que va a acaba imprimirlo textualmente. 79 00:03:56,010 --> 00:03:57,320 >> Ahora ¿por qué es así? 80 00:03:57,320 --> 00:04:00,416 Así C es lo que se conoce como un lenguaje compilado. 81 00:04:00,416 --> 00:04:03,040 Probablemente usted está familiarizado con el paso de hacer sus programas, 82 00:04:03,040 --> 00:04:07,820 convertir los archivos .c y archivos .h en un solo ejecutable con maquillaje, 83 00:04:07,820 --> 00:04:11,130 en particular, el uso de Clang como nuestro compilador. 84 00:04:11,130 --> 00:04:13,030 PHP, sin embargo, ¿no tener esta equivalente. 85 00:04:13,030 --> 00:04:15,600 PHP es lo que se llama un lenguaje interpretado. 86 00:04:15,600 --> 00:04:16,760 ¿Y qué significa eso? 87 00:04:16,760 --> 00:04:20,680 >> Bueno, eso significa que no tenemos que convertir nuestro código fuente de ceros y unos 88 00:04:20,680 --> 00:04:21,470 antemano. 89 00:04:21,470 --> 00:04:23,900 Más bien, hay un programa, que también se llama 90 00:04:23,900 --> 00:04:29,771 PHP, que entiende PHP y puede especie de hacerlo sobre la marcha. 91 00:04:29,771 --> 00:04:32,520 Eso no es realmente exactamente precisa, pero es una muy buena analogía 92 00:04:32,520 --> 00:04:33,760 de lo que está pasando. 93 00:04:33,760 --> 00:04:37,230 Es la interpretación de los ceros y unos sobre la marcha. 94 00:04:37,230 --> 00:04:40,160 Y por lo que si no lo sabe cómo procesar algo, 95 00:04:40,160 --> 00:04:42,800 si no sabe cómo PHP proceso, es probable que 96 00:04:42,800 --> 00:04:44,680 querido poner ese texto en allí, ¿verdad? 97 00:04:44,680 --> 00:04:48,960 >> Probablemente quería poner el código allí, incluso si no es entre PHP-- 98 00:04:48,960 --> 00:04:50,035 los delimitadores de PHP. 99 00:04:50,035 --> 00:04:51,910 Pero- por lo que no va eliminar por usted, 100 00:04:51,910 --> 00:04:53,576 que sólo va a básicamente descartarlo. 101 00:04:53,576 --> 00:04:55,550 Así que va a imprimir fuera de la pantalla. 102 00:04:55,550 --> 00:04:57,150 >> Esto parece que es una mala cosa, pero en realidad es 103 00:04:57,150 --> 00:04:58,220 va a ser una realidad bueno, como veremos 104 00:04:58,220 --> 00:05:00,390 ver cuando hablamos de Desarrollo web PHP, 105 00:05:00,390 --> 00:05:04,010 porque significa que podemos intercalar PHP y HTML. 106 00:05:04,010 --> 00:05:06,640 Podemos utilizarlos juntos para crear una página web más dinámica. 107 00:05:06,640 --> 00:05:10,650 Pero más sobre esto en el video en el desarrollo web PHP. 108 00:05:10,650 --> 00:05:12,021 >> Entonces, ¿cuál es la sintaxis de PHP? 109 00:05:12,021 --> 00:05:13,520 Eso es lo que este video se trata. 110 00:05:13,520 --> 00:05:14,850 Hablemos de eso. 111 00:05:14,850 --> 00:05:16,490 >> Así que para empezar, las variables. 112 00:05:16,490 --> 00:05:18,030 Existen variables de PHP. 113 00:05:18,030 --> 00:05:20,067 Hay sólo dos grandes diferencias de C. 114 00:05:20,067 --> 00:05:21,900 La primera es que no hay sin especificador tipo. 115 00:05:21,900 --> 00:05:24,245 No tenemos que decir int, char, float, todas esas cosas. 116 00:05:24,245 --> 00:05:25,620 No tenemos que hacer eso. 117 00:05:25,620 --> 00:05:26,810 PHP es un lenguaje moderno. 118 00:05:26,810 --> 00:05:28,910 Se puede averiguar lo que eres tratando de hacer o hacer una mejor 119 00:05:28,910 --> 00:05:30,451 Supongo que lo que estamos tratando de hacer. 120 00:05:30,451 --> 00:05:31,700 Así que eso es bastante agradable. 121 00:05:31,700 --> 00:05:35,330 >> La otra cosa es que toda la variable nombres deben comenzar con un signo de dólar. 122 00:05:35,330 --> 00:05:36,940 Eso es algo que acostumbrarse. 123 00:05:36,940 --> 00:05:39,496 Es un poco raro, porque es para que PHP puede entender 124 00:05:39,496 --> 00:05:40,870 lo que es una variable y lo que no lo es. 125 00:05:40,870 --> 00:05:43,340 Así que cada nombre de variable comienza con un signo de dólar. 126 00:05:43,340 --> 00:05:46,884 Así que en C podríamos decir algo así, int x = 54. 127 00:05:46,884 --> 00:05:48,550 No tenemos que hacer eso en PHP. 128 00:05:48,550 --> 00:05:52,540 Sólo podemos decir que $ x = 54. 129 00:05:52,540 --> 00:05:55,920 Y podríamos decir, por ejemplo, en C, si hubiéramos incluido por libra el .h CS50 130 00:05:55,920 --> 00:06:00,314 archivo de cabecera, podríamos decir frase cadena = "Esta es CS50." 131 00:06:00,314 --> 00:06:01,980 No tenemos que hacer eso en PHP, sin embargo. 132 00:06:01,980 --> 00:06:04,865 Sólo podemos decir $ frase = "Esta es CS50." 133 00:06:04,865 --> 00:06:08,760 Y de hecho, es ahora string un tipo de datos incorporado en PHP, 134 00:06:08,760 --> 00:06:10,950 o más bien PHP entiende lo que una cadena es. 135 00:06:10,950 --> 00:06:15,612 Es separado de una matriz de personajes como es en C. 136 00:06:15,612 --> 00:06:17,570 Todo su favorito sentencias condicionales de C 137 00:06:17,570 --> 00:06:19,520 todavía están disponibles para su uso. 138 00:06:19,520 --> 00:06:21,140 Así que no es gran transición allí. 139 00:06:21,140 --> 00:06:23,400 Podemos decir-- podemos tener si las declaraciones de este tipo. 140 00:06:23,400 --> 00:06:28,210 si $ y 43, o $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Así que eso es bastante sencillo. 142 00:06:29,690 --> 00:06:31,980 Podemos tener if y else. 143 00:06:31,980 --> 00:06:34,210 Podemos tener if y else if. 144 00:06:34,210 --> 00:06:36,430 >> Y notar algo muy agradable aquí, y esto 145 00:06:36,430 --> 00:06:39,620 es una especie de uno de los ventajas de PHP frente a C, previo aviso 146 00:06:39,620 --> 00:06:41,510 qué función no estamos usando aquí? 147 00:06:41,510 --> 00:06:47,737 Estamos usando == para comparar un variable $ nombre, en una cadena. 148 00:06:47,737 --> 00:06:49,070 No podíamos hacer que en C, ¿verdad? 149 00:06:49,070 --> 00:06:53,200 Tuvimos que usar una función llamada StrComp o StrEndComp o cualquier 150 00:06:53,200 --> 00:06:54,840 de sus primos relacionados. 151 00:06:54,840 --> 00:06:56,980 >> Y así ya vemos estas ventajas. 152 00:06:56,980 --> 00:07:00,930 No tenemos que hacer algo tan tonto o quizás poco intuitivo 153 00:07:00,930 --> 00:07:03,540 como llamar a una función llamada StrComp si sólo quiero probar 154 00:07:03,540 --> 00:07:05,237 si un valor es igual a una cadena. 155 00:07:05,237 --> 00:07:07,820 Yo sólo podía usar iguales iguales, como si pudiera hacer nada más. 156 00:07:07,820 --> 00:07:09,560 Así que hay una ventaja. 157 00:07:09,560 --> 00:07:13,350 >> A veces, por cierto, es posible que ver más si como una sola palabra, elseif. 158 00:07:13,350 --> 00:07:14,910 Y eso está bien en PHP también. 159 00:07:14,910 --> 00:07:17,020 Así que a veces es posible que vea eso. 160 00:07:17,020 --> 00:07:17,790 No es un error tipográfico. 161 00:07:17,790 --> 00:07:21,830 PHP realmente entiende elseif. 162 00:07:21,830 --> 00:07:23,980 No sé por qué decidido implementar que, 163 00:07:23,980 --> 00:07:28,220 pero como hemos visto muchas veces a través de nuestra vídeos hasta el momento, 164 00:07:28,220 --> 00:07:30,460 que los programadores encanta si que podemos hacer las cosas rápidamente, 165 00:07:30,460 --> 00:07:33,660 así que deshacerse de ese espacio aparentemente es una gran ventaja. 166 00:07:33,660 --> 00:07:34,800 >> Así que eso es siempre y elseif. 167 00:07:34,800 --> 00:07:37,540 También contamos con el operador ternario, recuerdo signo de interrogación de colon, 168 00:07:37,540 --> 00:07:43,262 de forma muy breve, si otra cosa o ramificación condicional. 169 00:07:43,262 --> 00:07:45,470 Y al parecer, en este, lo que estamos tratando de hacer aquí 170 00:07:45,470 --> 00:07:49,720 se asignar la variable $ carta ya sea verdadera o falsa, 171 00:07:49,720 --> 00:07:54,110 dependiendo de si $ var es un carácter alfabético. 172 00:07:54,110 --> 00:07:57,320 Así que esto es bastante similar a isalpha que estamos familiarizados con de C. 173 00:07:57,320 --> 00:07:59,010 Esta es una especie de equivalente en PHP. 174 00:07:59,010 --> 00:08:01,550 La función es aparentemente llamada ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 pero así es como lo hacemos en PHP. 176 00:08:03,450 --> 00:08:08,560 Así que todo esto va a ser es, si $ var es una carta, $ carta es cierto. 177 00:08:08,560 --> 00:08:13,820 Si $ var no es una carta, $ carta es falsa. 178 00:08:13,820 --> 00:08:15,820 >> También tenemos sentencias switch todavía. 179 00:08:15,820 --> 00:08:17,870 Recordamos los de C también. 180 00:08:17,870 --> 00:08:22,480 En la parte superior hay, eso es lo que hacemos algo así como conseguir int o conseguir cadena. 181 00:08:22,480 --> 00:08:23,845 Así que PHP tiene que construyó en. 182 00:08:23,845 --> 00:08:25,470 No necesitamos la biblioteca CS50 más. 183 00:08:25,470 --> 00:08:27,237 Sólo podemos utilizar la función readline. 184 00:08:27,237 --> 00:08:29,820 Lo que va a hacer es imprimir el mensaje: "Su estado, 185 00:08:29,820 --> 00:08:33,820 por favor ", y luego parpadea rápida esperando a que el usuario introduzca 186 00:08:33,820 --> 00:08:34,739 alguna información. 187 00:08:34,739 --> 00:08:36,530 Ahora fíjense qué más que podemos hacer con interruptor. 188 00:08:36,530 --> 00:08:39,105 Si usted ha utilizado antes, se recordará que el interruptor 189 00:08:39,105 --> 00:08:44,960 se limita prácticamente a enteros y personajes, pero ahora podemos utilizar cadenas. 190 00:08:44,960 --> 00:08:50,190 Y de hecho, la sentencia switch en PHP es un poco más flexible 191 00:08:50,190 --> 00:08:54,880 que su primo de C. 192 00:08:54,880 --> 00:08:55,380 Bucles. 193 00:08:55,380 --> 00:08:58,130 Al igual que los condicionales, todos sus viejos favoritos siguen ahí. 194 00:08:58,130 --> 00:09:00,740 Tenemos mientras bucles que cuentan a partir de 1 a 100 en este caso. 195 00:09:00,740 --> 00:09:03,940 Hemos hacer mientras bucles que cuentan de 1 a 100, 196 00:09:03,940 --> 00:09:06,200 y tenemos los bucles que cuentan de 1 a 100. 197 00:09:06,200 --> 00:09:07,220 Así que no es gran salto allí. 198 00:09:07,220 --> 00:09:09,360 La sintaxis es bastante mucho exactamente lo mismo, 199 00:09:09,360 --> 00:09:11,760 excepto que ahora estamos utilizando variable de signo de dólar en vez 200 00:09:11,760 --> 00:09:17,260 de declarar variables enteras o algo así para nuestros contadores. 201 00:09:17,260 --> 00:09:20,090 >> Aquí es donde las cosas se ponen un mucho mejor que C, sin embargo. 202 00:09:20,090 --> 00:09:21,020 Arrays. 203 00:09:21,020 --> 00:09:23,020 Así recordamos cuando éramos hablando de C, con el fin 204 00:09:23,020 --> 00:09:25,560 para crecer y encogerse conjuntos de información, 205 00:09:25,560 --> 00:09:28,310 que necesitábamos para ordenar de forma predeterminada a esta idea de una lista enlazada, 206 00:09:28,310 --> 00:09:30,780 porque las matrices C se fijaron en tamaño. 207 00:09:30,780 --> 00:09:31,800 No hemos podido reducir su tamaño. 208 00:09:31,800 --> 00:09:32,930 No hemos podido crecer. 209 00:09:32,930 --> 00:09:36,074 Tuvimos que reasignar la memoria y harás toda esta locura 210 00:09:36,074 --> 00:09:38,490 o utilizar listas enlazadas, que tomar un buen espacio de poco más. 211 00:09:38,490 --> 00:09:41,590 Pero en PHP, las matrices son no se fija en el tamaño más. 212 00:09:41,590 --> 00:09:43,240 Pueden crecer y pueden encogerse. 213 00:09:43,240 --> 00:09:46,660 Así que de nuevo, estos 20 años que existía entre la primera versión de C 214 00:09:46,660 --> 00:09:49,440 y la primera versión de PHP, hemos decidido que, ya sabes, 215 00:09:49,440 --> 00:09:51,670 sería realmente grande si pudiéramos hacer esto. 216 00:09:51,670 --> 00:09:54,100 Y así hemos implementado esto. 217 00:09:54,100 --> 00:09:58,040 >> Así arrays PHP no son fijos en tamaño, y porque PHP en realidad no 218 00:09:58,040 --> 00:10:03,090 tener programador que daba al frente nociones de tipos, 219 00:10:03,090 --> 00:10:05,110 podemos mezclar tipos de datos en nuestros arrays, también. 220 00:10:05,110 --> 00:10:08,100 Así que ni siquiera tenemos que usar toda enteros o todos los puntos flotantes, 221 00:10:08,100 --> 00:10:12,826 podemos tener una mezcla de todo diferentes tipos en una sola matriz. 222 00:10:12,826 --> 00:10:14,700 Declarando una matriz es muy claro. 223 00:10:14,700 --> 00:10:16,116 Es como cualquier otra variable. 224 00:10:16,116 --> 00:10:20,020 nums $ = array (1, 2, 3, 4), siendo una función array 225 00:10:20,020 --> 00:10:22,760 que se construye en PHP que creará una matriz para usted. 226 00:10:22,760 --> 00:10:28,315 Esto crea una matriz de cuatro valores, números en este caso, llamaron $ nums. 227 00:10:28,315 --> 00:10:29,940 Y hay más de una manera de hacerlo. 228 00:10:29,940 --> 00:10:32,420 Y vamos a ver esto mucho en PHP. 229 00:10:32,420 --> 00:10:36,380 PHP ha sido desarrollado por muchos diferentes personas y crece y crece y crece. 230 00:10:36,380 --> 00:10:40,050 Por lo general hay no sólo dos o tres maneras de hacer algo en PHP, 231 00:10:40,050 --> 00:10:42,170 por lo general hay como 10 o 20. 232 00:10:42,170 --> 00:10:45,300 Esto es sólo otro común forma de declarar una matriz. 233 00:10:45,300 --> 00:10:48,310 $ nums = cuadrados del soporte 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Así que esto es una especie de parecido al ángulo de C br-- notación corchete, más bien. $ - 235 00:10:53,170 --> 00:10:58,525 o sería int nums cuadrado corchetes es igual llave de 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 En PHP es $ nums = cuadrado soportes 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Pero estos dos ejemplos aquí me dan una matriz de cuatro en este caso los números enteros. 238 00:11:08,920 --> 00:11:10,920 >> ¿Qué pasa si quiero virar algo ahora? 239 00:11:10,920 --> 00:11:14,760 Bueno, yo sólo puedo decir $ nums 4, que de nuevo, todavía estamos contando desde 0 aquí 240 00:11:14,760 --> 00:11:17,800 en PHP, sería el quinto elemento de la matriz. 241 00:11:17,800 --> 00:11:18,990 Yo sólo puedo decir eso. 242 00:11:18,990 --> 00:11:22,860 Yo no voy a sufrir un seg quejar, porque mi matriz es simplemente 243 00:11:22,860 --> 00:11:24,337 va a crecer para dar cabida a eso. 244 00:11:24,337 --> 00:11:25,420 Eso es muy bonito, ¿verdad? 245 00:11:25,420 --> 00:11:28,400 Y, de hecho, yo ni siquiera necesito especificar donde quiero ponerlo. 246 00:11:28,400 --> 00:11:31,220 Yo sólo puedo decir esto y justo virar a la derecha en el final, 247 00:11:31,220 --> 00:11:34,099 O podría incluso sólo decir $ nums 20 o 1000. 248 00:11:34,099 --> 00:11:35,140 En realidad no importa. 249 00:11:35,140 --> 00:11:38,330 Está siendo sólo va a virar a la derecha en el final. 250 00:11:38,330 --> 00:11:41,490 >> Así que puedo crecer, y como-- estamos no va a cubrir aquí, 251 00:11:41,490 --> 00:11:45,360 pero puedo empalmar o tira elementos fuera de la matriz, así, 252 00:11:45,360 --> 00:11:50,064 y el conjunto se reducirá para acomodar que ahora falta o el espacio vacío. 253 00:11:50,064 --> 00:11:52,230 Hay otra manera de virar algo en una matriz, 254 00:11:52,230 --> 00:11:54,330 que es una función llamada array_push. 255 00:11:54,330 --> 00:11:57,860 Así que de nuevo, sólo por esta idea de ser capaz de hacer cosas de muchas maneras diferentes. 256 00:11:57,860 --> 00:12:01,950 Así que hemos visto tres maneras diferentes ahora para virar otro elemento en una matriz. 257 00:12:01,950 --> 00:12:06,900 Así que esto añade otro elemento hasta el final de la matriz $ nums. 258 00:12:06,900 --> 00:12:08,340 Y podemos mezclar nuestros tipos de datos. 259 00:12:08,340 --> 00:12:13,110 Así que podría tener una matriz de no 1, 2, 3, 4, pero 1, es cierto, 3, 4, 260 00:12:13,110 --> 00:12:16,420 donde la verdadera es un booleano, y luego si quiero añadir otro elemento 261 00:12:16,420 --> 00:12:20,860 a esa matriz, tal vez una cadena, la cadena "cinco" Yo podría hacer eso. 262 00:12:20,860 --> 00:12:26,110 Y ahora mi arsenal haría ser 1, verdadera, 3, 4, cinco. 263 00:12:26,110 --> 00:12:28,640 La palabra de cinco, no el número entero 5. 264 00:12:28,640 --> 00:12:31,270 Así que mucha flexibilidad allí. 265 00:12:31,270 --> 00:12:33,290 >> La flexibilidad consigue mejor aún, sin embargo, 266 00:12:33,290 --> 00:12:37,530 debido a que PHP tiene soporte para algo llamada una matriz asociativa. 267 00:12:37,530 --> 00:12:40,660 Y una especie de vaga hablado matrices sobre asociativas en C 268 00:12:40,660 --> 00:12:44,740 en el contexto de las tablas hash, porque lo matrices asociativas son realmente todo 269 00:12:44,740 --> 00:12:48,950 acerca están haciendo clave par de valores asignaciones. 270 00:12:48,950 --> 00:12:53,410 Y en este caso, la keys-- si estamos familiarizados con los arrays de C, 271 00:12:53,410 --> 00:12:55,440 las teclas son números de índice. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 Y los valores son lo que nos encontramos con que array 0, array 1, array 2, y así sucesivamente. 274 00:13:03,070 --> 00:13:06,310 Así que las claves son índices, y los valores son 275 00:13:06,310 --> 00:13:10,060 lo que está en esa ubicación matriz, especificado por dicho índice. 276 00:13:10,060 --> 00:13:15,130 >> Pero en PHP, no tenemos que hacer esto noción de matriz 0, array 1, serie 2 277 00:13:15,130 --> 00:13:15,830 nunca más. 278 00:13:15,830 --> 00:13:21,025 Ahora podemos usar palabras reales para asignar claves a los valores. 279 00:13:21,025 --> 00:13:22,650 Y para que yo pudiera decir algo como esto. 280 00:13:22,650 --> 00:13:26,710 Yo podría crear una matriz usando el plaza sintaxis soporte de la siguiente manera. 281 00:13:26,710 --> 00:13:30,685 $ pizzas = corchete "queso" y después 282 00:13:30,685 --> 00:13:37,210 este tipo de notación de doble flecha, 8.99 ", pepperoni," flecha 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 etcétera. 284 00:13:37,880 --> 00:13:39,060 Y así, ¿qué está pasando aquí? 285 00:13:39,060 --> 00:13:41,040 ¿Qué estoy haciendo en realidad? 286 00:13:41,040 --> 00:13:43,990 Estoy creando Las asignaciones de pares de valor. 287 00:13:43,990 --> 00:13:49,060 Así que en lugar de decir, por ejemplo, pizzas 0, piezas 1, 2 pizzas, 288 00:13:49,060 --> 00:13:52,350 Ahora puedo decir pizzas queso, pizzas de pepperoni, 289 00:13:52,350 --> 00:13:55,120 y se refieren a los valores asociado con ellos. 290 00:13:55,120 --> 00:13:56,970 >> Así que aquí están las llaves en verde. 291 00:13:56,970 --> 00:13:59,870 Queso, pepperoni, verduras, pollo búfalo. 292 00:13:59,870 --> 00:14:04,200 Aquí está la flecha que hace esta clave de asignación par de valores. 293 00:14:04,200 --> 00:14:07,420 Y entonces aquí son los valores en esa ubicación array. 294 00:14:07,420 --> 00:14:10,330 Así que es como decir gama 0 es igual a 8.99. 295 00:14:10,330 --> 00:14:11,720 La clave es 0. 296 00:14:11,720 --> 00:14:13,600 El valor es 8,99. 297 00:14:13,600 --> 00:14:19,370 Ahora puedo decir queso matriz, o en este caso pizzas de queso, el queso es la clave, 298 00:14:19,370 --> 00:14:23,340 y lo que encuentro en queso pizzas es 8,99. 299 00:14:23,340 --> 00:14:25,540 Ese es el valor que encuentro allí. 300 00:14:25,540 --> 00:14:28,124 >> Así que puedo decir cosas como. queso de pizza $ = 7,99. 301 00:14:28,124 --> 00:14:29,040 Digamos que estoy teniendo una venta. 302 00:14:29,040 --> 00:14:31,750 Quiero dis-- quiero caer el precio de la pizza de queso. 303 00:14:31,750 --> 00:14:35,620 O puedo usar el vegetal pizza como parte de una condición, 304 00:14:35,620 --> 00:14:39,990 o puedo añadir un nuevo elemento a mi matriz, al igual que yo podía hacer antes. 305 00:14:39,990 --> 00:14:44,680 Puedo añadir un nuevo elemento a este matriz asociativa con el "tocino" clave 306 00:14:44,680 --> 00:14:49,250 y el valor de 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Pero este tipo de introduce un problema, si usted piensa en esto por un segundo. 308 00:14:53,820 --> 00:14:55,721 ¿Cómo podríamos iterar a través de esta serie? 309 00:14:55,721 --> 00:14:56,220 ¿Correcto? 310 00:14:56,220 --> 00:14:59,820 En C, nos acaba de tener un para el bucle, por lo general, que 311 00:14:59,820 --> 00:15:03,650 iría desde 0 hasta el tamaño de la matriz menos 1. 312 00:15:03,650 --> 00:15:08,060 La matriz tiene n elementos en el índices válidos son del 0 al n menos 1. 313 00:15:08,060 --> 00:15:11,530 Así que podríamos usar un bucle for para paso a través de cada elemento individual. 314 00:15:11,530 --> 00:15:13,530 >> Pero eso no es realmente el caso más, ¿no? 315 00:15:13,530 --> 00:15:17,360 Ahora donde tenemos par de valores clave asignaciones donde las claves son las palabras, 316 00:15:17,360 --> 00:15:19,970 ¿cómo podemos iterar sobre todas las palabras? 317 00:15:19,970 --> 00:15:22,420 Bueno, afortunadamente, PHP tiene una manera de lidiar con esto también, 318 00:15:22,420 --> 00:15:24,580 y lo que vamos a saltar de nuevo a los bucles para un segundo 319 00:15:24,580 --> 00:15:30,780 introducir un cuarto tipo de bucle que existe en PHP llamado un bucle foreach. 320 00:15:30,780 --> 00:15:34,430 Y lo que es un bucle foreach hace es es básicamente la misma idea. 321 00:15:34,430 --> 00:15:36,060 Se puede utilizar para cualquier tipo de arreglo. 322 00:15:36,060 --> 00:15:38,100 Pero es básicamente el misma idea que un bucle for, 323 00:15:38,100 --> 00:15:40,750 excepto que en lugar de utilizar números índices, sólo 324 00:15:40,750 --> 00:15:45,830 tiene esta sintaxis extraña, donde se llama a cada elemento 325 00:15:45,830 --> 00:15:47,550 un nombre para los fines de este bucle. 326 00:15:47,550 --> 00:15:49,258 >> Así pues, en este caso, foreach ($ array como $ clave). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Básicamente, lo que las notas de comentario, dentro de ese bucle foreach, 329 00:15:56,450 --> 00:16:00,466 que va a ir sobre cada elemento del array $, que es típicamente 330 00:16:00,466 --> 00:16:03,340 va a ser un array asociativo, pero en realidad puede ser cualquier tipo de matriz 331 00:16:03,340 --> 00:16:05,419 que desea en PHP. 332 00:16:05,419 --> 00:16:07,210 Y cada vez que, en un bucle for que podría 333 00:16:07,210 --> 00:16:13,780 han dicho corchetes $ array $ i, sólo pude decir $ clave. 334 00:16:13,780 --> 00:16:22,340 Así que $ clave se convierte en un alias para cada índice de su PHP matriz asociativa, 335 00:16:22,340 --> 00:16:23,710 y para que pueda usarlo así. 336 00:16:23,710 --> 00:16:25,897 >> Así, por ejemplo, tenemos Ahora conseguimos nuestra gama pizzas. 337 00:16:25,897 --> 00:16:27,730 He tipo de metí en la esquina hay 338 00:16:27,730 --> 00:16:31,080 por lo que podemos usarlo para hacer un ejemplo rápido. 339 00:16:31,080 --> 00:16:36,420 Si digo foreach ($ pizzas como $ pizza), bueno, ¿qué está pasando? 340 00:16:36,420 --> 00:16:42,400 Bueno, voy a recorrer todos los solo elemento de la matriz $ pizzas, 341 00:16:42,400 --> 00:16:46,670 y al hacerlo, voy a llamar a cada elemento, cuando estoy en el interior 342 00:16:46,670 --> 00:16:49,400 del cuerpo de ese bucle, $ pizza. 343 00:16:49,400 --> 00:16:52,440 >> Así que eso es una especie de suplente, recordar, que la pizza $ 344 00:16:52,440 --> 00:16:59,140 es un sustituto para decir $ pizzas corchetes $ i 345 00:16:59,140 --> 00:17:03,370 si estábamos usando un bucle for, donde podría ir desde $ i = 0 a, en este caso, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Si no tuviéramos pares de valores clave aquí, esto sería elemento 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 y nos gustaría utilizar un bucle para ir $ 0 pizzas, pizzas $ 1, $ 2 pizzas, 349 00:17:16,390 --> 00:17:17,750 $ 3 pizzas. 350 00:17:17,750 --> 00:17:23,130 Así que ahora sólo $ pizzas está sustituyendo para esa tecla individual. 351 00:17:23,130 --> 00:17:25,630 >> Entonces, ¿qué es esto va a imprimir? 352 00:17:25,630 --> 00:17:29,030 Estoy imprimiendo $ pizza. 353 00:17:29,030 --> 00:17:35,270 ¿Qué voy a encontrar at-- si imprimo $ pizzas, $ i? 354 00:17:35,270 --> 00:17:35,770 ¿Correcto? 355 00:17:35,770 --> 00:17:38,680 Si voy a imprimir el elemento i de pizzas, 356 00:17:38,680 --> 00:17:40,070 lo voy a imprimir? 357 00:17:40,070 --> 00:17:42,580 Voy a imprimir el valores en ese lugar, ¿verdad? 358 00:17:42,580 --> 00:17:45,370 Al igual que si hacíamos esto en el contexto de C, 359 00:17:45,370 --> 00:17:49,786 no solemos usar nuestro iterador variable int i = 0, i es menor que 3, 360 00:17:49,786 --> 00:17:52,900 i ++, para imprimir 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Estamos imprimiendo serie 0, matriz 1, matriz 2, serie 3. 362 00:17:57,500 --> 00:17:59,580 Y así lo que esto imprime es esto. 363 00:17:59,580 --> 00:18:01,150 Es el listado de precios. 364 00:18:01,150 --> 00:18:05,750 8.99, 9.99, 10.99, 11.99. 365 00:18:05,750 --> 00:18:06,900 >> Ahora una nota rápida aquí. 366 00:18:06,900 --> 00:18:10,900 Un bucle foreach no necesariamente imprimir las cosas en orden. 367 00:18:10,900 --> 00:18:12,770 No está garantizado. 368 00:18:12,770 --> 00:18:13,550 Por lo general lo hace. 369 00:18:13,550 --> 00:18:17,667 Por lo general, está basado en el orden en elementos que se añaden a la matriz, 370 00:18:17,667 --> 00:18:18,750 así que tener esto en cuenta. 371 00:18:18,750 --> 00:18:20,830 Puede que no sea el fin. 372 00:18:20,830 --> 00:18:23,930 Pero un bucle foreach iterará a través de cada elemento 373 00:18:23,930 --> 00:18:25,060 de la matriz en cuestión. 374 00:18:25,060 --> 00:18:27,980 En este caso, de nuevo, esa matriz es de $ pizzas. 375 00:18:27,980 --> 00:18:32,920 >> Puedo cambiar la sintaxis, sin embargo, si Quiero la clave y el valor. 376 00:18:32,920 --> 00:18:37,179 En lugar de decir $ pizzas como $ pizza, puedo decir esto. 377 00:18:37,179 --> 00:18:39,470 Y si nos fijamos en lo que he resaltado en verde aquí, 378 00:18:39,470 --> 00:18:42,130 se ve como una asignación de teclas par de valores. 379 00:18:42,130 --> 00:18:45,980 Y por lo que si usted-- incluso si usted no está todo seguro de lo que va a hacer, 380 00:18:45,980 --> 00:18:49,300 Probablemente se puede adivinar que $ relleno va 381 00:18:49,300 --> 00:18:53,800 a ser la clave en este caso y $ precio va a ser el valor. 382 00:18:53,800 --> 00:18:59,200 Así que estoy sustituyendo ahora cada elemento de $ pizzas como un par de valores clave, 383 00:18:59,200 --> 00:19:03,900 y ahora puedo hacer referencia a la clave y el valor, que podría muy bien, 384 00:19:03,900 --> 00:19:05,590 por ejemplo, como sigue. 385 00:19:05,590 --> 00:19:10,170 >> "Un conjunto" - se trata de una gran cantidad de impresión pasando aquí-- "en su conjunto" 386 00:19:10,170 --> 00:19:17,300 superando "pizza cuesta $" precio, y luego Imprimo un período y una barra invertida n. 387 00:19:17,300 --> 00:19:23,420 Así que ahora, el aviso de nuevo me tiene acceso a una clave, $ topping, y un valor, $ precio. 388 00:19:23,420 --> 00:19:26,647 Así que se puede adivinar lo que esto se va a imprimir? 389 00:19:26,647 --> 00:19:29,480 Hay una gran cantidad de declaraciones de impresión, pero sólo hay una barra invertida n, 390 00:19:29,480 --> 00:19:33,410 así que va a imprimir algo en un entire-- en una sola línea de código. 391 00:19:33,410 --> 00:19:36,965 >> Si puedo hacer referencia a la clave y el valor, entonces ahora, 392 00:19:36,965 --> 00:19:39,090 en lugar de sólo ser capaz para imprimir los precios, 393 00:19:39,090 --> 00:19:41,330 Puedo imprimir algo como esto. 394 00:19:41,330 --> 00:19:43,780 "Toda una pizza de queso cuesta $ 8,99." 395 00:19:43,780 --> 00:19:47,150 Y ahora que estoy usando todo el keys-- queso, pepperoni, vegetal, 396 00:19:47,150 --> 00:19:49,640 búfalo chicken-- y los valores. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 Así eso es sólo una manera diferente 398 00:19:53,980 --> 00:19:57,840 hacer un bucle foreach que en lugar de simplemente le da acceso a los valores, 399 00:19:57,840 --> 00:20:02,950 sólo da usted-- te da el acceso a las claves y los valores. 400 00:20:02,950 --> 00:20:04,411 >> Así imprimir información. 401 00:20:04,411 --> 00:20:07,410 Yo ya he hecho un par de diferentes maneras, te habrás dado cuenta. 402 00:20:07,410 --> 00:20:11,080 Las dos funciones que hemos principalmente visto son de impresión y eco. 403 00:20:11,080 --> 00:20:14,380 Y para prácticamente todos los intentos y propósitos, son exactamente lo mismo. 404 00:20:14,380 --> 00:20:17,130 They're-- hay una muy sutil diferencia que no es siquiera vale la pena 405 00:20:17,130 --> 00:20:21,130 metiendo, pero básicamente todas partes puede utilizar la impresión es probable que pueda utilizar 406 00:20:21,130 --> 00:20:22,370 eco también. 407 00:20:22,370 --> 00:20:23,610 >> Y eso no es el único dos. 408 00:20:23,610 --> 00:20:26,970 PHP tiene una gran cantidad de diferentes formas de imprimir las cosas, 409 00:20:26,970 --> 00:20:30,520 y también tiene formas de integrar variables en el medio de la cadena. 410 00:20:30,520 --> 00:20:32,860 Así que recuerde de C, ¿verdad recordar lo que la función 411 00:20:32,860 --> 00:20:37,580 que podemos utilizar para sustituir las variables en las cosas que queremos imprimir? 412 00:20:37,580 --> 00:20:40,160 Es probable que utilice este funcionar bastante. 413 00:20:40,160 --> 00:20:42,290 printf, ¿verdad? 414 00:20:42,290 --> 00:20:45,290 Así que esto es lo que teníamos antes en el interior del contexto de nuestro bucle foreach. 415 00:20:45,290 --> 00:20:48,000 Tuvimos estos cinco declaraciones de impresión independientes, 416 00:20:48,000 --> 00:20:50,330 porque esa era la única manera que realmente sabía en el momento 417 00:20:50,330 --> 00:20:52,450 cómo imprimir mensajes. 418 00:20:52,450 --> 00:20:59,560 Yo no sabía cómo integrar la variable $ superando en mi código PHP. 419 00:20:59,560 --> 00:21:03,700 Bueno, si me acaba de tomar una conjetura salvaje, printf, que en realidad habría funcionado. 420 00:21:03,700 --> 00:21:08,980 printf es una función que pueda utilizar en PHP, al igual que lo puedo usar en C. 421 00:21:08,980 --> 00:21:11,880 >> Y así algo como esto, printf, de nuevo, estamos familiarizados con eso. 422 00:21:11,880 --> 00:21:16,420 El primero% s se sustituye con el valor de $ topping. 423 00:21:16,420 --> 00:21:19,700 El segundo% s se sustituye con el valor de $ precio. 424 00:21:19,700 --> 00:21:22,630 Y por lo que estoy interpelando, que es sólo una forma elegante 425 00:21:22,630 --> 00:21:25,400 de decir que estoy pegando el variables en ese lugar. 426 00:21:25,400 --> 00:21:31,000 Así que estoy enchufando $ superando donde el roja% s es y $ precio donde el% s azul 427 00:21:31,000 --> 00:21:36,060 es, y luego me iba a conseguir el mensaje, "Toda una pizza de queso cuesta $ 8,99." 428 00:21:36,060 --> 00:21:37,750 >> No es la única manera que puedo hacerlo, sin embargo. 429 00:21:37,750 --> 00:21:39,760 Tal vez me gustaría utilizar este método. 430 00:21:39,760 --> 00:21:44,890 Esto es en realidad lo que es más comúnmente llamada interpelación variable. 431 00:21:44,890 --> 00:21:45,690 Puedo usar un eco. 432 00:21:45,690 --> 00:21:47,737 Me vendría bien una impresión también, como veremos. 433 00:21:47,737 --> 00:21:48,820 Pero, ¿qué está pasando aquí? 434 00:21:48,820 --> 00:21:51,520 >> En primer lugar, tengo que escapar de la muestra de dólar. 435 00:21:51,520 --> 00:21:55,140 Porque recuerde, cuando estábamos en realidad impresión de los precios de las pizzas, 436 00:21:55,140 --> 00:21:59,370 Yo estaba en realidad darles formato como cifras monetarias con un signo de dólar. 437 00:21:59,370 --> 00:22:05,635 Pero estamos usando signos de dólar también para representar los nombres de variables en PHP, 438 00:22:05,635 --> 00:22:08,010 y en particular cuando estoy el uso de este método de la rizado 439 00:22:08,010 --> 00:22:10,040 variable de refuerzo método de la interpelación, necesito 440 00:22:10,040 --> 00:22:13,490 para escapar de mi signo del dólar en lo que no lo hace Creo que estoy hablando de una variable. 441 00:22:13,490 --> 00:22:16,920 Va a realidad, literalmente imprimir un signo de dólar. 442 00:22:16,920 --> 00:22:19,530 >> Así especie de analogize a lo que se ve al final allí. 443 00:22:19,530 --> 00:22:22,832 No lo hace realidad print barra invertida n, ¿verdad? 444 00:22:22,832 --> 00:22:24,290 Se imprime un carácter de nueva línea. 445 00:22:24,290 --> 00:22:26,750 Esta es-- no va a print signo de dólar barra invertida, 446 00:22:26,750 --> 00:22:30,130 que va a imprimir solo un carácter de signo de dólar. 447 00:22:30,130 --> 00:22:30,640 La misma idea. 448 00:22:30,640 --> 00:22:32,760 Las secuencias de escape, lo que estas cosas se llaman. 449 00:22:32,760 --> 00:22:37,080 >> Pero noto que no estoy haciendo cualquier tipo de sustituciones% s, 450 00:22:37,080 --> 00:22:40,050 Estoy literalmente enchufar en estas variables. 451 00:22:40,050 --> 00:22:45,110 Y así, en esto-- lo que sucedería aquí es que el valor de $ topping-- de nuevo, 452 00:22:45,110 --> 00:22:48,390 sólo mantener con lo que hemos estado hablando de queso tan far-- obtendría 453 00:22:48,390 --> 00:22:49,720 enchufado allí. 454 00:22:49,720 --> 00:22:54,780 Y $ precio sería cualquier valor es en pizzas, entre corchetes, el queso, 455 00:22:54,780 --> 00:22:56,270 que era 8,99. 456 00:22:56,270 --> 00:23:01,860 Y así esto también imprimir "Toda una pizza de queso cuesta $ 8,99." 457 00:23:01,860 --> 00:23:05,160 Y como he dicho, me vendría bien imprimir aquí en vez de eco, 458 00:23:05,160 --> 00:23:08,040 y la funcionalidad sea casi exactamente el mismo. 459 00:23:08,040 --> 00:23:09,660 Sería imprimir la misma cosa. 460 00:23:09,660 --> 00:23:12,680 >> Hay otra manera de hacerlo, y esto es otra ventaja 461 00:23:12,680 --> 00:23:14,710 de PHP trabajar con cadenas. 462 00:23:14,710 --> 00:23:17,130 Podemos hacer la concatenación de cadenas. 463 00:23:17,130 --> 00:23:19,660 Podríamos hacer esto en C, también, usando una función llamada strcat, 464 00:23:19,660 --> 00:23:21,180 pero una vez más, tuvimos que llamar a funciones separadas. 465 00:23:21,180 --> 00:23:22,640 Fue todo este lío que hacer. 466 00:23:22,640 --> 00:23:24,590 Tuvimos que libra incluir string.h. 467 00:23:24,590 --> 00:23:25,780 Fue una producción, ¿no? 468 00:23:25,780 --> 00:23:30,070 Pero ahora puedo simplemente usar este operador punto para concatenar cadenas juntos. 469 00:23:30,070 --> 00:23:34,910 >> Así que estoy concatenando "en su conjunto" y a continuación, cualquiera que sea el valor de $ desmoche es, 470 00:23:34,910 --> 00:23:38,860 y luego otro cadena, "pizza cuesta $" 471 00:23:38,860 --> 00:23:42,340 y luego concatenando lo el valor de $ precio es, 472 00:23:42,340 --> 00:23:45,670 y luego al final estoy viradas en periodo barra invertida n. 473 00:23:45,670 --> 00:23:47,926 Y lo que también haría imprimir "en su conjunto" - de nuevo, 474 00:23:47,926 --> 00:23:50,550 si estamos hablando de la primera elemento de esa array-- pizzas 475 00:23:50,550 --> 00:23:54,710 "Toda una pizza de queso cuesta $ 8,99." 476 00:23:54,710 --> 00:24:01,260 Período, barra invertida n, otra vez, con el desmoche $ y $ precio sustitución 477 00:24:01,260 --> 00:24:06,580 por lo que habíamos especificado en nuestra foreach bucle como la clave de asignación par de valores. 478 00:24:06,580 --> 00:24:08,050 >> PHP puede manejar funciones. 479 00:24:08,050 --> 00:24:11,250 Funciones eran una especie de integrante de C, como hemos visto. 480 00:24:11,250 --> 00:24:14,870 Al igual que las variables, no necesitamos a especifique el tipo de retorno de la función, 481 00:24:14,870 --> 00:24:16,350 porque en realidad no importa. 482 00:24:16,350 --> 00:24:18,660 Y no especificamos la tipos de datos de los parámetros, 483 00:24:18,660 --> 00:24:21,410 porque en realidad no materia, como hemos visto en PHP. 484 00:24:21,410 --> 00:24:24,510 Cada función se introduce con la palabra clave función. 485 00:24:24,510 --> 00:24:27,920 Así es como lo indicamos a PHP que lo que estamos hablando es de una función. 486 00:24:27,920 --> 00:24:29,720 >> Y nosotros no tenemos que frente a principal en absoluto, 487 00:24:29,720 --> 00:24:33,690 debido a que el intérprete, el PHP intérprete, funciona de arriba a abajo, 488 00:24:33,690 --> 00:24:34,190 independientemente. 489 00:24:34,190 --> 00:24:35,640 Si ve usted puede hacer una llamada de función, que va a 490 00:24:35,640 --> 00:24:37,850 ir a buscar a la llamada de función, incluso si se trata más adelante. 491 00:24:37,850 --> 00:24:40,360 Pero va a leer de arriba parte inferior, por lo que no necesitamos especificar, 492 00:24:40,360 --> 00:24:41,500 aquí es donde usted comienza. 493 00:24:41,500 --> 00:24:46,700 Usted comienza en la línea 1 de su PHP y trabajar desde allí. 494 00:24:46,700 --> 00:24:49,690 >> Así que aquí es cómo crearíamos una función llamada hard_square. 495 00:24:49,690 --> 00:24:54,100 Al parecer, se necesita un parámetro, que estoy llamando $ x. 496 00:24:54,100 --> 00:24:58,424 Esta función se complica solo para ilustrar varias cosas. 497 00:24:58,424 --> 00:24:59,590 Todavía tenemos valores de retorno. 498 00:24:59,590 --> 00:25:00,870 Estoy usando un bucle for aquí. 499 00:25:00,870 --> 00:25:04,970 Pero es básicamente, lo que esto asciende a está a sólo $ x $ x veces. 500 00:25:04,970 --> 00:25:10,520 Lo que en realidad estoy haciendo es simplemente añadiendo x 0 x veces o $ X a cero $ x veces. 501 00:25:10,520 --> 00:25:15,850 Pero es efectivamente exactamente el mismo que multiplicar $ x veces $ x. 502 00:25:15,850 --> 00:25:18,700 Todavía puedo devolver un valor, en este caso $ resultado, 503 00:25:18,700 --> 00:25:22,060 y he hecho una función en PHP. 504 00:25:22,060 --> 00:25:24,160 >> He aquí cómo usted puede utilizarlo en su contexto. 505 00:25:24,160 --> 00:25:26,020 Así que tal vez estoy dentro de algún archivo PHP. 506 00:25:26,020 --> 00:25:29,240 Fíjese en azul hay que He usado mis delimitadores PHP, 507 00:25:29,240 --> 00:25:31,010 corchete angular signo de interrogación php. 508 00:25:31,010 --> 00:25:35,180 Entre los que se encuentran todos el PHP que quiero escribir. 509 00:25:35,180 --> 00:25:37,840 Así que estoy al parecer va a get-- Voy a pedir al usuario 510 00:25:37,840 --> 00:25:41,550 que me diera un número, tienda que variables, tienda en la variable $ x, 511 00:25:41,550 --> 00:25:43,320 lo que me dieron. 512 00:25:43,320 --> 00:25:48,590 Entonces me voy a repetir hard_square de ese valor, 513 00:25:48,590 --> 00:25:50,370 y al parecer va para virar en una nueva línea 514 00:25:50,370 --> 00:25:53,590 también, y más tarde voy a definir la función de modo hard_square 515 00:25:53,590 --> 00:25:55,550 que cuando hago la llamar a hard_square, 516 00:25:55,550 --> 00:25:58,160 que sabe de lo que estoy hablando. 517 00:25:58,160 --> 00:26:00,705 >> Ahora, yo también podía hacer algo como esto. 518 00:26:00,705 --> 00:26:02,050 Esta cifra es ligeramente diferente. 519 00:26:02,050 --> 00:26:04,190 Es casi exactamente el mismo que lo que vimos antes, 520 00:26:04,190 --> 00:26:08,400 excepto que en lugar de decir simplemente $ x allí como el parámetro para hard_square, 521 00:26:08,400 --> 00:26:11,730 Estoy diciendo $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Así que este es un ejemplo de programación defensiva, 523 00:26:14,330 --> 00:26:17,070 guarda tus programas contra los usuarios maliciosos. 524 00:26:17,070 --> 00:26:20,020 >> Esta es una manera de hacer un poco de error la comprobación de que no hemos hecho realmente 525 00:26:20,020 --> 00:26:24,670 tienen como opción en C. Nunca pude especificar el valor por defecto de algo. 526 00:26:24,670 --> 00:26:27,010 Siempre teníamos que comprobar si el, por ejemplo, 527 00:26:27,010 --> 00:26:30,820 si hacemos una llamada a GetString, era más adecuada si inmediatamente después de que 528 00:26:30,820 --> 00:26:33,300 comprobado que, nos registramos si la cadena 529 00:26:33,300 --> 00:26:35,504 que el usuario nos dio no es igual a null, 530 00:26:35,504 --> 00:26:37,920 porque no queremos empezar trabajar con una cadena nula. 531 00:26:37,920 --> 00:26:39,670 >> Aquí, esta es una manera para protegerse contra eso. 532 00:26:39,670 --> 00:26:43,480 Si el usuario no nos proporciona algo de alguna manera, ¿qué vamos a hacer? 533 00:26:43,480 --> 00:26:46,080 Bueno, sólo tendremos que decir lo que sea que no nos proporcionan, 534 00:26:46,080 --> 00:26:47,705 sólo vamos a conectar 10 en su lugar. 535 00:26:47,705 --> 00:26:52,030 Así que si no nos dan un valor, sólo tiene que utilizar 10 por defecto. Así que aquí, 536 00:26:52,030 --> 00:26:53,940 Noto que estoy haciendo Una llamada a hard_square, 537 00:26:53,940 --> 00:26:55,980 pero no hay pronta para el usuario, ¿verdad? 538 00:26:55,980 --> 00:26:57,540 Sólo estoy haciendo una llamada vacía. 539 00:26:57,540 --> 00:27:00,860 >> Pero mi función hard_square se espera un parámetro. 540 00:27:00,860 --> 00:27:02,222 ¿Qué es esto va a imprimir? 541 00:27:02,222 --> 00:27:03,680 Se va a imprimir 100, ¿verdad? 542 00:27:03,680 --> 00:27:05,720 Debido a que el usuario no lo hizo darme nada. 543 00:27:05,720 --> 00:27:08,970 Y así que sólo voy a asumir que 10-- 10 es el valor predeterminado. 544 00:27:08,970 --> 00:27:13,760 Y por lo que este sería imprimir el 100 en su propia línea. 545 00:27:13,760 --> 00:27:16,390 >> Archivos PHP no tienen que ser sólo un único archivo. 546 00:27:16,390 --> 00:27:19,480 Se pueden combinar varios archivos juntos, al igual que se puede en C. La forma 547 00:27:19,480 --> 00:27:24,330 lo hicimos en C era típicamente para hacer un #include para obtener archivos de cabecera tirados en. 548 00:27:24,330 --> 00:27:26,180 Nosotros no hacemos eso en PHP. 549 00:27:26,180 --> 00:27:29,110 Hacemos algo llamado require_once. 550 00:27:29,110 --> 00:27:33,360 Y luego está este todo cosa, ¿qué es esto __dir__? 551 00:27:33,360 --> 00:27:36,510 Eso es sólo un especial variable o constante especial, 552 00:27:36,510 --> 00:27:39,030 realmente, que especifica lo su directorio actual. 553 00:27:39,030 --> 00:27:41,320 Y por lo que va a ver en el directorio actual 554 00:27:41,320 --> 00:27:44,900 un archivo llamado cs50.php en este ejemplo aquí, 555 00:27:44,900 --> 00:27:50,490 y que va a seguir ese archivo en la parte superior de su programa PHP, 556 00:27:50,490 --> 00:27:56,980 asumiendo que usted pone la requieren una vez que la línea en la parte superior de su archivo PHP. 557 00:27:56,980 --> 00:28:01,474 >> Así que PHP se utiliza principalmente, pero no de uso exclusivo, 558 00:28:01,474 --> 00:28:03,140 como un lenguaje para la programación basada en la web. 559 00:28:03,140 --> 00:28:05,270 Eso es realmente la forma en que llegó a ser. 560 00:28:05,270 --> 00:28:06,980 Pero es un completo idioma, como hemos visto. 561 00:28:06,980 --> 00:28:10,105 Hemos visto casi todas las cosas que puede hacer que son similares a C, 562 00:28:10,105 --> 00:28:13,290 y se puede hacer una diablos de mucho más que eso. 563 00:28:13,290 --> 00:28:16,950 >> Pero porque es un lenguaje completo y nos puede hacer la programación de línea de comandos en el mismo. 564 00:28:16,950 --> 00:28:18,630 Podemos ejecutar programas de línea de comandos. 565 00:28:18,630 --> 00:28:22,580 Todo lo que se requiere para ejecutar un comando programa de línea que está escrito en PHP 566 00:28:22,580 --> 00:28:24,260 es que usted tiene un intérprete de PHP. 567 00:28:24,260 --> 00:28:27,460 Así que es una especie de análogo a tener un compilador en su sistema 568 00:28:27,460 --> 00:28:31,100 si quieres compilar el código C para convertirlo en archivos ejecutables. 569 00:28:31,100 --> 00:28:33,810 Usted necesita tener un intérprete de PHP lo que existe en su sistema 570 00:28:33,810 --> 00:28:37,330 para que pueda interpretar los archivos PHP. 571 00:28:37,330 --> 00:28:40,370 >> Suponiendo que usted hace, y por lo general este intérprete se llama PHP, 572 00:28:40,370 --> 00:28:44,300 y es por lo general incluye con la mayoría descarga o instalación de PHP 573 00:28:44,300 --> 00:28:47,430 que se puede obtener en línea, y, ciertamente, el nombre del intérprete PHP 574 00:28:47,430 --> 00:28:49,550 tenemos en CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Todo lo que hacemos es archivo php tipo. 576 00:28:51,819 --> 00:28:53,610 Y lo que su programa de vamos a hacer es que es 577 00:28:53,610 --> 00:28:55,360 va a ejecutar a través de el intérprete, es 578 00:28:55,360 --> 00:28:58,040 va a ignorar todo lo que es no en cuestión entre mark-- 579 00:28:58,040 --> 00:29:03,160 o, ángulo del soporte signo de interrogación php, los delimitadores PHP, e imprimirlo, 580 00:29:03,160 --> 00:29:07,660 y va a interpretar y ejecutar el código dentro de sus delimitadores PHP. 581 00:29:07,660 --> 00:29:12,850 >> Así que vamos a pop a IDE CS50 y echar un vistazo a un par de archivos de PHP, 582 00:29:12,850 --> 00:29:19,850 corriendo un par de archivos de PHP, en interfaz de línea de comandos de CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Así que aquí estamos en IDE CS50, y me he tomado la libertad 584 00:29:22,100 --> 00:29:25,800 de abrir un archivo llamado hello1.php. 585 00:29:25,800 --> 00:29:29,920 Y al parecer, el contenido de este archivos son sólo los delimitadores PHP allí, 586 00:29:29,920 --> 00:29:32,220 y en el medio, echo ("hola, mundo"). 587 00:29:32,220 --> 00:29:34,710 Este es un programa PHP bastante simple. 588 00:29:34,710 --> 00:29:37,670 Yo sólo voy a desplazarse hacia abajo a mi ventana de terminal aquí, 589 00:29:37,670 --> 00:29:44,320 y yo voy a escribir php hello1.php, pulsa enter. 590 00:29:44,320 --> 00:29:44,950 Hola mundo. 591 00:29:44,950 --> 00:29:48,110 Eso es probablemente lo que fuimos esperando que lo haga, ¿verdad? 592 00:29:48,110 --> 00:29:51,140 >> Vamos a subir y tomar Otra mirada a un programa. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Más o menos lo mismo, No hay mucho que hacer aquí. 595 00:29:55,090 --> 00:29:57,190 Esta vez, sin embargo, voy a incitar el usuario para darme sus nombres. 596 00:29:57,190 --> 00:29:59,290 Estoy usando esa función readline nuevo. 597 00:29:59,290 --> 00:30:01,340 $ name = readline. 598 00:30:01,340 --> 00:30:03,070 Ese es el mensaje "¿Cuál es su nombre?" 599 00:30:03,070 --> 00:30:04,880 >> Al parecer soy la impresión que en su propia línea. 600 00:30:04,880 --> 00:30:07,220 Y entonces, por lo que la línea de abajo que será el símbolo 601 00:30:07,220 --> 00:30:08,750 donde el usuario puede introducir su nombre. 602 00:30:08,750 --> 00:30:12,030 Y entonces yo estoy usando un poco de interpelación variable de aquí en la línea 3 603 00:30:12,030 --> 00:30:14,780 imprimir "Hola" y cualquiera que sea el usuario. 604 00:30:14,780 --> 00:30:22,040 Así que esto es análogo a decir, Hola, coma,% s si estábamos usando printf en C. 605 00:30:22,040 --> 00:30:24,910 >> Así que vamos a ir e interpretar este programa. 606 00:30:24,910 --> 00:30:27,400 Así que de nuevo, voy a desplácese hacia abajo a mi ventana de terminal. 607 00:30:27,400 --> 00:30:29,070 hello2.php php. 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 ¿Cuál es tu nombre? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Hola, Doug. 612 00:30:36,526 --> 00:30:39,440 También tengo otro archivo llamado hello3.php. 613 00:30:39,440 --> 00:30:42,850 Voy a limpiar mi pantalla con control L, 614 00:30:42,850 --> 00:30:46,210 y yo voy a ejecutar esa. 615 00:30:46,210 --> 00:30:47,640 ¿Cuál es tu nombre? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Hola, Doug. 618 00:30:49,780 --> 00:30:56,540 Así que el comportamiento es idéntico al hello2.php, pero ¿por qué es hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Bueno, aquí está la diferencia. 620 00:30:58,040 --> 00:31:00,620 En este caso, el aviso que en la línea 1 aquí, 621 00:31:00,620 --> 00:31:04,270 Tengo algo que no es entre los delimitadores de PHP. 622 00:31:04,270 --> 00:31:07,760 Sólo estoy imprimiendo fuera-- o yo acaba de escribir, "¿Cuál es su nombre?" 623 00:31:07,760 --> 00:31:12,060 Cuando el intérprete PHP ve esto, no tiene idea de cómo interpretarlo como PHP, 624 00:31:12,060 --> 00:31:15,060 y así que en vez de fallar, que sólo va a escupir. 625 00:31:15,060 --> 00:31:19,010 >> Así que notar en la línea 3, mi llamada a readline, no hay símbolo más. 626 00:31:19,010 --> 00:31:21,750 Estoy realmente va a-- cuando el intérprete PHP ve esto, 627 00:31:21,750 --> 00:31:23,400 que va a imprimir "¿Cuál es tu nombre?" 628 00:31:23,400 --> 00:31:25,941 Entonces se ve, oh, bien, here's-- todo lo demás va a ser 629 00:31:25,941 --> 00:31:29,970 interpretado como PHP, por lo que es por eso que esto funciona. 630 00:31:29,970 --> 00:31:34,990 Yo no tengo que pedirá necesariamente el a-- usuario dentro de readline, 631 00:31:34,990 --> 00:31:37,490 Yo sólo puedo tener fuera de los delimitadores de PHP 632 00:31:37,490 --> 00:31:41,490 y permitir que el intérprete simplemente imprimirlo para mí. 633 00:31:41,490 --> 00:31:45,364 >> Así que en realidad no es suficiente tener un conjunto de delimitadores de PHP 634 00:31:45,364 --> 00:31:46,030 en su programa. 635 00:31:46,030 --> 00:31:49,887 En realidad puede tener varios de ellos, abrir y cerrar según sea necesario. 636 00:31:49,887 --> 00:31:51,720 Así que vamos a echar un vistazo en un par de programas 637 00:31:51,720 --> 00:31:55,070 en IDE CS50 donde ilustrar esta idea de tener 638 00:31:55,070 --> 00:31:58,376 varios conjuntos de PHP delimitado. 639 00:31:58,376 --> 00:32:02,010 >> OK, así que me he abierto un archivo aquí se llama add1.php. 640 00:32:02,010 --> 00:32:03,390 Y darse cuenta de lo que está pasando aquí. 641 00:32:03,390 --> 00:32:08,077 Al igual que antes, tengo un solo PHP conjunto de delimitadores. 642 00:32:08,077 --> 00:32:10,660 Voy a imprimir el mensaje: "Por favor, dame un número." 643 00:32:10,660 --> 00:32:13,394 Entonces me voy a leer una línea y almacenarlo en el $ num1 variable. 644 00:32:13,394 --> 00:32:14,810 Entonces me voy a imprimir de nuevo. 645 00:32:14,810 --> 00:32:16,310 Dame un segundo número. 646 00:32:16,310 --> 00:32:20,450 Leer una línea desde el usuario, almacenar lo que escriben en en $ num2. 647 00:32:20,450 --> 00:32:23,980 Añadir juntos y almacenar esa resultar en una variable llamada $ suma, 648 00:32:23,980 --> 00:32:26,180 y luego imprimir, "El suma de estos dos números 649 00:32:26,180 --> 00:32:29,254 es, "y luego interpelar allí la suma $ variable. 650 00:32:29,254 --> 00:32:31,170 Así que vamos a ejecutar este a través del intérprete 651 00:32:31,170 --> 00:32:33,720 para confirmar que esto es lo que esperamos. 652 00:32:33,720 --> 00:32:37,540 add1.php php. 653 00:32:37,540 --> 00:32:38,665 Por favor, dame un número, 3. 654 00:32:38,665 --> 00:32:40,410 Por favor, dame un segundo número, 4. 655 00:32:40,410 --> 00:32:43,370 La suma de estos dos números es 7. 656 00:32:43,370 --> 00:32:45,030 Eso es 3 más 4. 657 00:32:45,030 --> 00:32:45,530 ¿De acuerdo? 658 00:32:45,530 --> 00:32:47,770 Así que nada terriblemente lujoso allí. 659 00:32:47,770 --> 00:32:51,080 >> Y ahora vamos a abrir add2.php. 660 00:32:51,080 --> 00:32:54,460 Aquí, tengo un par de PHP delimitado conjuntos allí, ¿verdad? 661 00:32:54,460 --> 00:32:59,107 Líneas 1, 3-- líneas 1 y 3 no tienen delimitadores de PHP. 662 00:32:59,107 --> 00:33:00,940 Así que cuando el intérprete los ve, es sólo 663 00:33:00,940 --> 00:33:03,220 va a escupir exactamente lo que he escrito allí. 664 00:33:03,220 --> 00:33:05,011 Así que ahí es donde estoy haciendo toda mi preguntar. 665 00:33:05,011 --> 00:33:11,220 En las líneas 2 y 4, vemos el mismo $ familiar? php tipo de delimitadores, 666 00:33:11,220 --> 00:33:15,210 por lo que esas dos líneas son va a ejecutar como PHP. 667 00:33:15,210 --> 00:33:18,270 Y luego en la línea 5, tengo este Lo extraño aquí, ¿verdad? 668 00:33:18,270 --> 00:33:20,480 Este soporte angular signo de interrogación signo igual. 669 00:33:20,480 --> 00:33:22,660 Yo incluso el zoom un poco más lejos. 670 00:33:22,660 --> 00:33:29,270 Se puede ver que esto es lo que soy hablando de ahí, estos $? =. 671 00:33:29,270 --> 00:33:33,420 >> Resulta que es tan común que la razón por la que abrimos un conjunto de PHP 672 00:33:33,420 --> 00:33:36,055 delimitadores es imprimir un valor. 673 00:33:36,055 --> 00:33:37,430 Y eso es todo lo que vamos a hacer. 674 00:33:37,430 --> 00:33:39,220 Pero hay incluso taquigrafía para eso. 675 00:33:39,220 --> 00:33:46,490 $? = Es la taquigrafía PHP por decir algo así como $? php echo la suma 676 00:33:46,490 --> 00:33:48,350 de num1 y num2. 677 00:33:48,350 --> 00:33:51,900 Así que esto es sólo otra taquigrafía para eso. 678 00:33:51,900 --> 00:33:55,550 >> Así que si ejecuto este programa, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Voy zoom hacia abajo un poco. 680 00:33:57,530 --> 00:33:59,000 Por favor, dame un número, 4. 681 00:33:59,000 --> 00:34:00,350 Por favor, dame un segundo número. 682 00:34:00,350 --> 00:34:04,650 Y como yo no me preocupo por tipos de datos en PHP, puedo decir 4.8. 683 00:34:04,650 --> 00:34:07,160 La suma de estos dos números es 8,8. 684 00:34:07,160 --> 00:34:10,179 Esa función se comporta más o menos exactamente la misma que se esperaría, 685 00:34:10,179 --> 00:34:10,989 así como. 686 00:34:10,989 --> 00:34:13,114 Y yo tengo uno más abierto aquí llamado dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Prueba este nuevo. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Tengo uno más llamado aquí dice1.php, que también, ver, 691 00:34:33,280 --> 00:34:37,440 tiene esa pregunta paréntesis angular marcar la notación signo igual en ese país, 692 00:34:37,440 --> 00:34:40,659 pero noto que en este caso estoy llamando a la función rand, que como ustedes 693 00:34:40,659 --> 00:34:42,790 podría esperar que genera un número aleatorio. 694 00:34:42,790 --> 00:34:46,889 "Usted rodar una", y que va a calcular un número aleatorio, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Así que me dará el número en el rango de 1 a 6. 697 00:34:49,989 --> 00:34:53,040 >> Recuerde que mod 6 me daría un número en el intervalo de 0 a 5, 698 00:34:53,040 --> 00:34:56,630 pero si estoy simulando tiradas de dados, que es lo que estoy haciendo aquí, 699 00:34:56,630 --> 00:35:00,040 No quiero que estos dados para pasar de 0 a 5, quiero dados que van de 1 a 6. 700 00:35:00,040 --> 00:35:02,800 Y lo que esta es una manera de conseguir me en el rango de 1 a 6. 701 00:35:02,800 --> 00:35:04,720 Estoy haciendo esto dos veces. 702 00:35:04,720 --> 00:35:08,630 Así que al parecer estoy rodando dos dados en este programa. 703 00:35:08,630 --> 00:35:15,210 >> Así que voy a borrar mi pantalla, y haré php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Usted rodó un 4 y un 2. 705 00:35:16,640 --> 00:35:19,156 Y si se me acaba el programa de nuevo, usted rodó un 5 y un 5. 706 00:35:19,156 --> 00:35:21,780 Así que cada vez que ejecute el programa, Me estoy poniendo diferentes números, 707 00:35:21,780 --> 00:35:24,280 porque cada vez que lo hago Así que es empezar de nuevo. 708 00:35:24,280 --> 00:35:27,250 Se va a generar una nueva un conjunto de números aleatorios para mí. 709 00:35:27,250 --> 00:35:29,790 >> Así que si estamos acostumbrados a ejecutar programas de C, 710 00:35:29,790 --> 00:35:32,520 estamos acostumbrados a escribir ./ la nombre de un programa, ¿no? 711 00:35:32,520 --> 00:35:35,090 Eso es lo que hemos hecho todo de nuestros programas en C hasta el momento. 712 00:35:35,090 --> 00:35:37,555 Podemos hacer esto en PHP, así mediante la adición de algo que se llama 713 00:35:37,555 --> 00:35:40,026 un tinglado a la cima de nuestro archivo PHP. 714 00:35:40,026 --> 00:35:41,400 Sé que es un poco una palabra tonta. 715 00:35:41,400 --> 00:35:44,540 Es la abreviatura de explosión hash. 716 00:35:44,540 --> 00:35:46,300 Esos son los dos primeros caracteres allí. 717 00:35:46,300 --> 00:35:50,030 Recuerde que llamamos signo de exclamación con frecuencia una explosión en la informática. 718 00:35:50,030 --> 00:35:51,690 También podría ser de explosión agudo. 719 00:35:51,690 --> 00:35:53,273 Hay un par de maneras de interpretar la misma. 720 00:35:53,273 --> 00:35:57,320 Pero es básicamente un tipo especial de ordenar que el intérprete PHP 721 00:35:57,320 --> 00:36:00,160 entiende como, oh, quiero que permite ejecutar este programa, 722 00:36:00,160 --> 00:36:05,250 que aparentemente es / user / bin / php, que es en realidad donde el intérprete PHP 723 00:36:05,250 --> 00:36:08,590 vive específicamente en nuestro sistema. 724 00:36:08,590 --> 00:36:12,530 Así es-- lo que sucede aquí es el intérprete entiende, oh, 725 00:36:12,530 --> 00:36:17,270 Al parecer, se supone que debo utilizar en este programa se ejecute este archivo. 726 00:36:17,270 --> 00:36:20,010 Y por lo que le permite saltarse el paso 727 00:36:20,010 --> 00:36:22,979 de tener que decir php something.php. 728 00:36:22,979 --> 00:36:25,020 Hay otra captura aquí, que es que si 729 00:36:25,020 --> 00:36:27,320 queremos que nuestros programas a funcionará como se espera, se 730 00:36:27,320 --> 00:36:30,220 hay que hacer algo que se llama un cambio de permisos de ficheros. 731 00:36:30,220 --> 00:36:33,380 Y vamos a vaya-- y hablamos un poco poco más cambios de permisos sobre archivos 732 00:36:33,380 --> 00:36:37,550 en nuestro video en MVC, pero basta con decir que esto es lo que hay que hacer 733 00:36:37,550 --> 00:36:42,760 con el fin de hacer su archivos .php ejecutable. 734 00:36:42,760 --> 00:36:49,330 Así que echemos un vistazo a esto como nuestro último ejemplo más en CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Así que aquí en IDE Tengo dos archivos de esta Directorio de PHP que no parece ser 736 00:36:53,910 --> 00:36:55,310 llamada .php. 737 00:36:55,310 --> 00:36:58,170 Tengo una función llamada add-- Tengo un archivo llamado add3 738 00:36:58,170 --> 00:37:00,650 y un archivo llamado dice2. 739 00:37:00,650 --> 00:37:03,680 Así que echemos un rápido buscar y abrir add3. 740 00:37:03,680 --> 00:37:08,300 Y como se puede ver, al principio de mi archivo tengo este tinglado, ¿verdad? 741 00:37:08,300 --> 00:37:11,420 Este punto de hash signo de exclamación. 742 00:37:11,420 --> 00:37:15,115 Ahora, usted también puede que notar que por alguna razón, 743 00:37:15,115 --> 00:37:16,990 Yo no tengo ninguna sintaxis destacando más, 744 00:37:16,990 --> 00:37:20,198 y esto es lo que he aludido antes, que era que si no nombro mi archivo 745 00:37:20,198 --> 00:37:23,040 .php, no tengo el beneficio de resaltado de sintaxis ya. 746 00:37:23,040 --> 00:37:26,220 Este archivo solo se llama add3. 747 00:37:26,220 --> 00:37:30,960 Para que yo pueda ejecutarlo más tarde con ./ add3 y no ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Así que la reason-- todavía bien, sigue siendo válida PHP, 749 00:37:33,680 --> 00:37:37,000 pero no es la sintaxis resaltada, porque este archivo no se llama something.php. 750 00:37:37,000 --> 00:37:41,580 Esa es la única diferencia real aquí, más el tinglado. 751 00:37:41,580 --> 00:37:45,170 Así que vamos a ver lo que sucede cuando Trato de ejecutar este programa. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, al igual que lo haría con C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Permiso add3 negó. 754 00:37:53,190 --> 00:37:55,390 Esto es lo que vas para ver si se olvida 755 00:37:55,390 --> 00:37:59,280 utilizar el comando chmod para cambiar los permisos del archivo. 756 00:37:59,280 --> 00:38:03,845 >> Pues resulta que, PHP regulares archivos no pueden simplemente ser ejecutados. 757 00:38:03,845 --> 00:38:06,970 Ellos pueden ser interpretados, pero estamos hacer algo un poco diferente aquí. 758 00:38:06,970 --> 00:38:07,761 Estamos ejecutarlo. 759 00:38:07,761 --> 00:38:12,970 Y así que tengo que agregar el permiso de la ejecución, chmod a + x para add3. 760 00:38:12,970 --> 00:38:15,680 Entonces puedo decir ./ add3. 761 00:38:15,680 --> 00:38:16,860 Por favor, dame un número. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 La suma de estos dos números es 11. 764 00:38:20,490 --> 00:38:26,530 >> Del mismo modo, ya he chmod dice2, por lo que sólo puede escribir ./ dice2, 765 00:38:26,530 --> 00:38:31,260 usted rodó un 1 y un 1, que laminado en un 5 y un 4, y así sucesivamente. 766 00:38:31,260 --> 00:38:33,680 >> Así que eso es más o menos la idea de una sintaxis de PHP, ¿verdad? 767 00:38:33,680 --> 00:38:35,221 Hay mucho para conseguir a través, lo sé. 768 00:38:35,221 --> 00:38:39,160 Pero es de esperar que haya visto ahora que PHP en realidad no es tan diferente de C 769 00:38:39,160 --> 00:38:43,670 y realmente nos da la capacidad tomar las cosas a un nivel superior o dos. 770 00:38:43,670 --> 00:38:48,230 Nosotros realmente no tenemos que preocuparnos demasiado sobre-- no lo hacemos de verdad 771 00:38:48,230 --> 00:38:51,605 tiene que preocuparse demasiado acerca de los detalles de bajo nivel que nosotros 772 00:38:51,605 --> 00:38:52,980 tenía que preocuparse con C, ¿verdad? 773 00:38:52,980 --> 00:38:56,170 Podemos centrarnos en la más alta cosas de nivel que PHP 774 00:38:56,170 --> 00:39:01,090 nos permite hacer y damos por sentado que va a trabajar para nosotros. 775 00:39:01,090 --> 00:39:04,350 Por lo que nos da la posibilidad ahora, la transición de C a PHP, 776 00:39:04,350 --> 00:39:08,280 para que los programas que son mucho más compleja y tal vez mucho más robusto. 777 00:39:08,280 --> 00:39:13,070 >> Así que espero que se diviertan de trabajo con PHP, y estoy Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Esto es CS50. 779 00:39:15,050 --> 00:39:17,637