1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> ДАГ Lloyd: Так что мы сделано много работы в C, 3 00:00:07,370 --> 00:00:09,536 и С действительно здорово язык, потому что это дает вам 4 00:00:09,536 --> 00:00:12,840 способность погружаться на самом деле низкий уровень в ваши программы. 5 00:00:12,840 --> 00:00:16,810 Мы получаем, чтобы делать вещи, как действительно минут как манипулирование 6 00:00:16,810 --> 00:00:18,800 отдельные байты памяти. 7 00:00:18,800 --> 00:00:21,420 Напомним, что указатели на самом деле позволяют нам, что гибкость. 8 00:00:21,420 --> 00:00:25,260 >> Но мы всегда должны иметь что уровень мелкозернистая деталей 9 00:00:25,260 --> 00:00:26,820 в наших программах? 10 00:00:26,820 --> 00:00:28,210 Наверное, нет, не так ли? 11 00:00:28,210 --> 00:00:30,376 И если мы будем иметь компромисс между тем, 12 00:00:30,376 --> 00:00:32,911 в состоянии сделать действительно, действительно путевки вещи и действительно, действительно 13 00:00:32,911 --> 00:00:35,910 большие вещи, которые мы не должны думать о, мы не должны реализовать 14 00:00:35,910 --> 00:00:40,290 эти действительно большие идеи, если они уже построили в нас, 15 00:00:40,290 --> 00:00:43,980 как правило, для строительства большой программы или проекты, большие 16 00:00:43,980 --> 00:00:49,130 мы, вероятно, будем заблуждаться на стороне в том более язык материал построен в 17 00:00:49,130 --> 00:00:51,300 для нас, вместо того, низкоуровневые вещи. 18 00:00:51,300 --> 00:00:53,970 И вот, когда PHP на самом деле входит. 19 00:00:53,970 --> 00:00:58,200 >> Теперь, одной из причин что мы учим PHP в CS50 20 00:00:58,200 --> 00:01:01,020 является то, что он в значительной степени вдохновлены С. И в самом деле, на мой взгляд, 21 00:01:01,020 --> 00:01:05,140 Есть действительно двух языки предшественники, что 22 00:01:05,140 --> 00:01:08,200 очень распространены в наше время. 23 00:01:08,200 --> 00:01:10,110 С и LISP. 24 00:01:10,110 --> 00:01:13,280 И они языках предшественников потому что каждый другой современного программирования 25 00:01:13,280 --> 00:01:17,380 язык, который разработал с тех пор вдохновлены 26 00:01:17,380 --> 00:01:20,330 один или другой синтаксически. 27 00:01:20,330 --> 00:01:26,160 PHP очень похож синтаксически С, в то время как языков, таких как Scheme, 28 00:01:26,160 --> 00:01:27,900 Например, который Вы, возможно, слышали о, 29 00:01:27,900 --> 00:01:32,070 в значительной степени вдохновлены языке называется LISP, который является старый язык. 30 00:01:32,070 --> 00:01:34,220 >> Так что причина мы учим PHP в CS50, что, 31 00:01:34,220 --> 00:01:37,730 зная C как принципиально как вы делаете в данный момент, 32 00:01:37,730 --> 00:01:41,280 поднимая PHP, которая дает Вам способность делать вещи гораздо более высокие уровня 33 00:01:41,280 --> 00:01:44,710 чем С делает, не что многое из препятствие, 34 00:01:44,710 --> 00:01:48,230 потому что у вас уже есть Основная идея синтаксиса. 35 00:01:48,230 --> 00:01:50,590 С была вокруг в течение почти 45 лет в этой точке. 36 00:01:50,590 --> 00:01:52,780 PHP был вокруг в течение приблизительно 20 лет. 37 00:01:52,780 --> 00:01:57,080 И в том, что 25 лет между программистами, 38 00:01:57,080 --> 00:02:01,540 Установлено, что они будут намного а имеют более высокие способности уровня, 39 00:02:01,540 --> 00:02:04,970 и ошибки и борьба из 20 лет в между 40 00:02:04,970 --> 00:02:08,210 привело к PHP и других современных языков. 41 00:02:08,210 --> 00:02:11,039 >> PHP, большой выбор язык для программного обеспечения 42 00:02:11,039 --> 00:02:14,042 что allow-- для Программное обеспечение that-- где вы 43 00:02:14,042 --> 00:02:16,250 нужно делать то, что в С фактически сложнее. 44 00:02:16,250 --> 00:02:18,480 Так, например, работает со строками в C 45 00:02:18,480 --> 00:02:21,709 очень сложна, потому как мы знаем, в C строк 46 00:02:21,709 --> 00:02:23,250 действительно просто массивы символов. 47 00:02:23,250 --> 00:02:25,230 Это не является встроенным в тип данных. 48 00:02:25,230 --> 00:02:28,220 Или, возможно, более важно, то, что мы даже не покрывают в C, 49 00:02:28,220 --> 00:02:30,360 что, если вам нужно сделать, некоторые компьютерные сети? 50 00:02:30,360 --> 00:02:30,860 Все в порядке? 51 00:02:30,860 --> 00:02:34,920 >> С обладает способностью делать это, но это так тайной и так трудно на самом деле. 52 00:02:34,920 --> 00:02:37,580 Не было бы неплохо, если бы Язык был построен в легкий путь, 53 00:02:37,580 --> 00:02:38,910 осуществить сетей? 54 00:02:38,910 --> 00:02:43,420 И PHP является языком, который делает, что или облегчает, что совсем немного больше. 55 00:02:43,420 --> 00:02:47,740 Как я уже сказал, PHP очень сильно вдохновили по С. синтаксис очень похож. 56 00:02:47,740 --> 00:02:51,760 И так, будем надеяться, сделать Переход от одного к другому 57 00:02:51,760 --> 00:02:54,710 немного мягче, чем некоторые другие языки может быть. 58 00:02:54,710 --> 00:02:58,800 >> Чтобы начать писать PHP, просто откройте файл с расширением .php файлов. 59 00:02:58,800 --> 00:03:00,670 Технически это не на самом деле требуется, 60 00:03:00,670 --> 00:03:04,495 но если вы хотите что-то вроде синтаксиса выделяя в IDE, так что типа 61 00:03:04,495 --> 00:03:07,620 имена, или имена переменных, функции, Вы знаете, ключевые слова языка 62 00:03:07,620 --> 00:03:10,090 выделены в определенный цвет, вы, как правило 63 00:03:10,090 --> 00:03:14,020 хочу называть свои файлы с конкретный файл с расширением. 64 00:03:14,020 --> 00:03:18,430 Так мы назвали наш файл с .php расширение, но затем также с PHP, 65 00:03:18,430 --> 00:03:23,310 все PHP код мы пишем, что Файл должен быть заключен в этих PHP 66 00:03:23,310 --> 00:03:25,190 разделители, которые мы видим Здесь на экране. 67 00:03:25,190 --> 00:03:27,910 Уголок? PHP, чтобы начать. 68 00:03:27,910 --> 00:03:30,860 Тогда мы пишем все наши PHP код, который мы хотим между ними. 69 00:03:30,860 --> 00:03:32,260 А потом ? 70 00:03:32,260 --> 00:03:34,710 скобка, чтобы закрыть. 71 00:03:34,710 --> 00:03:37,170 >> Если мы не сделаем этого, то Что должно случиться? 72 00:03:37,170 --> 00:03:38,170 Это не собирается к краху. 73 00:03:38,170 --> 00:03:39,410 Это не собирается действительно разрушить нашу программу. 74 00:03:39,410 --> 00:03:41,440 Но это не будет иметь эффект, который мы хотим. 75 00:03:41,440 --> 00:03:44,540 Что произойдет, действительно, что, когда мы пытаемся запустить эту программу, 76 00:03:44,540 --> 00:03:50,330 все, что не между этими разделителями собирается быть распечатаны дословно. 77 00:03:50,330 --> 00:03:52,210 Это не собирается на самом деле выполнить код, 78 00:03:52,210 --> 00:03:56,010 это будет просто распечатать его дословно. 79 00:03:56,010 --> 00:03:57,320 >> Теперь, почему это происходит? 80 00:03:57,320 --> 00:04:00,416 Так С, что известно как скомпилированный языке. 81 00:04:00,416 --> 00:04:03,040 Вы, наверное, знакомы с шаг делает ваши программы, 82 00:04:03,040 --> 00:04:07,820 превращая .c файлы и файлы .h в один исполняемый файл с маркам, 83 00:04:07,820 --> 00:04:11,130 в частности, с помощью Clang в качестве нашего компилятора. 84 00:04:11,130 --> 00:04:13,030 PHP, хотя, не есть этот эквивалент. 85 00:04:13,030 --> 00:04:15,600 PHP является то, что называется интерпретируемый язык. 86 00:04:15,600 --> 00:04:16,760 И что это значит? 87 00:04:16,760 --> 00:04:20,680 >> Ну, это означает, что мы не должны преобразовать наш исходный код нулей и единиц 88 00:04:20,680 --> 00:04:21,470 заранее. 89 00:04:21,470 --> 00:04:23,900 Скорее всего, есть программа, который также называют 90 00:04:23,900 --> 00:04:29,771 PHP, который понимает PHP и можете сортировать сделать это на лету. 91 00:04:29,771 --> 00:04:32,520 Это на самом деле не совсем точны, но это довольно хорошая аналогия 92 00:04:32,520 --> 00:04:33,760 что происходит. 93 00:04:33,760 --> 00:04:37,230 Это те, интерпретации нулей и единиц на лету. 94 00:04:37,230 --> 00:04:40,160 И поэтому, если он не знает, как обрабатывать что-то, 95 00:04:40,160 --> 00:04:42,800 если он не знает, как Процесс PHP, вы, вероятно, 96 00:04:42,800 --> 00:04:44,680 хотел поставить, что текст там, верно? 97 00:04:44,680 --> 00:04:48,960 >> Вы, наверное, хотели поставить код в там, даже если это не между PHP-- 98 00:04:48,960 --> 00:04:50,035 PHP-разделители. 99 00:04:50,035 --> 00:04:51,910 Но-- так он не собирается чтобы удалить его для вас, 100 00:04:51,910 --> 00:04:53,576 это просто будет в основном отбросить его. 101 00:04:53,576 --> 00:04:55,550 Так что это в печать это, чтобы на экране. 102 00:04:55,550 --> 00:04:57,150 >> Это кажется, что это плохая вещь, но на самом деле это 103 00:04:57,150 --> 00:04:58,220 будет действительно хорошая вещь, как мы будем 104 00:04:58,220 --> 00:05:00,390 видеть, когда мы говорим о Веб-разработки PHP, 105 00:05:00,390 --> 00:05:04,010 потому что это означает, что мы можем пересыпать PHP и HTML. 106 00:05:04,010 --> 00:05:06,640 Мы можем использовать их вместе, чтобы создать более динамичный веб-страницы. 107 00:05:06,640 --> 00:05:10,650 Но об этом в видео по веб-разработке PHP. 108 00:05:10,650 --> 00:05:12,021 >> Так что синтаксис PHP? 109 00:05:12,021 --> 00:05:13,520 Это то, что это видео является все о. 110 00:05:13,520 --> 00:05:14,850 Давайте поговорим об этом. 111 00:05:14,850 --> 00:05:16,490 >> Таким образом, чтобы начать, переменные. 112 00:05:16,490 --> 00:05:18,030 Существуют PHP переменные. 113 00:05:18,030 --> 00:05:20,067 Есть только два больших отличия от С. 114 00:05:20,067 --> 00:05:21,900 Во-первых, есть нет тип спецификатор. 115 00:05:21,900 --> 00:05:24,245 Мы не должны говорить Int, символ, поплавок, и все такое. 116 00:05:24,245 --> 00:05:25,620 Мы не должны этого делать. 117 00:05:25,620 --> 00:05:26,810 PHP это современный язык. 118 00:05:26,810 --> 00:05:28,910 Это может выяснить, что вы пытаются делать лучший 119 00:05:28,910 --> 00:05:30,451 думаю, чтобы то, что вы пытаетесь сделать. 120 00:05:30,451 --> 00:05:31,700 Так что это довольно приятно. 121 00:05:31,700 --> 00:05:35,330 >> Другое дело, что все переменные Имена должны начать со знака доллара. 122 00:05:35,330 --> 00:05:36,940 Это просто что-то, чтобы привыкнуть к. 123 00:05:36,940 --> 00:05:39,496 Это немного странно, потому что это так, что PHP может понять 124 00:05:39,496 --> 00:05:40,870 что переменную, а что нет. 125 00:05:40,870 --> 00:05:43,340 Таким образом, каждый имя переменной начинается с знака доллара. 126 00:05:43,340 --> 00:05:46,884 Таким образом, в C мы могли бы сказать что-то как это, INT х = 54. 127 00:05:46,884 --> 00:05:48,550 Мы не должны этого делать в PHP. 128 00:05:48,550 --> 00:05:52,540 Мы можем только сказать, $ х = 54. 129 00:05:52,540 --> 00:05:55,920 И мы могли бы сказать, например, в C, если бы мы фунт-включал .h CS50 130 00:05:55,920 --> 00:06:00,314 Файл заголовка, можно сказать, Строка фраза = "Это CS50." 131 00:06:00,314 --> 00:06:01,980 Мы не должны делать это в PHP, хотя. 132 00:06:01,980 --> 00:06:04,865 Мы можем только сказать, $ фразу = "Это CS50." 133 00:06:04,865 --> 00:06:08,760 И в самом деле, строка теперь встроенный тип данных в PHP, 134 00:06:08,760 --> 00:06:10,950 или, скорее, PHP понимает то, что строка является. 135 00:06:10,950 --> 00:06:15,612 Это отдельный из массива символов, как это в С 136 00:06:15,612 --> 00:06:17,570 Все ваши любимые условные заявления C 137 00:06:17,570 --> 00:06:19,520 по-прежнему доступны для использования. 138 00:06:19,520 --> 00:06:21,140 Так что нет большой переход есть. 139 00:06:21,140 --> 00:06:23,400 Мы можем say-- мы можем иметь если заявления, как это. 140 00:06:23,400 --> 00:06:28,210 если у $ 43, или $ г = 15. 141 00:06:28,210 --> 00:06:29,690 Так что это довольно просто. 142 00:06:29,690 --> 00:06:31,980 Мы можем иметь, если и еще. 143 00:06:31,980 --> 00:06:34,210 Мы можем иметь, если и еще если. 144 00:06:34,210 --> 00:06:36,430 >> И обратите внимание, что-то очень приятно здесь, и это 145 00:06:36,430 --> 00:06:39,620 является своего рода один из тех Преимущества PHP в сравнении с C, уведомления 146 00:06:39,620 --> 00:06:41,510 какие функции мы здесь не используете? 147 00:06:41,510 --> 00:06:47,737 Мы используем == для сравнения Переменная, имя $, в строку. 148 00:06:47,737 --> 00:06:49,070 Мы не могли сделать это в C, верно? 149 00:06:49,070 --> 00:06:53,200 Мы должны были использовать функцию с именем StrComp или StrEndComp или любой 150 00:06:53,200 --> 00:06:54,840 из связанных с двоюродными братьями. 151 00:06:54,840 --> 00:06:56,980 >> И так, мы уже видим эти преимущества. 152 00:06:56,980 --> 00:07:00,930 Мы не должны делать что-то так же глупо, или, возможно, неинтуитивными 153 00:07:00,930 --> 00:07:03,540 а вызвать функцию под названием StrComp если я просто хочу, чтобы проверить 154 00:07:03,540 --> 00:07:05,237 равняется ли значение строки. 155 00:07:05,237 --> 00:07:07,820 Я мог бы просто использовать равен равных, как я мог бы сделать что-нибудь еще. 156 00:07:07,820 --> 00:07:09,560 Так что преимущество. 157 00:07:09,560 --> 00:07:13,350 >> Иногда, кстати, вы можете см, если еще в одно слово, ElseIf. 158 00:07:13,350 --> 00:07:14,910 И это нормально в PHP, а также. 159 00:07:14,910 --> 00:07:17,020 Так что иногда вы можете увидеть, что. 160 00:07:17,020 --> 00:07:17,790 Это не опечатка. 161 00:07:17,790 --> 00:07:21,830 PHP на самом деле понимает, ElseIf. 162 00:07:21,830 --> 00:07:23,980 Я не знаю, почему они решил осуществить это, 163 00:07:23,980 --> 00:07:28,220 но, как мы видели много раз на протяжении всей нашей видео до сих пор, 164 00:07:28,220 --> 00:07:30,460 мы программисты любят его, если мы можем сделать все быстро, 165 00:07:30,460 --> 00:07:33,660 так, чтобы избавиться от этого пространства по-видимому, является большим преимуществом. 166 00:07:33,660 --> 00:07:34,800 >> Так вот, если и ElseIf. 167 00:07:34,800 --> 00:07:37,540 У нас также есть тройной оператор, отзыв знак вопроса толстой кишки, 168 00:07:37,540 --> 00:07:43,262 для действительно краткой форме, если еще или условное ветвление. 169 00:07:43,262 --> 00:07:45,470 И, видимо, в том, то, что мы пытаемся сделать здесь 170 00:07:45,470 --> 00:07:49,720 это назначить переменную $ письмо либо истинным, либо ложным, 171 00:07:49,720 --> 00:07:54,110 в зависимости от того вар $ алфавитный символ. 172 00:07:54,110 --> 00:07:57,320 Так что это очень похоже на IsAlpha что мы знакомы из С. 173 00:07:57,320 --> 00:07:59,010 Это своего рода эквивалент в PHP. 174 00:07:59,010 --> 00:08:01,550 Функция по-видимому, называется ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 но это, как мы делаем это в PHP. 176 00:08:03,450 --> 00:08:08,560 Так что все это будет в том, если $ Var это письмо, письмо $ верно. 177 00:08:08,560 --> 00:08:13,820 Если $ Var не письмо, $ письмо является ложным. 178 00:08:13,820 --> 00:08:15,820 >> У нас также есть переключатель заявления еще. 179 00:08:15,820 --> 00:08:17,870 Напомним, тех, от С, а также. 180 00:08:17,870 --> 00:08:22,480 На самом верху там, это, как мы делаем что-то вроде Get INT или получить строку. 181 00:08:22,480 --> 00:08:23,845 Итак, PHP имеет, что построенный в. 182 00:08:23,845 --> 00:08:25,470 Мы не должны библиотеку CS50 больше. 183 00:08:25,470 --> 00:08:27,237 Мы можем просто использовать функцию Readline. 184 00:08:27,237 --> 00:08:29,820 То, что это собирается сделать, это распечатать из сообщения, "Ваш государство, 185 00:08:29,820 --> 00:08:33,820 пожалуйста ", а затем мигает строку ждет ввода пользователем 186 00:08:33,820 --> 00:08:34,739 некоторая информация. 187 00:08:34,739 --> 00:08:36,530 Теперь обратите внимание, что еще мы можем сделать с выключателем. 188 00:08:36,530 --> 00:08:39,105 Если вы использовали его раньше, Вы можете вспомнить, что переключатель 189 00:08:39,105 --> 00:08:44,960 ограничивается довольно много целых чисел и символы, но теперь мы можем использовать строки. 190 00:08:44,960 --> 00:08:50,190 И в самом деле, переход себе в PHP совсем немного более гибким 191 00:08:50,190 --> 00:08:54,880 чем его двоюродный брат из С 192 00:08:54,880 --> 00:08:55,380 Петли. 193 00:08:55,380 --> 00:08:58,130 Так же, как условные, все Ваши старые фавориты все еще там. 194 00:08:58,130 --> 00:09:00,740 У нас есть в то время как петли, рассчитывать от 1 до 100 в этом случае. 195 00:09:00,740 --> 00:09:03,940 Мы в то время как петли делать что считать от 1 до 100, 196 00:09:03,940 --> 00:09:06,200 и у нас есть для петель что считать от 1 до 100. 197 00:09:06,200 --> 00:09:07,220 Так что нет большой скачок там. 198 00:09:07,220 --> 00:09:09,360 Синтаксис довольно много точно так же, 199 00:09:09,360 --> 00:09:11,760 только теперь мы используем Переменная знак доллара вместо 200 00:09:11,760 --> 00:09:17,260 декларирования целочисленных переменных или что-то подобное для наших прилавках. 201 00:09:17,260 --> 00:09:20,090 >> Вот где все становится намного лучше, чем C, хотя. 202 00:09:20,090 --> 00:09:21,020 Массивы. 203 00:09:21,020 --> 00:09:23,020 Так помню, когда мы были говорить о С, для того, 204 00:09:23,020 --> 00:09:25,560 для нас, чтобы расти и сокращаться наборы информации, 205 00:09:25,560 --> 00:09:28,310 нам нужно отсортировать дефолта к этой идее связанного списка, 206 00:09:28,310 --> 00:09:30,780 потому что C массивы фиксированного размера. 207 00:09:30,780 --> 00:09:31,800 Мы не могли уменьшить их. 208 00:09:31,800 --> 00:09:32,930 Мы не могли выращивать их. 209 00:09:32,930 --> 00:09:36,074 Нам пришлось перераспределить память и делать все это безумие 210 00:09:36,074 --> 00:09:38,490 или использовать связанные списки, которые взять немного больше пространства. 211 00:09:38,490 --> 00:09:41,590 Но в PHP, массивы не фиксированный размер больше. 212 00:09:41,590 --> 00:09:43,240 Они могут расти, и они могут сокращаться. 213 00:09:43,240 --> 00:09:46,660 Итак, еще раз, эти 20 лет, что существует между первым выпуском С 214 00:09:46,660 --> 00:09:49,440 и первый выпуск PHP, мы решили, что, знаете, 215 00:09:49,440 --> 00:09:51,670 это было бы действительно здорово если бы мы могли сделать это. 216 00:09:51,670 --> 00:09:54,100 И так мы реализовали это. 217 00:09:54,100 --> 00:09:58,040 >> Так PHP массивы не фиксируется в размер, и потому, что PHP на самом деле не 218 00:09:58,040 --> 00:10:03,090 есть программист переднюю облицовку- Понятия типов, 219 00:10:03,090 --> 00:10:05,110 мы можем смешать типы данных в наших массивах, тоже. 220 00:10:05,110 --> 00:10:08,100 Таким образом, мы даже не должны использовать все целые или все плавающие точки, 221 00:10:08,100 --> 00:10:12,826 мы можем иметь сочетание всех различные виды в одном массиве. 222 00:10:12,826 --> 00:10:14,700 Объявление массива довольно проста. 223 00:10:14,700 --> 00:10:16,116 Это просто, как и любой другой переменной. 224 00:10:16,116 --> 00:10:20,020 $ НУМС = массив (1, 2, 3, 4), массив является функцией 225 00:10:20,020 --> 00:10:22,760 что встроенный в PHP, что создаст массив для вас. 226 00:10:22,760 --> 00:10:28,315 Это создает массив из четырех значений, Цифры в этом случае, называют $ Nums. 227 00:10:28,315 --> 00:10:29,940 И есть более чем один способ сделать это. 228 00:10:29,940 --> 00:10:32,420 И мы собираемся увидеть это много в PHP. 229 00:10:32,420 --> 00:10:36,380 PHP был разработан много различных люди и растет и растет и растет. 230 00:10:36,380 --> 00:10:40,050 Там, как правило, не только два или три способа сделать что-то в PHP, 231 00:10:40,050 --> 00:10:42,170 там, как правило, как 10 или 20. 232 00:10:42,170 --> 00:10:45,300 Вот только еще один общий способ объявить массив. 233 00:10:45,300 --> 00:10:48,310 $ НУМС = квадратных скобок 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Так что это своего рода похожи на угол С в br-- вьющиеся обозначения скобки, а. $ - 235 00:10:53,170 --> 00:10:58,525 или это будет INT НУМС площади Кронштейны равна фигурную скобку 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 В PHP это $ НУМС = квадрат Кронштейны 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Но и из этих примеров здесь дают мне массив из четырех человек в этом случае целых чисел. 238 00:11:08,920 --> 00:11:10,920 >> Что делать, если я хочу что-то лавировать сейчас? 239 00:11:10,920 --> 00:11:14,760 Ну что я могу только сказать, $ НУМС 4, опять же, мы все еще считая от 0 здесь 240 00:11:14,760 --> 00:11:17,800 в PHP, будет пятый элемент массива. 241 00:11:17,800 --> 00:11:18,990 Я могу только сказать, что. 242 00:11:18,990 --> 00:11:22,860 Я не собираюсь страдать SEG вина, потому что мой массив только 243 00:11:22,860 --> 00:11:24,337 будет расти, чтобы приспособить это. 244 00:11:24,337 --> 00:11:25,420 Это довольно приятно, правда? 245 00:11:25,420 --> 00:11:28,400 И в самом деле, я даже не нужно указать, где я хочу, чтобы положить его. 246 00:11:28,400 --> 00:11:31,220 Я могу только сказать, это и просто лавировать это право до конца, 247 00:11:31,220 --> 00:11:34,099 или я мог даже просто скажем, $ 20 или Nums 1000. 248 00:11:34,099 --> 00:11:35,140 Это действительно не имеет значения. 249 00:11:35,140 --> 00:11:38,330 Это еще только собирается лавировать это право до конца. 250 00:11:38,330 --> 00:11:41,490 >> Так что я могу расти, и мы as-- не собирается, чтобы покрыть его здесь, 251 00:11:41,490 --> 00:11:45,360 но я могу соединить или полоса элементы из массива, а также, 252 00:11:45,360 --> 00:11:50,064 и массив будет сокращаться, чтобы приспособить что сейчас отсутствует или пустое пространство. 253 00:11:50,064 --> 00:11:52,230 Там еще один способ лавировать то в массив, 254 00:11:52,230 --> 00:11:54,330 которая является функцией называется array_push. 255 00:11:54,330 --> 00:11:57,860 Итак, еще раз, только в этом мысль о том, в состоянии сделать вещи по-разному. 256 00:11:57,860 --> 00:12:01,950 Таким образом, мы видели три разные способы в настоящее время чтобы прикрепить другой элемент в массив. 257 00:12:01,950 --> 00:12:06,900 Таким образом, это добавляет еще один элемент до конца массива $ Nums. 258 00:12:06,900 --> 00:12:08,340 И мы можем смешать наши типы данных. 259 00:12:08,340 --> 00:12:13,110 Так что я мог есть массив не 1, 2, 3, 4, но 1, правда, 3, 4, 260 00:12:13,110 --> 00:12:16,420 где правда является логическим, а затем если я хочу, чтобы лавировать на другой элемент 261 00:12:16,420 --> 00:12:20,860 в этом массиве, возможно, строка, строка "пять", я мог бы сделать это. 262 00:12:20,860 --> 00:12:26,110 А теперь мой массив будет быть 1, правда, 3, 4, пять. 263 00:12:26,110 --> 00:12:28,640 Слово пять, не целое число 5. 264 00:12:28,640 --> 00:12:31,270 Так много гибкости там. 265 00:12:31,270 --> 00:12:33,290 >> Гибкость получает даже лучше, хотя, 266 00:12:33,290 --> 00:12:37,530 Поскольку PHP поддерживает то называется ассоциативным массивом. 267 00:12:37,530 --> 00:12:40,660 И мы вроде смутно говорили о ассоциативные массивы в C 268 00:12:40,660 --> 00:12:44,740 в контексте хэш-таблиц, потому что то, что ассоциативные массивы на самом деле все 269 00:12:44,740 --> 00:12:48,950 о делают ключ отображения значение пара. 270 00:12:48,950 --> 00:12:53,410 И в этом случае, если keys-- мы знакомы с массивами из C, 271 00:12:53,410 --> 00:12:55,440 ключи индексные. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 И то, что значения мы находим, что Массив 0, 1 массив, массив 2, и так далее. 274 00:13:03,070 --> 00:13:06,310 Таким образом, ключи индексы, и значения 275 00:13:06,310 --> 00:13:10,060 что в этом месте массива, указано, что индекс. 276 00:13:10,060 --> 00:13:15,130 >> Но в PHP, мы не должны делать это Понятие массива 0, массив 1, массив 2 277 00:13:15,130 --> 00:13:15,830 больше. 278 00:13:15,830 --> 00:13:21,025 Теперь мы можем использовать фактические слова на карту ключи значений. 279 00:13:21,025 --> 00:13:22,650 И поэтому я мог сказать что-то вроде этого. 280 00:13:22,650 --> 00:13:26,710 Я мог бы создать массив с помощью квадрат синтаксис следующим кронштейн. 281 00:13:26,710 --> 00:13:30,685 $ пиццы = квадратная скобка "сыр", а затем 282 00:13:30,685 --> 00:13:37,210 такого рода двойной записи стрелкой, 8.99, "пепперони," стрелка 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 и так далее. 284 00:13:37,880 --> 00:13:39,060 И так, что же здесь происходит? 285 00:13:39,060 --> 00:13:41,040 Что я на самом деле делать? 286 00:13:41,040 --> 00:13:43,990 Я создаю ключевых отображения пары значений. 287 00:13:43,990 --> 00:13:49,060 Таким образом, вместо того, чтобы говорить, например, пицца 0, шт 1, 2, пиццы 288 00:13:49,060 --> 00:13:52,350 Теперь я могу сказать, пиццы сыр, пицца пепперони, 289 00:13:52,350 --> 00:13:55,120 и относятся к значениям связанные с ними. 290 00:13:55,120 --> 00:13:56,970 >> Так вот наши ключи в зеленый цвет. 291 00:13:56,970 --> 00:13:59,870 Сыр, Пепперони, растительное, буйволов курица. 292 00:13:59,870 --> 00:14:04,200 Вот стрелка, который делает этот ключ отображение значение пара. 293 00:14:04,200 --> 00:14:07,420 А потом здесь значения в этом месте массиве. 294 00:14:07,420 --> 00:14:10,330 Так что это, как говорят массив 0 равен 8,99. 295 00:14:10,330 --> 00:14:11,720 Ключ 0. 296 00:14:11,720 --> 00:14:13,600 Значение 8,99. 297 00:14:13,600 --> 00:14:19,370 Теперь я могу сказать, массив сыр, или в этом Дело пиццы, сыр является ключевым, 298 00:14:19,370 --> 00:14:23,340 и что я нахожу в пицца сыр 8.99. 299 00:14:23,340 --> 00:14:25,540 Это значение, что я нахожу там. 300 00:14:25,540 --> 00:14:28,124 >> Поэтому я могу сказать вещи, как. $ пиццы сыр = 7.99. 301 00:14:28,124 --> 00:14:29,040 Сказать, что я с продажи. 302 00:14:29,040 --> 00:14:31,750 Я хочу dis-- Я хочу отказаться цена пиццы сыра. 303 00:14:31,750 --> 00:14:35,620 Или я могу использовать растительное пицца как часть состояния, 304 00:14:35,620 --> 00:14:39,990 или я могу добавить новый элемент в мой Массив, как я мог сделать ранее. 305 00:14:39,990 --> 00:14:44,680 Я могу добавить новый элемент в этом Ассоциативный массив с ключом "бекон" 306 00:14:44,680 --> 00:14:49,250 и значение 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Но это своего рода представляет проблему, если вы думаете об этом ни на секунду. 308 00:14:53,820 --> 00:14:55,721 Как бы мы перебора массива? 309 00:14:55,721 --> 00:14:56,220 Правильно? 310 00:14:56,220 --> 00:14:59,820 В C, мы бы просто иметь цикл, обычно, что 311 00:14:59,820 --> 00:15:03,650 будет работать от 0 до размер массива минус 1. 312 00:15:03,650 --> 00:15:08,060 Массив имеет п элементов в в, то Допустимые индексы от 0 до N минус 1. 313 00:15:08,060 --> 00:15:11,530 Таким образом, мы могли бы использовать цикл для шаг через каждый одного элемента. 314 00:15:11,530 --> 00:15:13,530 >> Но это на самом деле не так больше, не так ли? 315 00:15:13,530 --> 00:15:17,360 Теперь, когда у нас есть ключ значение пары отображения, где ключи слова, 316 00:15:17,360 --> 00:15:19,970 как мы перебрать все слова? 317 00:15:19,970 --> 00:15:22,420 Ну, к счастью, есть PHP способ справиться с этим тоже, 318 00:15:22,420 --> 00:15:24,580 и поэтому мы будем прыгать назад чтобы петли на секунду 319 00:15:24,580 --> 00:15:30,780 ввести четвертый вид петли, существует в PHP называется цикл по каждому элементу. 320 00:15:30,780 --> 00:15:34,430 И то, что цикл по каждому элементу делает это в основном та же идея. 321 00:15:34,430 --> 00:15:36,060 Вы можете использовать его для любого вида массива. 322 00:15:36,060 --> 00:15:38,100 Но это в основном Та же идея, как цикл, 323 00:15:38,100 --> 00:15:40,750 кроме вместо индексные, вы просто 324 00:15:40,750 --> 00:15:45,830 есть этот странный синтаксис где Вы называете каждый элемент 325 00:15:45,830 --> 00:15:47,550 имя для целей этого цикла. 326 00:15:47,550 --> 00:15:49,258 >> Таким образом, в этом случае, Еогеасп ($ массив, как $ ключ). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 В принципе, в том, что комментарий нот, внутри этого цикл по каждому элементу, 329 00:15:56,450 --> 00:16:00,466 он собирается перейти каждый элемент массива $, который, как правило 330 00:16:00,466 --> 00:16:03,340 будет ассоциативным массивом, но действительно может быть любой вид массива 331 00:16:03,340 --> 00:16:05,419 что вы хотите в PHP. 332 00:16:05,419 --> 00:16:07,210 И каждый раз, что в для цикла вы могли 333 00:16:07,210 --> 00:16:13,780 сказал $ массива в квадратных скобках $ я, вы могли бы просто сказать $ ключ. 334 00:16:13,780 --> 00:16:22,340 Так что $ ключ становится псевдоним каждый Индекс вашего PHP ассоциативный массив, 335 00:16:22,340 --> 00:16:23,710 и поэтому вы можете использовать его как что. 336 00:16:23,710 --> 00:16:25,897 >> Так, например, мы в Теперь получили наш пиццы массив. 337 00:16:25,897 --> 00:16:27,730 Я вроде засунул его в углу 338 00:16:27,730 --> 00:16:31,080 так что мы можем использовать его, чтобы сделать быстрый пример. 339 00:16:31,080 --> 00:16:36,420 Если я говорю, Foreach ($ пиццы как $ пиццы), ну, что же происходит? 340 00:16:36,420 --> 00:16:42,400 Ну, я собираюсь перебора каждый один элемент массива $ пиццы, 341 00:16:42,400 --> 00:16:46,670 и таким образом, я собираюсь позвонить каждый элемент, когда я внутри 342 00:16:46,670 --> 00:16:49,400 тела, что для цикла, $ пиццу. 343 00:16:49,400 --> 00:16:52,440 >> Так вот рода стоять в, напомним, что $ пиццы 344 00:16:52,440 --> 00:16:59,140 является заместителем для говоря $ пицца квадратные скобки $ I 345 00:16:59,140 --> 00:17:03,370 если бы мы использовали для цикла, где мы может идти от $ = 0, чтобы в этом случае, 346 00:17:03,370 --> 00:17:06,089 $ я = 3. 347 00:17:06,089 --> 00:17:09,780 Если у нас не было пары ключ-значение Здесь, это было бы элементом 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 и мы хотели бы использовать для цикла, чтобы пойти $ пиццы 0, $ 1 пицца, пицца $ 2, 349 00:17:16,390 --> 00:17:17,750 $ пиццы 3. 350 00:17:17,750 --> 00:17:23,130 Так что теперь только $ пицца подставляя для этого отдельного ключа. 351 00:17:23,130 --> 00:17:25,630 >> Так что это собирается печатать? 352 00:17:25,630 --> 00:17:29,030 Я печатаю $ пиццу. 353 00:17:29,030 --> 00:17:35,270 Что я собираюсь найти at-- если я распечатать $ пиццу, $ я? 354 00:17:35,270 --> 00:17:35,770 Правильно? 355 00:17:35,770 --> 00:17:38,680 Если я собираюсь распечатать й элемент пиццы, 356 00:17:38,680 --> 00:17:40,070 что я буду печатать? 357 00:17:40,070 --> 00:17:42,580 Я собираюсь распечатать Значения в этом месте, верно? 358 00:17:42,580 --> 00:17:45,370 Подобно этому, если мы делали это в контексте C, 359 00:17:45,370 --> 00:17:49,786 мы обычно не используют наш итератор Переменная, INT = 0, я меньше, чем 3, 360 00:17:49,786 --> 00:17:52,900 я ++, распечатать 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Мы печатаем из массива 0, Массив 1, Массив 2, 3 массив. 362 00:17:57,500 --> 00:17:59,580 И так, что это выводит это. 363 00:17:59,580 --> 00:18:01,150 Это список цен. 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 >> Теперь небольшое замечание здесь. 366 00:18:06,900 --> 00:18:10,900 Цикл по каждому элементу не обязательно распечатать вещи в порядке. 367 00:18:10,900 --> 00:18:12,770 Это не гарантировано. 368 00:18:12,770 --> 00:18:13,550 Это обычно делает. 369 00:18:13,550 --> 00:18:17,667 Это, как правило, на основании приказа в какие элементы будут добавлены в массив, 370 00:18:17,667 --> 00:18:18,750 так что просто имейте это в виду. 371 00:18:18,750 --> 00:18:20,830 Это не может быть в порядке. 372 00:18:20,830 --> 00:18:23,930 Но цикл по каждому элементу будет повторять по каждой элемента 373 00:18:23,930 --> 00:18:25,060 массива в вопросе. 374 00:18:25,060 --> 00:18:27,980 В этом случае, опять же, что массив $ пиццы. 375 00:18:27,980 --> 00:18:32,920 >> Я могу изменить синтаксис, хотя, если Хочу ключ и значение. 376 00:18:32,920 --> 00:18:37,179 Вместо того чтобы сказать $ пиццы а $ пиццы, я могу сказать, что это. 377 00:18:37,179 --> 00:18:39,470 И если вы посмотрите на то, что я выделены зеленым цветом здесь, 378 00:18:39,470 --> 00:18:42,130 это выглядит как ключевой отображения значение пар. 379 00:18:42,130 --> 00:18:45,980 И поэтому, если you--, даже если вы не совсем уверен, что это будет делать, 380 00:18:45,980 --> 00:18:49,300 Вы можете догадаться, что $ долива собирается 381 00:18:49,300 --> 00:18:53,800 чтобы стать ключевым в данном случае и $ цена будет значение. 382 00:18:53,800 --> 00:18:59,200 Так что я в настоящее время замены каждый элемент из $ пиццы как ключевой пары значений, 383 00:18:59,200 --> 00:19:03,900 и теперь я могу обратиться к ключу и значение, которые могли бы пригодиться, 384 00:19:03,900 --> 00:19:05,590 например, следующим образом. 385 00:19:05,590 --> 00:19:10,170 >> "Целый" - это много печать происходит here-- "в целом" 386 00:19:10,170 --> 00:19:17,300 долива "пицца стоит $" цену, а затем Я распечатать период и обратной косой п. 387 00:19:17,300 --> 00:19:23,420 Так что теперь, уведомление снова у меня есть доступ к ключ, $ долива, а значение, $ цена. 388 00:19:23,420 --> 00:19:26,647 Так вы можете догадаться, что это будет распечатать? 389 00:19:26,647 --> 00:19:29,480 Там очень много печатных заявлений, но есть только один обратный слеш п, 390 00:19:29,480 --> 00:19:33,410 так что это напечатать что-нибудь на entire-- на одной строке кода. 391 00:19:33,410 --> 00:19:36,965 >> Если я могу обратиться к ключу и значение, то теперь, 392 00:19:36,965 --> 00:19:39,090 а не просто быть в состоянии распечатать цен, 393 00:19:39,090 --> 00:19:41,330 Я могу напечатать что-то вроде этого. 394 00:19:41,330 --> 00:19:43,780 "Целый пицца сыр стоит $ 8,99." 395 00:19:43,780 --> 00:19:47,150 А теперь я использую все keys-- сыр, пепперони, овощи, 396 00:19:47,150 --> 00:19:49,640 буйвол chicken-- и значения. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 Так это просто другой способ 398 00:19:53,980 --> 00:19:57,840 сделать цикл по каждому элементу, что вместо просто дать вам доступ к значениям, 399 00:19:57,840 --> 00:20:02,950 он просто дает you-- это дает вам Доступ к ключам и значениям. 400 00:20:02,950 --> 00:20:04,411 >> Так распечатки информации. 401 00:20:04,411 --> 00:20:07,410 Я уже сделал это пару различные способы, вы, возможно, заметили. 402 00:20:07,410 --> 00:20:11,080 Эти две функции, прежде всего, мы в видел в печати и эхо. 403 00:20:11,080 --> 00:20:14,380 А для почти всех намерений и Цели, они точно так же. 404 00:20:14,380 --> 00:20:17,130 They're-- есть очень тонкая Разница, что даже не стоит 405 00:20:17,130 --> 00:20:21,130 попасть в, но в основном везде Вы можете использовать печать можно, вероятно, использовать 406 00:20:21,130 --> 00:20:22,370 эхо, а также. 407 00:20:22,370 --> 00:20:23,610 >> И это не только два. 408 00:20:23,610 --> 00:20:26,970 PHP имеет много разных способа печати вещи, 409 00:20:26,970 --> 00:20:30,520 а также имеет возможности интеграции Переменные в середине строки. 410 00:20:30,520 --> 00:20:32,860 Так, помните из C, ты помните, что функция 411 00:20:32,860 --> 00:20:37,580 мы можем использовать, чтобы заменить переменные в то, что мы хотим, чтобы распечатать? 412 00:20:37,580 --> 00:20:40,160 Вы, наверное, использовать это функционировать довольно много. 413 00:20:40,160 --> 00:20:42,290 Printf, верно? 414 00:20:42,290 --> 00:20:45,290 Так что это то, что мы имели до внутри в контексте нашей цикл по каждому элементу. 415 00:20:45,290 --> 00:20:48,000 Мы имели эти пять отдельные высказывания печати, 416 00:20:48,000 --> 00:20:50,330 потому что это был единственный как я на самом деле знал в то время 417 00:20:50,330 --> 00:20:52,450 как распечатать сообщения. 418 00:20:52,450 --> 00:20:59,560 Я не знаю, как интегрировать Переменная $ долива в моей PHP кода. 419 00:20:59,560 --> 00:21:03,700 Ну, если я просто взял диких догадаться, Printf, на самом деле работал бы. 420 00:21:03,700 --> 00:21:08,980 Printf является функцией что я могу использовать в PHP, как я могу использовать его в С. 421 00:21:08,980 --> 00:21:11,880 >> И так-то, как это, Printf, снова, мы знакомы с этим. 422 00:21:11,880 --> 00:21:16,420 Первый% s заменяется со значением $ главе. 423 00:21:16,420 --> 00:21:19,700 Второй% s заменяется со значением $ цене. 424 00:21:19,700 --> 00:21:22,630 И поэтому я interpellating, которая является просто причудливый способ 425 00:21:22,630 --> 00:21:25,400 сказать, что я вставлять переменные в этом месте. 426 00:21:25,400 --> 00:21:31,000 Так что я подключения $ долива, где красный% s является и $ цена, где синий% s 427 00:21:31,000 --> 00:21:36,060 есть, и тогда я хотел бы получить сообщение, "Целый пицца сыр стоит $ 8,99." 428 00:21:36,060 --> 00:21:37,750 >> Не только так я могу это сделать, хотя. 429 00:21:37,750 --> 00:21:39,760 Может быть, я хотел бы использовать этот метод. 430 00:21:39,760 --> 00:21:44,890 Это на самом деле то, что наиболее часто называется переменная запрос. 431 00:21:44,890 --> 00:21:45,690 Я могу использовать эхо. 432 00:21:45,690 --> 00:21:47,737 Я мог бы использовать печать тоже, как мы увидим. 433 00:21:47,737 --> 00:21:48,820 Но что здесь происходит? 434 00:21:48,820 --> 00:21:51,520 >> Прежде всего, я должен избежать знак доллара. 435 00:21:51,520 --> 00:21:55,140 Потому что помню, когда мы были на самом деле распечатать цены пиццы, 436 00:21:55,140 --> 00:21:59,370 Я на самом деле форматирование их денежные показатели со знаком доллара. 437 00:21:59,370 --> 00:22:05,635 Но мы используем знаки доллара также представлять имена переменных в PHP, 438 00:22:05,635 --> 00:22:08,010 и, в частности, когда я с помощью этого метода в фигурных 439 00:22:08,010 --> 00:22:10,040 Переменная скобка Метод запрос, мне нужно 440 00:22:10,040 --> 00:22:13,490 чтобы избежать моей знак доллара так что это не думаю, что я говорю о переменной. 441 00:22:13,490 --> 00:22:16,920 Это на самом деле происходит, чтобы, буквально напечатать знак доллара. 442 00:22:16,920 --> 00:22:19,530 >> Так вроде аналогию его Вы видите в конце там. 443 00:22:19,530 --> 00:22:22,832 Это на самом деле не печать обратный слеш н, верно? 444 00:22:22,832 --> 00:22:24,290 Это печатает символ новой строки. 445 00:22:24,290 --> 00:22:26,750 Это is-- это не собирается печать знак обратной косой доллар, 446 00:22:26,750 --> 00:22:30,130 это будет просто распечатать знак доллара знак. 447 00:22:30,130 --> 00:22:30,640 Та же самая идея. 448 00:22:30,640 --> 00:22:32,760 Побег последовательности, то, что эти вещи называются. 449 00:22:32,760 --> 00:22:37,080 >> Но заметьте, что я не делаю любой вид% S замен, 450 00:22:37,080 --> 00:22:40,050 Я просто буквально затыкать В этих переменных. 451 00:22:40,050 --> 00:22:45,110 И так в this-- что случится здесь является то, что стоимость $ topping-- снова, 452 00:22:45,110 --> 00:22:48,390 просто соответствует тому, что мы были идет о так far-- сыра бы получить 453 00:22:48,390 --> 00:22:49,720 подключен там. 454 00:22:49,720 --> 00:22:54,780 И $ цена будет все значение на пиццу, квадратные скобки, сыр, 455 00:22:54,780 --> 00:22:56,270 который был 8,99. 456 00:22:56,270 --> 00:23:01,860 И так это было также распечатать "Целый пицца сыр стоит $ 8,99." 457 00:23:01,860 --> 00:23:05,160 И как я уже сказал, я мог бы использовать распечатать здесь вместо эхо, 458 00:23:05,160 --> 00:23:08,040 и функциональность быть в значительной степени то же самое. 459 00:23:08,040 --> 00:23:09,660 Было бы распечатать то же самое. 460 00:23:09,660 --> 00:23:12,680 >> Там еще один способ сделать это, и это является еще одним преимуществом 461 00:23:12,680 --> 00:23:14,710 РНР работы со строками. 462 00:23:14,710 --> 00:23:17,130 Мы можем сделать конкатенацию. 463 00:23:17,130 --> 00:23:19,660 Мы могли бы сделать это в C, тоже, используя функцию, называемую strcat, 464 00:23:19,660 --> 00:23:21,180 но опять же, мы должны были вызывать отдельные функции. 465 00:23:21,180 --> 00:23:22,640 Это был весь этот беспорядок, чтобы сделать. 466 00:23:22,640 --> 00:23:24,590 Нам пришлось фунт-включают string.h. 467 00:23:24,590 --> 00:23:25,780 Это было производство, верно? 468 00:23:25,780 --> 00:23:30,070 Но теперь я могу просто использовать этот оператор точка для объединения строк вместе. 469 00:23:30,070 --> 00:23:34,910 >> Так что я объединением "в целом" и то все значение $ разворотных есть 470 00:23:34,910 --> 00:23:38,860 а потом еще Строка, "расходы пиццы $" 471 00:23:38,860 --> 00:23:42,340 а затем объединения независимо значение $ цене, 472 00:23:42,340 --> 00:23:45,670 а затем в самом конце я лавируя на период обратной косой п. 473 00:23:45,670 --> 00:23:47,926 И так это было также распечатать "в целом", - еще раз, 474 00:23:47,926 --> 00:23:50,550 если мы говорим о первой элемент этой пиццы array-- 475 00:23:50,550 --> 00:23:54,710 "Целый пицца сыр стоит $ 8,99." 476 00:23:54,710 --> 00:24:01,260 Период, обратный слеш п, опять же, с $ долива и $ цена заменяющий 477 00:24:01,260 --> 00:24:06,580 за то, что мы указано в нашем Еогеасп цикл в качестве ключевой отображения значение пар. 478 00:24:06,580 --> 00:24:08,050 >> PHP может обрабатывать функции. 479 00:24:08,050 --> 00:24:11,250 Функции были своего рода неотъемлемой C, как мы видели. 480 00:24:11,250 --> 00:24:14,870 Как переменных, мы не должны указать тип возвращаемого функцией, 481 00:24:14,870 --> 00:24:16,350 потому что это на самом деле не имеет значения. 482 00:24:16,350 --> 00:24:18,660 И мы не указать Типы данных параметров, либо 483 00:24:18,660 --> 00:24:21,410 потому что они на самом деле не Дело, как мы видели в PHP. 484 00:24:21,410 --> 00:24:24,510 Каждая функция вводится с функцией ключевое слово. 485 00:24:24,510 --> 00:24:27,920 Вот как мы указать вызова, которые то, что мы говорим о функции. 486 00:24:27,920 --> 00:24:29,720 >> И мы не должны дело с главным вообще, 487 00:24:29,720 --> 00:24:33,690 потому что интерпретатор, PHP переводчик, работает сверху вниз, 488 00:24:33,690 --> 00:24:34,190 несмотря на. 489 00:24:34,190 --> 00:24:35,640 Если видит, что вы можете сделать вызов функции, то это 490 00:24:35,640 --> 00:24:37,850 пойти найти вызов функции, даже если это приходит позже. 491 00:24:37,850 --> 00:24:40,360 Но это будет читать сверху снизу, таким образом, мы не должны указать, 492 00:24:40,360 --> 00:24:41,500 вот где вы начинаете. 493 00:24:41,500 --> 00:24:46,700 Вы начинаете на линии 1 Ваш PHP и работать оттуда вниз. 494 00:24:46,700 --> 00:24:49,690 >> Так вот, как бы мы создать функция называется hard_square. 495 00:24:49,690 --> 00:24:54,100 Это, по-видимому занимает одно параметр, который я звоню $ х. 496 00:24:54,100 --> 00:24:58,424 Эта функция осложняется только чтобы проиллюстрировать различные вещи. 497 00:24:58,424 --> 00:24:59,590 У нас еще есть возвращаемые значения. 498 00:24:59,590 --> 00:25:00,870 Я использую для цикла здесь. 499 00:25:00,870 --> 00:25:04,970 Но это в основном просто, что это составляет всего $ х раз $ х. 500 00:25:04,970 --> 00:25:10,520 То, что я на самом деле делает, просто добавив х до 0 х раз, или $ х $ к нулю х раз. 501 00:25:10,520 --> 00:25:15,850 Но это эффективно именно так же, как умножение $ х раз $ х. 502 00:25:15,850 --> 00:25:18,700 Я до сих пор может возвращать значение, в этом случае $ результате 503 00:25:18,700 --> 00:25:22,060 и я сделал функцию в PHP. 504 00:25:22,060 --> 00:25:24,160 >> Вот как вы можете использовать его в контексте. 505 00:25:24,160 --> 00:25:26,020 Так, может быть, я внутри некоторого PHP-файл. 506 00:25:26,020 --> 00:25:29,240 Обратите внимание, в синем, что там Я использовал мои PHP разделители, 507 00:25:29,240 --> 00:25:31,010 скобка знак вопроса PHP. 508 00:25:31,010 --> 00:25:35,180 Между тем, все из РНР, что я хочу писать. 509 00:25:35,180 --> 00:25:37,840 Так что я, видимо, собирается get-- Я собираюсь предложить пользователю 510 00:25:37,840 --> 00:25:41,550 чтобы дать мне номер, магазин, Переменная, магазин в этом переменной $ х, 511 00:25:41,550 --> 00:25:43,320 все, что они мне дали. 512 00:25:43,320 --> 00:25:48,590 Тогда я иду к эхо hard_square этого значения, 513 00:25:48,590 --> 00:25:50,370 по-видимому, происходит и лавировать на новой линии 514 00:25:50,370 --> 00:25:53,590 а также, а потом я тебе Определим функцию hard_square так 515 00:25:53,590 --> 00:25:55,550 что, когда я сделать чтобы позвонить в hard_square, 516 00:25:55,550 --> 00:25:58,160 это знает, что я говорю. 517 00:25:58,160 --> 00:26:00,705 >> Теперь, я мог бы также сделать что-то вроде этого. 518 00:26:00,705 --> 00:26:02,050 Это немного отличается. 519 00:26:02,050 --> 00:26:04,190 Это почти точно так же, как то, что мы видели раньше, 520 00:26:04,190 --> 00:26:08,400 кроме вместо того чтобы сказать всего $ х там, как параметр hard_square, 521 00:26:08,400 --> 00:26:11,730 Я говорю $ х = 10. 522 00:26:11,730 --> 00:26:14,330 Таким образом, это является примером защитное программирование, 523 00:26:14,330 --> 00:26:17,070 охранные свои программы против злоумышленников. 524 00:26:17,070 --> 00:26:20,020 >> Это один из способов, чтобы сделать некоторые ошибки проверка, что мы действительно не 525 00:26:20,020 --> 00:26:24,670 есть в качестве опции в С. Мы никогда не мог задать значение по умолчанию что-то. 526 00:26:24,670 --> 00:26:27,010 Мы всегда должны были проверить ли, например, 527 00:26:27,010 --> 00:26:30,820 если мы сделали вызов GetString, это было Наиболее правильным, если сразу после 528 00:26:30,820 --> 00:26:33,300 проверил, что мы проверили ли строки 529 00:26:33,300 --> 00:26:35,504 что пользователь дал нам не равен нулю, 530 00:26:35,504 --> 00:26:37,920 потому что мы не хотим, чтобы начать работы с пустой строкой. 531 00:26:37,920 --> 00:26:39,670 >> Здесь это способ чтобы охранять против этого. 532 00:26:39,670 --> 00:26:43,480 Если пользователь не обеспечивает нам что-то то, что мы собираемся делать? 533 00:26:43,480 --> 00:26:46,080 Ну, мы просто сказать все, что они не дают нам, 534 00:26:46,080 --> 00:26:47,705 мы только собираемся подключить 10, а. 535 00:26:47,705 --> 00:26:52,030 Так что, если они не дают нам значение, просто использовать по умолчанию 10. И вот, 536 00:26:52,030 --> 00:26:53,940 заметить, что я делаю позвоните чтобы hard_square, 537 00:26:53,940 --> 00:26:55,980 но нет быстрое для пользователя, не так ли? 538 00:26:55,980 --> 00:26:57,540 Я просто сделать пустой вызов. 539 00:26:57,540 --> 00:27:00,860 >> Но моя функция hard_square ожидает параметр. 540 00:27:00,860 --> 00:27:02,222 Что это будет распечатать? 541 00:27:02,222 --> 00:27:03,680 Это происходит, чтобы распечатать 100, верно? 542 00:27:03,680 --> 00:27:05,720 Поскольку пользователь не сделал дать мне что-нибудь. 543 00:27:05,720 --> 00:27:08,970 И поэтому я просто хочу, чтобы предположить, что 10-- 10 Значение по умолчанию. 544 00:27:08,970 --> 00:27:13,760 И так это было напечатать из 100 на отдельной строке. 545 00:27:13,760 --> 00:27:16,390 >> PHP файлы не должны быть только один файл. 546 00:27:16,390 --> 00:27:19,480 Вы можете объединить несколько файлов вместе, просто, как вы можете в C. путь 547 00:27:19,480 --> 00:27:24,330 мы сделали это в C был, как правило, чтобы сделать #include, чтобы получить файлы заголовков вытащил в. 548 00:27:24,330 --> 00:27:26,180 Мы не делаем, что в PHP. 549 00:27:26,180 --> 00:27:29,110 Мы делаем то, что называется require_once. 550 00:27:29,110 --> 00:27:33,360 А тут еще вся эта вещь, что это __dir__? 551 00:27:33,360 --> 00:27:36,510 Вот только специальная переменной или специальная константа, 552 00:27:36,510 --> 00:27:39,030 действительно, что указывает, что Ваш текущий каталог. 553 00:27:39,030 --> 00:27:41,320 И так будет выглядеть в текущем каталоге 554 00:27:41,320 --> 00:27:44,900 для файловой называется cs50.php в этом примере здесь, 555 00:27:44,900 --> 00:27:50,490 и это будет придерживаться этот файл в верхней части вашей программы PHP, 556 00:27:50,490 --> 00:27:56,980 при условии, что ставишь требуют когда линии в верхней части вашего PHP файла. 557 00:27:56,980 --> 00:28:01,474 >> Итак, PHP в основном используется, но не исключительно, используется, 558 00:28:01,474 --> 00:28:03,140 как язык для веб-программирования. 559 00:28:03,140 --> 00:28:05,270 Это действительно, как он пришел, чтобы быть. 560 00:28:05,270 --> 00:28:06,980 Но это полный язык, как мы уже видели. 561 00:28:06,980 --> 00:28:10,105 Мы видели довольно много все вещи что он может сделать это, аналогичны C, 562 00:28:10,105 --> 00:28:13,290 и это может сделать чертовски намного больше, чем это. 563 00:28:13,290 --> 00:28:16,950 >> Но потому, что это полноценный язык, и мы можно сделать командную строку программирования в нем. 564 00:28:16,950 --> 00:28:18,630 Мы можем запускать программы командной строки. 565 00:28:18,630 --> 00:28:22,580 Все, что требуется, чтобы запустить команду Линия программа, которая написана в PHP 566 00:28:22,580 --> 00:28:24,260 является то, что у вас есть РНР. 567 00:28:24,260 --> 00:28:27,460 Так что это своего рода аналогом имея компилятор на вашей системе 568 00:28:27,460 --> 00:28:31,100 если вы хотите, чтобы скомпилировать C код чтобы превратить его в исполняемых файлах. 569 00:28:31,100 --> 00:28:33,810 Вы должны иметь переводчика PHP что существует на вашей системе 570 00:28:33,810 --> 00:28:37,330 так что вы можете интерпретировать PHP файлов. 571 00:28:37,330 --> 00:28:40,370 >> Предполагая, что вы, как правило, и Этот интерпретатор называют PHP, 572 00:28:40,370 --> 00:28:44,300 и это, как правило, в комплекте с наиболее загрузки или установки PHP 573 00:28:44,300 --> 00:28:47,430 что вы можете получить на сайте, и, конечно, имя переводчика PHP 574 00:28:47,430 --> 00:28:49,550 мы имеем в CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Все, что вам сделать, это ввести PHP файлов. 576 00:28:51,819 --> 00:28:53,610 И то, что ваша программа-х собираюсь сделать, это это 577 00:28:53,610 --> 00:28:55,360 собирается запустить через переводчик, это 578 00:28:55,360 --> 00:28:58,040 собирается игнорировать всё, что не между вопрос mark-- 579 00:28:58,040 --> 00:29:03,160 или скобка знак вопроса PHP, PHP-разделители, и распечатать его, 580 00:29:03,160 --> 00:29:07,660 и будет интерпретировать и выполнить Код внутри ваших PHP разделителей. 581 00:29:07,660 --> 00:29:12,850 >> Итак, давайте поп к CS50 IDE и посмотрите на пару PHP файлов, 582 00:29:12,850 --> 00:29:19,850 работает пару PHP файлов, в интерфейс командной строки из CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Так вот мы в CS50 IDE, и я взял на себя смелость 584 00:29:22,100 --> 00:29:25,800 открытия файла под названием hello1.php. 585 00:29:25,800 --> 00:29:29,920 И, видимо, содержимое этого Файл являются только PHP разделители там, 586 00:29:29,920 --> 00:29:32,220 и между ними, эхо ("привет, мир"). 587 00:29:32,220 --> 00:29:34,710 Это довольно простая программа PHP. 588 00:29:34,710 --> 00:29:37,670 Я просто хочу, чтобы прокрутить вниз на мой окне терминала здесь, 589 00:29:37,670 --> 00:29:44,320 и я собираюсь ввести PHP hello1.php, нажмите ввод. 590 00:29:44,320 --> 00:29:44,950 Привет мир. 591 00:29:44,950 --> 00:29:48,110 Это, вероятно, то, что мы были надеясь, что это сделать, верно? 592 00:29:48,110 --> 00:29:51,140 >> Давайте и принять Еще один взгляд на программу. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 В значительной степени то же самое, не много здесь происходит. 595 00:29:55,090 --> 00:29:57,190 На этот раз, хотя, я иду, чтобы побудить пользователь, чтобы дать мне их имена. 596 00:29:57,190 --> 00:29:59,290 Я еще раз, используя эту функцию Readline. 597 00:29:59,290 --> 00:30:01,340 $ Название = Readline. 598 00:30:01,340 --> 00:30:03,070 Это быстрое, "Как тебя зовут?" 599 00:30:03,070 --> 00:30:04,880 >> Видимо я печать это по своей собственной линии. 600 00:30:04,880 --> 00:30:07,220 А потом, так что линия ниже что будет быстрое 601 00:30:07,220 --> 00:30:08,750 где пользователь может ввести свое имя. 602 00:30:08,750 --> 00:30:12,030 И тогда я использую немного Переменная запрос здесь на 3 линии 603 00:30:12,030 --> 00:30:14,780 распечатать "привет" и все типы пользователей. 604 00:30:14,780 --> 00:30:22,040 Таким образом, это аналогично говоря, Привет, Запятая,% s, если мы с помощью Printf в С. 605 00:30:22,040 --> 00:30:24,910 >> Так что давайте идти и интерпретировать эту программу. 606 00:30:24,910 --> 00:30:27,400 Итак, еще раз, я прокрутите вниз на мой окне терминала. 607 00:30:27,400 --> 00:30:29,070 PHP hello2.php. 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 Как вас зовут? 610 00:30:33,820 --> 00:30:35,490 Дуг. 611 00:30:35,490 --> 00:30:36,526 Привет, Дуг. 612 00:30:36,526 --> 00:30:39,440 У меня также есть еще один Файл называется hello3.php. 613 00:30:39,440 --> 00:30:42,850 Я собираюсь очистить экран с управлением L, 614 00:30:42,850 --> 00:30:46,210 и я собираюсь выполнить это. 615 00:30:46,210 --> 00:30:47,640 Как вас зовут? 616 00:30:47,640 --> 00:30:49,020 Дуг. 617 00:30:49,020 --> 00:30:49,780 Привет, Дуг. 618 00:30:49,780 --> 00:30:56,540 Таким образом, поведение идентично hello2.php, но почему это hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Ну, вот в чем разница. 620 00:30:58,040 --> 00:31:00,620 В этом случае уведомление что в строке 1 здесь, 621 00:31:00,620 --> 00:31:04,270 У меня есть то, что не в период между PHP разделителей. 622 00:31:04,270 --> 00:31:07,760 Я просто печать out-- или я только что ввели, "Как тебя зовут?" 623 00:31:07,760 --> 00:31:12,060 Когда интерпретатор PHP видит это, его понятия не имеет, как интерпретировать его как PHP, 624 00:31:12,060 --> 00:31:15,060 и поэтому вместо того, неудачу, это просто будет выплюнуть. 625 00:31:15,060 --> 00:31:19,010 >> Так заметить в строке 3 сейчас, мой призыв к Readline, нет быстрое больше. 626 00:31:19,010 --> 00:31:21,750 Я просто на самом деле происходит, когда, целью которых РНР видит это, 627 00:31:21,750 --> 00:31:23,400 это будет распечатать "Как вас зовут?" 628 00:31:23,400 --> 00:31:25,941 Затем он видит, о, хорошо, here's-- все остальное будет 629 00:31:25,941 --> 00:31:29,970 интерпретируется как PHP, так Вот почему это работает. 630 00:31:29,970 --> 00:31:34,990 Я не обязательно подскажут пользователь, целью которых внутри Readline, 631 00:31:34,990 --> 00:31:37,490 Я могу просто его пределами из PHP разделителей 632 00:31:37,490 --> 00:31:41,490 и позволяют интерпретатор просто распечатать его для меня. 633 00:31:41,490 --> 00:31:45,364 >> Таким образом, вы на самом деле не только иметь один набор PHP разделителей 634 00:31:45,364 --> 00:31:46,030 в вашей программе. 635 00:31:46,030 --> 00:31:49,887 Вы на самом деле может иметь несколько из них, открытия и закрытия их по мере необходимости. 636 00:31:49,887 --> 00:31:51,720 Итак, давайте взглянем на пару программ 637 00:31:51,720 --> 00:31:55,070 в CS50 IDE, где мы проиллюстрировать эту идею проведения 638 00:31:55,070 --> 00:31:58,376 несколько комплектов ограниченной PHP. 639 00:31:58,376 --> 00:32:02,010 >> ОК, так что я открыл файл здесь называется add1.php. 640 00:32:02,010 --> 00:32:03,390 И заметьте, что здесь происходит. 641 00:32:03,390 --> 00:32:08,077 Как и прежде, у меня есть один PHP набор разделителей. 642 00:32:08,077 --> 00:32:10,660 Я собираюсь распечатать сообщение, "Пожалуйста, дайте мне номер." 643 00:32:10,660 --> 00:32:13,394 Тогда я иду читать строку и хранить его в переменной $ num1. 644 00:32:13,394 --> 00:32:14,810 Тогда я иду, чтобы распечатать еще раз. 645 00:32:14,810 --> 00:32:16,310 Дайте мне второй номер. 646 00:32:16,310 --> 00:32:20,450 Читайте линию от пользователя, магазин что они ввели в в $ num2. 647 00:32:20,450 --> 00:32:23,980 Добавьте их вместе и хранить, что привести в переменной $ сумма, 648 00:32:23,980 --> 00:32:26,180 а затем распечатать, "О сумма этих двух чисел 649 00:32:26,180 --> 00:32:29,254 есть ", а затем интерпеллировать есть переменная $ сумма. 650 00:32:29,254 --> 00:32:31,170 Так что давайте просто запустить эту через переводчика 651 00:32:31,170 --> 00:32:33,720 чтобы подтвердить, что это то, что мы ожидаем. 652 00:32:33,720 --> 00:32:37,540 PHP add1.php. 653 00:32:37,540 --> 00:32:38,665 Пожалуйста, дайте мне номер, 3. 654 00:32:38,665 --> 00:32:40,410 Пожалуйста, дайте мне второй номер, 4. 655 00:32:40,410 --> 00:32:43,370 Сумма этих двух чисел 7. 656 00:32:43,370 --> 00:32:45,030 Вот 3 плюс 4. 657 00:32:45,030 --> 00:32:45,530 ОК? 658 00:32:45,530 --> 00:32:47,770 Так ничего не страшно фантазии есть. 659 00:32:47,770 --> 00:32:51,080 >> А теперь давайте откроем add2.php. 660 00:32:51,080 --> 00:32:54,460 Здесь я получил пару PHP разделителями наборы есть, верно? 661 00:32:54,460 --> 00:32:59,107 Линии 1, 3-- линии 1 и 3 нет PHP разделители. 662 00:32:59,107 --> 00:33:00,940 Поэтому, когда переводчик видит их, это просто 663 00:33:00,940 --> 00:33:03,220 собирается плевать точно то, что я набрал там уже. 664 00:33:03,220 --> 00:33:05,011 Так вот, где я делать все мои подсказки. 665 00:33:05,011 --> 00:33:11,220 На линии 2 и 4, мы видим, что очень знакомы $? PHP рода ограничителей, 666 00:33:11,220 --> 00:33:15,210 так что эти две линии будет выполнять, как PHP. 667 00:33:15,210 --> 00:33:18,270 И тогда на линии 5, у меня есть это странная вещь прямо здесь, прямо? 668 00:33:18,270 --> 00:33:20,480 Этот угол кронштейн Вопросительный знак знак равенства. 669 00:33:20,480 --> 00:33:22,660 Я даже увеличить немного дальше. 670 00:33:22,660 --> 00:33:29,270 Вы можете видеть, что это то, что я говорить о прямо, это $? =. 671 00:33:29,270 --> 00:33:33,420 >> Оказывается, что это так часто, что причиной того, что мы открываем набор PHP 672 00:33:33,420 --> 00:33:36,055 разделители, чтобы распечатать значение. 673 00:33:36,055 --> 00:33:37,430 И это все, что мы собираемся делать. 674 00:33:37,430 --> 00:33:39,220 Но даже сокращение для этого. 675 00:33:39,220 --> 00:33:46,490 $? = Вне PHP сокращение для говоря что-то вроде $? PHP Эхо сумма 676 00:33:46,490 --> 00:33:48,350 из num1 и num2. 677 00:33:48,350 --> 00:33:51,900 Так что это просто еще один обсчитывать для этого. 678 00:33:51,900 --> 00:33:55,550 >> Так что, если я запускаю эту программу, PHP add2.php. 679 00:33:55,550 --> 00:33:57,530 Я масштаба вниз немного. 680 00:33:57,530 --> 00:33:59,000 Пожалуйста, дайте мне номер, 4. 681 00:33:59,000 --> 00:34:00,350 Пожалуйста, дайте мне второй номер. 682 00:34:00,350 --> 00:34:04,650 А так как я на самом деле не волнует типы данных в PHP, я могу сказать, 4.8. 683 00:34:04,650 --> 00:34:07,160 Сумма этих двух чисел составляет 8,8. 684 00:34:07,160 --> 00:34:10,179 Эта функция ведет себя довольно много точно так же, как и следовало ожидать, 685 00:34:10,179 --> 00:34:10,989 также. 686 00:34:10,989 --> 00:34:13,114 И у меня есть еще один открыт здесь называется dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Попробуйте это снова. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 У меня есть еще один здесь называется dice1.php, который также, видите, 691 00:34:33,280 --> 00:34:37,440 имеет тот угол кронштейн вопрос пометить равные обозначения знак там, 692 00:34:37,440 --> 00:34:40,659 но обратите внимание, что в этом случае я вызова функции рандов, которые, как вам 693 00:34:40,659 --> 00:34:42,790 бы ожидать генерирует случайное число. 694 00:34:42,790 --> 00:34:46,889 "Вы выбросил", и это будет рассчитать некоторый случайный номер, мод 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Так что даст мне номер в диапазоне от 1 до 6. 697 00:34:49,989 --> 00:34:53,040 >> Помните, что мод 6 даст мне число в диапазоне от 0 до 5, 698 00:34:53,040 --> 00:34:56,630 но если я имитации кости рулоны, что то, что я здесь делаю, 699 00:34:56,630 --> 00:35:00,040 Я не хочу, чтобы эти кости, чтобы перейти от 0 5, я хочу, кости, которые идут от 1 до 6. 700 00:35:00,040 --> 00:35:02,800 И так это способ получить мне в диапазоне от 1 до 6. 701 00:35:02,800 --> 00:35:04,720 Я делаю это в два раза. 702 00:35:04,720 --> 00:35:08,630 Таким образом, очевидно я прокатки две кости в этой программе. 703 00:35:08,630 --> 00:35:15,210 >> Так что я буду очистить экран, и я сделаю PHP dice1.php. 704 00:35:15,210 --> 00:35:16,640 Вы свернул 4 и 2. 705 00:35:16,640 --> 00:35:19,156 И если я запускаю программу снова, вы проката 5 и 5. 706 00:35:19,156 --> 00:35:21,780 Таким образом, каждый раз, когда я запустить программу, Я получаю разные номера, 707 00:35:21,780 --> 00:35:24,280 потому что каждый раз, когда я так, он начинает снова. 708 00:35:24,280 --> 00:35:27,250 Это будет генерировать новый набор случайных чисел для меня. 709 00:35:27,250 --> 00:35:29,790 >> Так что, если мы привыкли к запускать программы из C, 710 00:35:29,790 --> 00:35:32,520 мы привыкли набирать ./ название программы, верно? 711 00:35:32,520 --> 00:35:35,090 Вот как мы сделали все наши программы в C сих пор. 712 00:35:35,090 --> 00:35:37,555 Мы можем сделать это в PHP, а также добавив то, что называется 713 00:35:37,555 --> 00:35:40,026 притон к началу нашего PHP-файл. 714 00:35:40,026 --> 00:35:41,400 Я знаю, что это своего рода глупые слова. 715 00:35:41,400 --> 00:35:44,540 Это сокращение хэш взрыва. 716 00:35:44,540 --> 00:35:46,300 Это первые два символа есть. 717 00:35:46,300 --> 00:35:50,030 Помните, что мы называем восклицательный знак часто челку в информатике. 718 00:35:50,030 --> 00:35:51,690 Она также может быть резкого взрыва. 719 00:35:51,690 --> 00:35:53,273 Там есть пара способов интерпретации его. 720 00:35:53,273 --> 00:35:57,320 Но это в основном особый вид команды, что РНР 721 00:35:57,320 --> 00:36:00,160 понимает, как, ну, я хочу Вам выполнить эту программу, 722 00:36:00,160 --> 00:36:05,250 по-видимому, / пользователь / бен / PHP, который на самом деле, где РНР 723 00:36:05,250 --> 00:36:08,590 специально живет в нашей системе. 724 00:36:08,590 --> 00:36:12,530 Так it's--, что здесь происходит, интерпретатор понимает, о, 725 00:36:12,530 --> 00:36:17,270 Я, видимо, предполагается использовать в этой программе, чтобы запустить этот файл. 726 00:36:17,270 --> 00:36:20,010 И так как позволяет пропустить шаг 727 00:36:20,010 --> 00:36:22,979 того, чтобы сказать, PHP something.php. 728 00:36:22,979 --> 00:36:25,020 Там еще одна выгода Здесь, который является то, что, если мы 729 00:36:25,020 --> 00:36:27,320 хотим, чтобы наши программы на работать, как ожидалось, мы 730 00:36:27,320 --> 00:36:30,220 нужно сделать что-то под названием изменение прав доступа к файлам. 731 00:36:30,220 --> 00:36:33,380 И мы будем go--, и мы говорим немного немного больше изменения разрешений о файловых 732 00:36:33,380 --> 00:36:37,550 в нашем видео на MVC, но достаточно сказать, что это то, что вам нужно сделать, 733 00:36:37,550 --> 00:36:42,760 для того, чтобы сделать свой .php файлы исполняемыми. 734 00:36:42,760 --> 00:36:49,330 Итак, давайте взглянем на это как наш последний пример более в CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Так вот в IDE у меня есть два файлы в этом Каталог PHP, которые появляются, чтобы не быть 736 00:36:53,910 --> 00:36:55,310 называется .php. 737 00:36:55,310 --> 00:36:58,170 У меня есть функция, называемая add-- У меня есть файл называется add3 738 00:36:58,170 --> 00:37:00,650 и файл называется dice2. 739 00:37:00,650 --> 00:37:03,680 Итак, давайте быстро смотреть и открыть add3. 740 00:37:03,680 --> 00:37:08,300 И, как вы видите, в начале моего файла у меня есть этот притон, верно? 741 00:37:08,300 --> 00:37:11,420 Этот хэш марка восклицательный знак. 742 00:37:11,420 --> 00:37:15,115 Теперь вы будете, возможно, также заметить, что по некоторым причинам, 743 00:37:15,115 --> 00:37:16,990 Я не есть какие-либо синтаксис выделяя больше, 744 00:37:16,990 --> 00:37:20,198 и это то, что я упоминал ранее, который был, что если я не называю мой файл 745 00:37:20,198 --> 00:37:23,040 .php, я не имеют преимущество подсветки синтаксиса больше. 746 00:37:23,040 --> 00:37:26,220 Этот файл называется просто add3. 747 00:37:26,220 --> 00:37:30,960 Так что я могу запустить его в дальнейшем с ./ add3 и не ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Таким образом, reason-- это еще хорошо, это по-прежнему действует PHP, 749 00:37:33,680 --> 00:37:37,000 но это не подсветкой синтаксиса, потому что этот файл не называется something.php. 750 00:37:37,000 --> 00:37:41,580 Это единственное реальное различие здесь, плюс притон. 751 00:37:41,580 --> 00:37:45,170 Итак, давайте посмотрим, что происходит, когда Я стараюсь и запустите эту программу. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, как я бы с С. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Разрешение add3 отказано. 754 00:37:53,190 --> 00:37:55,390 Это то, что вы собираетесь чтобы увидеть, если вы забыли 755 00:37:55,390 --> 00:37:59,280 использовать команду CHMOD изменить права доступа к файлу. 756 00:37:59,280 --> 00:38:03,845 >> Как выясняется, регулярные PHP файлы не могут просто быть выполнены. 757 00:38:03,845 --> 00:38:06,970 Они могут быть интерпретированы, но мы делать что-то немного различное здесь. 758 00:38:06,970 --> 00:38:07,761 Мы его выполнения. 759 00:38:07,761 --> 00:38:12,970 И поэтому мне нужно, чтобы добавить разрешение исполнения, CHMOD а + х к add3. 760 00:38:12,970 --> 00:38:15,680 Тогда я могу сказать ./ add3. 761 00:38:15,680 --> 00:38:16,860 Пожалуйста, дайте мне номер. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Сумма этих двух чисел 11. 764 00:38:20,490 --> 00:38:26,530 >> Точно так же, я уже права измененными dice2, так что я могу просто наберите ./ dice2, 765 00:38:26,530 --> 00:38:31,260 Вы свернул 1 и 1, вы прокат 5 и 4, и так далее. 766 00:38:31,260 --> 00:38:33,680 >> Так вот в значительной степени Идея синтаксиса PHP, верно? 767 00:38:33,680 --> 00:38:35,221 Там очень много, чтобы пройти, я знаю. 768 00:38:35,221 --> 00:38:39,160 Но, надеюсь, вы видели, что в настоящее время PHP на самом деле не так уж отличается от C 769 00:38:39,160 --> 00:38:43,670 и действительно дает нам возможность принимать вещи на ступеньку выше или два. 770 00:38:43,670 --> 00:38:48,230 Мы действительно не придется беспокоиться слишком много about-- мы действительно не 771 00:38:48,230 --> 00:38:51,605 должны слишком беспокоиться о детали низкого уровня мы 772 00:38:51,605 --> 00:38:52,980 пришлось беспокоиться о с С, верно? 773 00:38:52,980 --> 00:38:56,170 Мы можем сосредоточиться на более Уровень вещи, которые PHP 774 00:38:56,170 --> 00:39:01,090 позволяет нам делать и принимать для разумеющимся, что он будет работать на нас. 775 00:39:01,090 --> 00:39:04,350 Так это дает нам возможность сейчас, переход от С до РНР 776 00:39:04,350 --> 00:39:08,280 чтобы программы, которые являются гораздо более Комплекс и, возможно, гораздо более надежными. 777 00:39:08,280 --> 00:39:13,070 >> Так что я надеюсь, что вы весело работать с PHP, и я Дуг Ллойд. 778 00:39:13,070 --> 00:39:15,050 Это CS50. 779 00:39:15,050 --> 00:39:17,637