1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Часть 8] [менее комфортно] 2 00:00:02,000 --> 00:00:04,000 [Nate Хардисон] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [Это CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Добро пожаловать в наш второй к последнему разделу. 5 00:00:11,000 --> 00:00:13,000 На этой неделе мы собираемся поговорить о PHP, а затем на следующей неделе 6 00:00:13,000 --> 00:00:17,000 мы сделаем небольшой обзор на вопросы 1. 7 00:00:17,000 --> 00:00:20,000 Мы собираемся начать на стр. 3 Проблема устанавливает обновления, 8 00:00:20,000 --> 00:00:28,000 и мы будем работать через раздел вопросов довольно быстро. 9 00:00:28,000 --> 00:00:34,000 На странице 3, мы начинаем говорить об этом разница между C и PHP 10 00:00:34,000 --> 00:00:38,000 В том смысле, что PHP является динамически типизированный язык, 11 00:00:38,000 --> 00:00:42,000 в то время как C статически типизированных, 12 00:00:42,000 --> 00:00:46,000 и кто-то действительно быстро сделать любое кодирование в нечто вроде PHP 13 00:00:46,000 --> 00:00:51,000 или Python или Ruby, прежде, JavaScript? 14 00:00:51,000 --> 00:00:53,000 Полностью новое? Хорошо. 15 00:00:53,000 --> 00:00:56,000 >> Все эти языки, которые я только что упомянул 16 00:00:56,000 --> 00:01:01,000 очень отличается от языков, таких как C и C + + и Java 17 00:01:01,000 --> 00:01:04,000 В том смысле, что, когда вы объявляете переменную вы не обязаны декларировать 18 00:01:04,000 --> 00:01:09,000 какая переменная это, так и в C мы застряли того, чтобы всегда говорить 19 00:01:09,000 --> 00:01:13,000 это будет целое число переменных, или это будет символ переменной *, 20 00:01:13,000 --> 00:01:16,000 тогда как PHP, Python с, с Ruby, 21 00:01:16,000 --> 00:01:20,000 с большим количеством этих более современных языков, вы не должны делать этого вообще. 22 00:01:20,000 --> 00:01:24,000 Вы просто объявить переменную, а в случае PHP 23 00:01:24,000 --> 00:01:28,000 Вы заявляете, что это переменная, предварив его знаком $, 24 00:01:28,000 --> 00:01:35,000 , а затем тип переменной определяется то значение, он держит, 25 00:01:35,000 --> 00:01:38,000 которая круто. 26 00:01:38,000 --> 00:01:44,000 Чтобы поиграть с этим немного, у нас есть пример кода PHP прямо здесь 27 00:01:44,000 --> 00:01:47,000 между начальным и конечным тегами. 28 00:01:47,000 --> 00:01:53,000 Мы используем такие как HTML, в том смысле, что 29 00:01:53,000 --> 00:01:56,000 Мы получили эти угловые скобки здесь, чтобы открыть и закрыть. 30 00:01:56,000 --> 00:01:58,000 Вы увидите это с HTML. 31 00:01:58,000 --> 00:02:03,000 Вы увидите такой же синтаксис XML тоже. 32 00:02:03,000 --> 00:02:06,000 >> Это указывает на начало блока PHP. 33 00:02:06,000 --> 00:02:09,000 Это? PHP является специфическим для PHP. 34 00:02:09,000 --> 00:02:16,000 Мы закрываем все с>, а также. 35 00:02:16,000 --> 00:02:22,000 Давайте открывать файлы в нашем устройство с помощью все, что вы хотите. 36 00:02:22,000 --> 00:02:25,000 В этом пакете он говорит позвонить dynamic.php. 37 00:02:25,000 --> 00:02:29,000 По правде говоря, это можно назвать все, что вы хотели, но имя файла будет придумать 38 00:02:29,000 --> 00:02:34,000 и будет важно в дальнейшем, так что просто помните, что вы это называете. 39 00:02:34,000 --> 00:02:36,000 Я собираюсь перейти на прибор, 40 00:02:36,000 --> 00:02:43,000 и я собираюсь сделать каталог 41 00:02:43,000 --> 00:02:48,000 Раздел 9 Я считаю, что мы находимся в настоящее время. 42 00:02:48,000 --> 00:02:51,000 И мы пойдем в разделе 9, 43 00:02:51,000 --> 00:02:54,000 и я собираюсь использовать Gedit. 44 00:02:54,000 --> 00:02:59,000 Давайте посмотрим, Gedit, и я буду называть моим dynamic.php. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 В dynamic.php, так как это PHP файл 47 00:03:06,000 --> 00:03:09,000 и я хочу, чтобы запустить эту через переводчика PHP 48 00:03:09,000 --> 00:03:12,000 Мне нужно, чтобы начать все с теми, с открытыми тегами, 49 00:03:12,000 --> 00:03:17,000 так что я собираюсь начать тех, кто сразу же, 50 00:03:17,000 --> 00:03:23,000 дать себе немного пространства между тегами 51 00:03:23,000 --> 00:03:26,000 , а затем Цель этого упражнения было играть с 52 00:03:26,000 --> 00:03:34,000 эта функция называется GetType, так GetType, эта функция прямо здесь. 53 00:03:34,000 --> 00:03:38,000 >> Обратите внимание, что нет никакого подчеркивания или пробел или дефис или что-то в этом роде 54 00:03:38,000 --> 00:03:42,000 отделения 2 слова, получения и ввести, только одно слово в целом. 55 00:03:42,000 --> 00:03:46,000 Но то, что это будет делать, если я передаю в переменную GetType, 56 00:03:46,000 --> 00:03:51,000 скажем, $ VAR или $ х, 57 00:03:51,000 --> 00:03:55,000 это скажет мне, отчасти в отладке формате 58 00:03:55,000 --> 00:03:59,000 что имя этого типа. 59 00:03:59,000 --> 00:04:03,000 Мы собираемся экспериментировать здесь. 60 00:04:03,000 --> 00:04:07,000 В частности, если вы посмотрите на спецификации PSET 61 00:04:07,000 --> 00:04:11,000 у нас есть несколько различных строк кода. 62 00:04:11,000 --> 00:04:16,000 В первой строке кода мы инициализируем эту переменную $ Var, 63 00:04:16,000 --> 00:04:21,000 равным 7, а то у нас эта линия Printf 64 00:04:21,000 --> 00:04:25,000 , что говорит эй, Printf VAR пустой. 65 00:04:25,000 --> 00:04:29,000 Printf является одним из многих способов, мы можем напечатать вещи в PHP. 66 00:04:29,000 --> 00:04:33,000 Часто вы увидите эхо-функция используется вместо Printf, 67 00:04:33,000 --> 00:04:40,000 Printf, но мы все знакомы с будучи кодирования в C на некоторое время. 68 00:04:40,000 --> 00:04:42,000 Что вы можете сделать, давайте посмотрим, если копирование и вставка работ. 69 00:04:42,000 --> 00:04:46,000 Я собираюсь дать это попробовать. 70 00:04:46,000 --> 00:04:52,000 Мы вернемся к приборе. 71 00:04:52,000 --> 00:05:00,000 Хорошо, и мы идем. 72 00:05:00,000 --> 00:05:05,000 И расстояние немного напуганный, но здесь мы идем. 73 00:05:05,000 --> 00:05:08,000 У нас есть этот код здесь. 74 00:05:08,000 --> 00:05:11,000 >> [Студент] Разве это не хороший стиль на вкладке это? 75 00:05:11,000 --> 00:05:13,000 Простите? 76 00:05:13,000 --> 00:05:15,000 [Студент] Это обычные вкладки в этом? 77 00:05:15,000 --> 00:05:21,000 Право, таким образом, Сэм просит, если это конвенция о закладке этого или нет. 78 00:05:21,000 --> 00:05:23,000 Обычно да. 79 00:05:23,000 --> 00:05:26,000 В данном случае я выбрал не делать этого. 80 00:05:26,000 --> 00:05:33,000 Честно говоря, вы увидите разные вещи между различными программистами. 81 00:05:33,000 --> 00:05:40,000 PHP обычно используется часто в сочетании с HTML 82 00:05:40,000 --> 00:05:45,000 и других языках, и поэтому иногда печать будет выглядеть немного напуганной 83 00:05:45,000 --> 00:05:50,000 Если вы отступа в пределах PHP начальный и конечный теги. 84 00:05:50,000 --> 00:05:53,000 Это действительно зависит. 85 00:05:53,000 --> 00:05:56,000 В этом случае копирования и вставки не вставить вкладки для меня, 86 00:05:56,000 --> 00:06:02,000 но это определенно делает, как вы сказали, чтобы было понятнее. 87 00:06:02,000 --> 00:06:06,000 Хорошо, если вы сохраните этот код в dynamic.php 88 00:06:06,000 --> 00:06:10,000 то, что вы можете сделать, это спуститься в окно терминала, где я нахожусь здесь 89 00:06:10,000 --> 00:06:17,000 В Gedit, и сделать эквивалент компиляции 90 00:06:17,000 --> 00:06:20,000 использование сделать и затем запустить свой код в C 91 00:06:20,000 --> 00:06:25,000 Все что вам нужно сделать с файлом PHP является запуск интерпретатора PHP, 92 00:06:25,000 --> 00:06:30,000 который немного программе под названием PHP, 93 00:06:30,000 --> 00:06:35,000 и аргументы вы даете переводчик файла, который вы хотите интерпретировать. 94 00:06:35,000 --> 00:06:40,000 В этом случае, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Ой, где же я это сказать? 96 00:06:43,000 --> 00:06:52,000 О, я положил его в раздел 9, и вот я здесь. Вот почему. 97 00:06:52,000 --> 00:06:57,000 >> Теперь, если я бегу, что снова 98 00:06:57,000 --> 00:07:02,000 Мы видим, что в моем первом вызове функции GetType 99 00:07:02,000 --> 00:07:04,000 VAR является целым числом. 100 00:07:04,000 --> 00:07:12,000 В следующем VAR является строка, а затем и в третий VAR является логическое значение. 101 00:07:12,000 --> 00:07:15,000 Что интересно об этом, если мы прокручиваем обратно мы видим, что 102 00:07:15,000 --> 00:07:18,000 Эти типы похожи на те, которые мы имели в C. 103 00:07:18,000 --> 00:07:22,000 У нас было целых чисел в C. 104 00:07:22,000 --> 00:07:26,000 Мы вроде были строки в C, 105 00:07:26,000 --> 00:07:31,000 поэтому строки не были полностью законными типа в том смысле, что 106 00:07:31,000 --> 00:07:37,000 наши CS50 строки было действительно, что? 107 00:07:37,000 --> 00:07:39,000 Простите? Мисси? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Да, именно это символ * мы использовали. 110 00:07:43,000 --> 00:07:47,000 В самом начале семестра мы использовали строку типа, 111 00:07:47,000 --> 00:07:52,000 но это было действительно символ * под капотом. 112 00:07:52,000 --> 00:07:58,000 Мы просто тип, определенный его, в то время как в PHP этих строк фактического типа. 113 00:07:58,000 --> 00:08:07,000 Там нет больше этого символ вещи типа *. 114 00:08:07,000 --> 00:08:10,000 >> Вы увидите, что мы можем сделать еще много вещей со строками 115 00:08:10,000 --> 00:08:14,000 гораздо легче, чем в PHP мы могли бы в C, 116 00:08:14,000 --> 00:08:17,000 и, наконец, у нас есть этот логический тип, и большая разница в том, что 117 00:08:17,000 --> 00:08:21,000 если прокрутить вниз мы видим, что названия этих типов 118 00:08:21,000 --> 00:08:28,000 В настоящее время число, строка и логическое вместо Int и логический, 119 00:08:28,000 --> 00:08:31,000 и как вы поднимаете различных языках программирования, 120 00:08:31,000 --> 00:08:36,000 при условии, что в какой-то момент в вашей жизни вы будете вступать в контакт с 121 00:08:36,000 --> 00:08:40,000 различные те, что вы увидите маленькие причуды, как это 122 00:08:40,000 --> 00:08:44,000 где C называет целых чисел целыми. 123 00:08:44,000 --> 00:08:46,000 Некоторые называют это целые числа. 124 00:08:46,000 --> 00:08:51,000 Есть и другие условия, которые вы будете работать в. 125 00:08:51,000 --> 00:08:55,000 Большой Int мы видели сегодня в SQL. 126 00:08:55,000 --> 00:08:59,000 Есть также номера, а затем логический, логический, 127 00:08:59,000 --> 00:09:03,000 всякие различия существуют. 128 00:09:03,000 --> 00:09:07,000 >> Это не очень интересный, но теперь я собираюсь дать вам немного времени 129 00:09:07,000 --> 00:09:13,000 если масштаб вне работать через это упражнение в нижней части страницы 3 130 00:09:13,000 --> 00:09:20,000 , где он спрашивает, какие типы соответствуют этим значениям здесь, внизу. 131 00:09:20,000 --> 00:09:24,000 Мы имеем 3,50. 132 00:09:24,000 --> 00:09:28,000 У нас есть эта вещь прямо здесь, что интересно. 133 00:09:28,000 --> 00:09:32,000 Мы не видели этого раньше, хотя, если вы следили вместе в лекции 134 00:09:32,000 --> 00:09:35,000 Вы, вероятно, уже знаете, что это такое. 135 00:09:35,000 --> 00:09:40,000 Тогда у нас есть это, что это вид в стиле фанк. 136 00:09:40,000 --> 00:09:42,000 Вы признаете это. 137 00:09:42,000 --> 00:09:46,000 Что это в C? 138 00:09:46,000 --> 00:09:50,000 Сэм? Что это дает Вам в C? 139 00:09:50,000 --> 00:09:54,000 Было бы открыть файл с именем dynamic.php и сделать его читабельным. 140 00:09:54,000 --> 00:09:58,000 Да, и какой бы тип переменной, которую мы хотели бы присвоить это? Звездой файла. >> 141 00:09:58,000 --> 00:10:02,000 Именно так, мы бы присвоить этому в файле звезды. 142 00:10:02,000 --> 00:10:08,000 Это законно PHP тоже. 143 00:10:08,000 --> 00:10:12,000 Выполнить это. Посмотрите, что происходит, когда вы проходите, что в GetType. 144 00:10:12,000 --> 00:10:19,000 А потом также проверить, что нулевые есть, что бы это могло быть в PHP. 145 00:10:19,000 --> 00:10:21,000 Я дам вам несколько минут. 146 00:10:21,000 --> 00:10:24,000 Вы можете буквально скопировать и вставить эти значения в, 147 00:10:24,000 --> 00:10:29,000 и тогда мы будем делать немного случайных вызовов на вас 148 00:10:29,000 --> 00:10:34,000 и посмотрите, что вы получили. 149 00:10:34,000 --> 00:10:36,000 >> [Студент] У меня есть вопрос. << Да. 150 00:10:36,000 --> 00:10:40,000 В одной из лекций Давид сказал, что есть что-то, что вы можете поставить в начало файла 151 00:10:40,000 --> 00:10:43,000 так что вам не придется вводить в PHP каждый раз. 152 00:10:43,000 --> 00:10:45,000 Что это было? 153 00:10:45,000 --> 00:10:50,000 Он, вероятно, говорить о фунт взрыва, хэш взрыва. 154 00:10:50,000 --> 00:10:57,000 Это директива, что если вы пометить файл как исполняемый 155 00:10:57,000 --> 00:11:01,000 то, что он делает, когда вы запустите файл 156 00:11:01,000 --> 00:11:06,000 она расскажет программа-оболочка 157 00:11:06,000 --> 00:11:12,000 использовать PHP интерпретатор для интерпретации содержимого файла. 158 00:11:12,000 --> 00:11:16,000 Вопрос заключается в том, что это за специальная линия 159 00:11:16,000 --> 00:11:20,000 что мы могли бы включать в верхней части наших PHP файлы не должны включать 160 00:11:20,000 --> 00:11:26,000 эта линия PHP или эта команда PHP всякий раз, когда мы хотим запустить файл? 161 00:11:26,000 --> 00:11:31,000 И вы можете сделать это с кучей разных файлов. 162 00:11:31,000 --> 00:11:37,000 Я считаю, это зависит от того, где бинарный PHP хранится, 163 00:11:37,000 --> 00:11:43,000 но часто USR / бен / PHP является хорошим местом для начала. 164 00:11:43,000 --> 00:11:45,000 Вы можете выяснить это точно, возвращаясь до вашего прибора 165 00:11:45,000 --> 00:11:50,000 и набрав из которых PHP. 166 00:11:50,000 --> 00:11:55,000 Какая команда выясняет, когда вы выполнения двоичного 167 00:11:55,000 --> 00:12:01,000 или команду, где соответствующий файл. 168 00:12:01,000 --> 00:12:06,000 Это говорит мне о том, что PHP на самом деле сглаживания это двоичный файл 169 00:12:06,000 --> 00:12:13,000 , которые хранятся в USR / BIN, который является, где многие системные файлы будут установлены. 170 00:12:13,000 --> 00:12:21,000 Например, если я прокрутки вверх к вершине, теперь, когда я положил эту #! линия здесь 171 00:12:21,000 --> 00:12:27,000 Я могу прокрутить вниз, и я могу попробовать запустить 172 00:12:27,000 --> 00:12:35,000 dynamic.php, но я получаю эту ошибку о разрешении было отказано, 173 00:12:35,000 --> 00:12:42,000 и что это означает, что этот файл в настоящее время не давая исполняемый разрешения. 174 00:12:42,000 --> 00:12:46,000 Это не помечен как файл, что кто-то может работать. 175 00:12:46,000 --> 00:12:52,000 >> Когда вы запускали сделать или Clang, и вы получили из него исполняемого файла 176 00:12:52,000 --> 00:12:56,000 компилятор был достаточно умен, чтобы знать, что эй, я строю исполняемый файл. 177 00:12:56,000 --> 00:13:00,000 Вы, наверное, хотите, чтобы выполнить его, поэтому он будет автоматически настроить 178 00:13:00,000 --> 00:13:02,000 Разрешения для вас. 179 00:13:02,000 --> 00:13:06,000 Это не так, хотя, когда вы создаете обычный файл с нуля, 180 00:13:06,000 --> 00:13:13,000 Причина в том Обычно вы не хотите, чтобы любой файл в вашей системе быть исполняемым, 181 00:13:13,000 --> 00:13:15,000 так что вам на самом деле нужно пойти и сделать это вручную. 182 00:13:15,000 --> 00:13:22,000 Самый простой способ сделать это с помощью команды CHMOD, 183 00:13:22,000 --> 00:13:28,000 и CHMOD + х говорится добавить исполняемый бит 184 00:13:28,000 --> 00:13:31,000 потому что чтение бита, бит записи и исполняемый бит, 185 00:13:31,000 --> 00:13:35,000 R, W и X, 186 00:13:35,000 --> 00:13:39,000 и говорят CHMOD + х будет включать исполняемый бит 187 00:13:39,000 --> 00:13:46,000 за то файл, который мы указываем, что в этом случае будет dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Студент], что включен для всех? 189 00:13:49,000 --> 00:13:52,000 Давайте проверим это, так как я бы проверить разрешения? 190 00:13:52,000 --> 00:13:54,000 Вы знаете, как я хотел проверить, прав доступа к файлу? 191 00:13:54,000 --> 00:13:56,000 [Неразборчиво ответ студента] 192 00:13:56,000 --> 00:13:58,000 Извините? >> [Студент] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD дает нам файл в хаки. 194 00:14:03,000 --> 00:14:09,000 Список всех файлов,-л, покажет мне все файлы в моем каталоге 195 00:14:09,000 --> 00:14:13,000 вида в длинных, подробных каталоге, и вот мы видим, что 196 00:14:13,000 --> 00:14:17,000 это dynamic.php файл 197 00:14:17,000 --> 00:14:23,000 Последнее изменение 5 ноября в 4:21 PM. 198 00:14:23,000 --> 00:14:26,000 Владелец этого файла jharvard. 199 00:14:26,000 --> 00:14:28,000 Это пользователь, который зашли 200 00:14:28,000 --> 00:14:31,000 Вот пользователем я работаю, 201 00:14:31,000 --> 00:14:36,000 и если вы тоже в приборе Вы также работает как пользователь jharvard. 202 00:14:36,000 --> 00:14:38,000 Вы находитесь в группе студентов, 203 00:14:38,000 --> 00:14:44,000 и эти вещи, которые вы увидите достаточно часто. 204 00:14:44,000 --> 00:14:47,000 >> Мы можем пойти на многие подробности, 205 00:14:47,000 --> 00:14:50,000 но по большей части то, что вы хотите посмотреть на то, когда вы ищете, чтобы посмотреть 206 00:14:50,000 --> 00:14:55,000 или нет файл является исполняемым, прежде всего, 207 00:14:55,000 --> 00:14:58,000 Пользователь, который является владельцем файла, владельцем, 208 00:14:58,000 --> 00:15:03,000 так что это jharvard, и тогда мы имеем 209 00:15:03,000 --> 00:15:07,000 Разрешения биты здесь слева, 210 00:15:07,000 --> 00:15:13,000 и способ, чтобы прочитать это в том, что последний бит 211 00:15:13,000 --> 00:15:18,000 Обычно используется для обозначения того или нет, по крайней мере, в этом случае 212 00:15:18,000 --> 00:15:21,000 Этот последний часто будет установлен в объявлении, чтобы указать, 213 00:15:21,000 --> 00:15:24,000 о том, что файл является каталогом, а не просто обычный файл. 214 00:15:24,000 --> 00:15:28,000 Тогда следующие 3 бита прямо здесь 215 00:15:28,000 --> 00:15:34,000 определить права доступа, что владелец файла имеет, 216 00:15:34,000 --> 00:15:38,000 поэтому в данном случае jharvard, как владелец файла, может читать и писать этот файл, 217 00:15:38,000 --> 00:15:42,000 но есть черта говорят, что jharvard не может выполнить этот файл. 218 00:15:42,000 --> 00:15:46,000 Следующие 3 бита для группы, так что это студенты группы, 219 00:15:46,000 --> 00:15:49,000 так что если бы не было нескольких пользователей на мой прибор, 220 00:15:49,000 --> 00:15:52,000 и у нас было несколько пользователей в рамках группы студентов, 221 00:15:52,000 --> 00:15:55,000 Затем все они могут читать этот файл, но они не могут писать, 222 00:15:55,000 --> 00:15:59,000 и также никому в мире 223 00:15:59,000 --> 00:16:01,000 может только читать данный файл, а также. 224 00:16:01,000 --> 00:16:03,000 Там хорошие, длинные рецензии об этом, 225 00:16:03,000 --> 00:16:05,000 так что вы можете прочитать в Интернете. 226 00:16:05,000 --> 00:16:10,000 В спецификации поставленной задачи мы останавливаться на этом более подробно. 227 00:16:10,000 --> 00:16:12,000 >> [Студент] есть 218 со ссылкой на мир? 228 00:16:12,000 --> 00:16:17,000 218-с верхней части моей головы я забыл, 229 00:16:17,000 --> 00:16:20,000 но нет. 230 00:16:20,000 --> 00:16:29,000 Давайте посмотрим. Я заглушки на этом прямо сейчас. 231 00:16:29,000 --> 00:16:32,000 Вернуться к тому, что мы собирались делать с этой CHMOD + х 232 00:16:32,000 --> 00:16:37,000 , где мы хотели дать dynamic.php разрешения исполняемый 233 00:16:37,000 --> 00:16:40,000 и вопрос был ли это даст исполняемый разрешения на все 234 00:16:40,000 --> 00:16:44,000 или просто jharvard, и мы можем убедиться в этом, 235 00:16:44,000 --> 00:16:48,000 запуск команд и вводить LS-л, 236 00:16:48,000 --> 00:16:51,000 и теперь мы видим, что он помечен как исполняемый файл. 237 00:16:51,000 --> 00:16:54,000 Вы видите, что было изменение цвета. 238 00:16:54,000 --> 00:16:57,000 Теперь dynamic.php указаны в зеленый, 239 00:16:57,000 --> 00:17:01,000 и, похоже, ответ на вопрос, что, Шарлотта? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Только jharvard. >> Только jharvard, да. 241 00:17:04,000 --> 00:17:08,000 >> Если мы хотим, чтобы включить выполняемый бит для всех 242 00:17:08,000 --> 00:17:10,000 как мы могли бы это сделать? 243 00:17:10,000 --> 00:17:13,000 Любые мысли? >> + Х? 244 00:17:13,000 --> 00:17:15,000 Да, именно так. 245 00:17:15,000 --> 00:17:23,000 Шарлотта сказала, что мы можем сделать из CHMOD + х dynamic.php, 246 00:17:23,000 --> 00:17:26,000 и теперь, если мы запустим LS-L мы видим, что исполняемый бит 247 00:17:26,000 --> 00:17:30,000 действительно включен для всех. 248 00:17:30,000 --> 00:17:37,000 И вы реально можете сделать обратное, так что вы можете отключить его для всех 249 00:17:37,000 --> 00:17:41,000 использование минус. 250 00:17:41,000 --> 00:17:46,000 Теперь он выключен, и теперь мы можем включить его обратно для jharvard 251 00:17:46,000 --> 00:17:52,000 так что мы действительно можем запустить его сейчас, 252 00:17:52,000 --> 00:17:58,000 и теперь вы видите, когда мы запустим код этого специального #! линия в верхней части, 253 00:17:58,000 --> 00:18:04,000 #! линии, сообщил оболочки, 254 00:18:04,000 --> 00:18:08,000 сказали, что наш терминал эй, когда этот файл запускается, 255 00:18:08,000 --> 00:18:14,000 использовать / USR / бен / PHP для интерпретации этот файл 256 00:18:14,000 --> 00:18:20,000 , а затем распечатать на выходе. 257 00:18:20,000 --> 00:18:22,000 [Неразборчиво вопрос студента] 258 00:18:22,000 --> 00:18:25,000 Конечно, дайте мне прокрутить обратно. Так же, как это. 259 00:18:25,000 --> 00:18:36,000 Вы увидите все эти директивы начинаются с этой фунт, а затем восклицательный знак, 260 00:18:36,000 --> 00:18:39,000 иногда называют притон, хэш взрыва. 261 00:18:39,000 --> 00:18:48,000 >> [Студент] Как мы можем запустить его с dynamic.php PHP, прежде чем сделать его исполняемым? 262 00:18:48,000 --> 00:18:55,000 Вопрос в том, как мы можем выполнить это с помощью двоичного PHP 263 00:18:55,000 --> 00:18:58,000 в то время как dynamic.php не является исполняемым? 264 00:18:58,000 --> 00:19:01,000 Это супер важно, потому что это точно, как 265 00:19:01,000 --> 00:19:06,000 он будет работать, когда вы пишете проблема набора 7. 266 00:19:06,000 --> 00:19:09,000 Большую часть времени файлы PHP не являются непосредственно исполняемый файл. 267 00:19:09,000 --> 00:19:14,000 Таким образом, что работает, потому что это бинарный PHP, что это исполняемый файл. 268 00:19:14,000 --> 00:19:16,000 Переводчика вещь, которая выполняется, 269 00:19:16,000 --> 00:19:20,000 и так, что он делает буквально прихлебывая во всем содержимым 270 00:19:20,000 --> 00:19:25,000 наши dynamic.php файл и собирается строка за строкой 271 00:19:25,000 --> 00:19:29,000 и выполнение этих команд, так что, используя наши PHP-файл 272 00:19:29,000 --> 00:19:31,000 в виде списка инструкций. 273 00:19:31,000 --> 00:19:36,000 Это не непосредственно его выполнения. 274 00:19:36,000 --> 00:19:40,000 Вот где мы говорим, что эти файлы интерпретируются во время выполнения. 275 00:19:40,000 --> 00:19:46,000 Это перспективе языке времени, а не что-то, что определяется во время компиляции, 276 00:19:46,000 --> 00:19:49,000 Не компилируемый язык, как C. 277 00:19:49,000 --> 00:19:54,000 >> Есть ли способ, чтобы получить языка во время выполнения действовать, как будто это язык, время компиляции, 278 00:19:54,000 --> 00:19:58,000 Например, если вы все сделали ход на сервере 279 00:19:58,000 --> 00:20:00,000 а чем вы знаете, что я имею в виду? 280 00:20:00,000 --> 00:20:04,000 Да, так что вопрос 281 00:20:04,000 --> 00:20:11,000 есть ли способ, чтобы запустить языках Время действовать больше как компиляция типов Время языках? 282 00:20:11,000 --> 00:20:18,000 И там, я имею в виду, что активная область исследования для многих из этих компаний. 283 00:20:18,000 --> 00:20:22,000 Я считаю, Facebook сделал очень много работы с PHP 284 00:20:22,000 --> 00:20:25,000 и составление его вниз, что делает его быстрее, оптимизируя его 285 00:20:25,000 --> 00:20:29,000 так как их сайт будет построен на PHP. 286 00:20:29,000 --> 00:20:34,000 Если вы следили за node.js на всех, 287 00:20:34,000 --> 00:20:40,000 которая является своеобразной переводчика JavaScript 288 00:20:40,000 --> 00:20:44,000 чтобы быть в состоянии запустить JavaScript вне браузера, за пределами вашего веб-браузера, 289 00:20:44,000 --> 00:20:47,000 потому что традиционно JavaScript бы просто запустить внутрь Firefox или Chrome, 290 00:20:47,000 --> 00:20:52,000 и он будет использоваться, чтобы сделать анимацию случилось на веб-странице 291 00:20:52,000 --> 00:20:55,000 и сделать ваши веб-страницы динамичными. 292 00:20:55,000 --> 00:20:59,000 Это был построен на много работы, что Google сделала 293 00:20:59,000 --> 00:21:03,000 чтобы JavaScript и C + + 294 00:21:03,000 --> 00:21:09,000 связываются вместе, так что есть много активных исследований 295 00:21:09,000 --> 00:21:13,000 получить эти языки, чтобы взаимодействовать и оптимизировать их, 296 00:21:13,000 --> 00:21:17,000 в первую очередь потому, что многие люди могут кода в PHP и JavaScript 297 00:21:17,000 --> 00:21:19,000 потому что это намного проще. 298 00:21:19,000 --> 00:21:21,000 Это намного приятнее. У вас нет указателей. 299 00:21:21,000 --> 00:21:27,000 Вы не должны типов плавающих вокруг. 300 00:21:27,000 --> 00:21:31,000 Они хотели, чтобы получить преимущества этих компиляции языках времени 301 00:21:31,000 --> 00:21:36,000 все проверки типа и скорости и нижней памяти, и все, что 302 00:21:36,000 --> 00:21:42,000 сохраняя при этом гибкость и простоту использования этих новых. 303 00:21:42,000 --> 00:21:46,000 >> Вернемся к нашему первоначальному плану атаки. 304 00:21:46,000 --> 00:21:50,000 У нас есть несколько из этих вопросов здесь, в нашей спецификации поставленной задачи. 305 00:21:50,000 --> 00:21:54,000 Давайте пройдемся по ним очень быстро, и мы пойдем по комнате. 306 00:21:54,000 --> 00:21:59,000 Шарлотта, какой тип 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] Это в два раза. >> Это в два раза. 308 00:22:01,000 --> 00:22:03,000 Джимми, что это следующий? >> Массива. 309 00:22:03,000 --> 00:22:09,000 Массив, удивительный, и Джаред, что Еореп? 310 00:22:09,000 --> 00:22:11,000 [Джаред] Это ресурс. >> Это ресурс. 311 00:22:11,000 --> 00:22:15,000 Это своего рода новое, а не файл звезда, а не файл. 312 00:22:15,000 --> 00:22:19,000 Это ресурс типа PHP, 313 00:22:19,000 --> 00:22:24,000 и мне жаль, Элла, последний нулевые есть что? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, как это прописано в PHP? >> Таким же образом. 316 00:22:28,000 --> 00:22:30,000 Точно так же, капиталов? >> Да. 317 00:22:30,000 --> 00:22:33,000 Да, все в порядке. 318 00:22:33,000 --> 00:22:35,000 Здесь мы идем, мы получили двойной, у нас есть массив, 319 00:22:35,000 --> 00:22:41,000 у нас есть ресурс, а затем мы получили нулевой. 320 00:22:41,000 --> 00:22:48,000 Давайте посмотрим теперь вы видели- 321 00:22:48,000 --> 00:22:51,000 Давайте посмотрим, так что теперь я думаю, что я хочу сделать, это подтянуть 322 00:22:51,000 --> 00:22:56,000 этой веб-страницы прямо здесь, это php.net / ручной, 323 00:22:56,000 --> 00:23:01,000 так что если вы, ребята, скопировать, что и открывать веб-браузер. 324 00:23:01,000 --> 00:23:07,000 Я хочу, чтобы подтянуть Chrome, положить, что дюйма 325 00:23:07,000 --> 00:23:10,000 Я хочу показать вам, что это не только потому, что 326 00:23:10,000 --> 00:23:13,000 мы можем говорить весь день о типах и все, что весело вещи 327 00:23:13,000 --> 00:23:19,000 а потому, что это руководство PHP, 328 00:23:19,000 --> 00:23:23,000 и есть много PHP программистов там. 329 00:23:23,000 --> 00:23:26,000 Есть много сайтов PHP там, 330 00:23:26,000 --> 00:23:31,000 и, как результат, есть много документации по PHP, 331 00:23:31,000 --> 00:23:36,000 и руководства, это php.net, является действительно хорошим местом, чтобы пойти 332 00:23:36,000 --> 00:23:43,000 всякий раз, когда у вас возникли вопросы о том, что лучший способ сделать X в PHP 333 00:23:43,000 --> 00:23:45,000 или что функция выглядит? 334 00:23:45,000 --> 00:23:49,000 Просто вид знакомство с тем, что это выглядит так 335 00:23:49,000 --> 00:23:54,000 Вы будете приходить сюда часто, немного для задачи установлен 7. 336 00:23:54,000 --> 00:23:57,000 >> Если вы в конечном итоге делает окончательный проект, который использует PHP 337 00:23:57,000 --> 00:24:04,000 это будет место, вы станете очень хорошо знакомы. 338 00:24:04,000 --> 00:24:09,000 Часто, как люди делают это они используют Google для поиска на сайте, 339 00:24:09,000 --> 00:24:16,000 и они не используют в окне поиска, вот здесь, в правом верхнем углу, которая является своеобразной крошечные. 340 00:24:16,000 --> 00:24:19,000 Если вы погуглить вокруг что-то делать с PHP, и вы увидите 341 00:24:19,000 --> 00:24:24,000 одна из эксплуатации ссылки всплывают обычно можно рассчитывать, что 342 00:24:24,000 --> 00:24:31,000 как достаточно хороший ресурс. 343 00:24:31,000 --> 00:24:34,000 Awesome, так из этих типов, просто из любопытства, 344 00:24:34,000 --> 00:24:37,000 какие из них мы не видели? 345 00:24:37,000 --> 00:24:40,000 Все, что мы еще не видели здесь? 346 00:24:40,000 --> 00:24:44,000 [Студент] ресурс. >> Мы видели ресурс с Еореп вызова. 347 00:24:44,000 --> 00:24:48,000 [Студент] Objects. >> Объекты мы не видели наверняка. 348 00:24:48,000 --> 00:24:51,000 Обратные вызовы мы не видели. 349 00:24:51,000 --> 00:24:54,000 Есть некоторые из этих псевдо-типов. 350 00:24:54,000 --> 00:24:57,000 Мы определенно видели только целыми и двойными. 351 00:24:57,000 --> 00:25:01,000 Мы не видели некоторые другие, так что если мы нажмем на целых 352 00:25:01,000 --> 00:25:08,000 мы видим, есть ли другие целые числа, что они здесь? 353 00:25:08,000 --> 00:25:11,000 Являются ли они все так целое число, число, целое число. 354 00:25:11,000 --> 00:25:14,000 Некоторые языки имеют большие целые типы, 355 00:25:14,000 --> 00:25:23,000 как мы видели на MySQL сегодня был Int, а затем большая Int. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Так, PHP руководства. 358 00:25:28,000 --> 00:25:37,000 Давайте вернемся к нашей спецификации поставленной задачи, и мы теперь прокрутите вниз до стр. 4. 359 00:25:37,000 --> 00:25:41,000 Одна из вещей, что происходит, когда вы получите эти языки 360 00:25:41,000 --> 00:25:49,000 , которые не имеют этой статической типизации, так что эти языки, где вы должны объявить 361 00:25:49,000 --> 00:25:52,000 Тип передней до переменную 362 00:25:52,000 --> 00:26:00,000 это вы получаете случае, если вы начинаете с переменными различных типов 363 00:26:00,000 --> 00:26:04,000 взаимодействующих друг с другом, 364 00:26:04,000 --> 00:26:09,000 и PHP делает это вещь, где он пытается сделать 365 00:26:09,000 --> 00:26:13,000 то, что он считает самым разумным, что нужно сделать 366 00:26:13,000 --> 00:26:18,000 когда у вас есть 2 различных типов взаимодействуют друг с другом. 367 00:26:18,000 --> 00:26:24,000 Например, если мы посмотрим на эти строки кода прямо здесь 368 00:26:24,000 --> 00:26:29,000 Вы видите, что мы получили то, что происходит, когда 369 00:26:29,000 --> 00:26:38,000 мы пытаемся добавить строку 1 до целого числа 2. 370 00:26:38,000 --> 00:26:41,000 Что произойдет, если мы будем пытаться добавить строку, которая не является числовым значением 371 00:26:41,000 --> 00:26:48,000 , а фактические символы, CS числа 50? 372 00:26:48,000 --> 00:26:51,000 Тогда мы увидим, есть ли что-нибудь другое, что происходит, когда 373 00:26:51,000 --> 00:26:56,000 вместо добавления строки в число мы добавляем число в строку, 374 00:26:56,000 --> 00:27:00,000 и так далее, и так далее до точки, где мы получаем 375 00:27:00,000 --> 00:27:05,000 какие-то странные вещи прямо здесь, где мы получили 7 + правда. 376 00:27:05,000 --> 00:27:09,000 Какого черта это значит? 377 00:27:09,000 --> 00:27:19,000 >> Если вы, ребята, идти вперед и вставьте часть этого кода в вашем приборе. 378 00:27:19,000 --> 00:27:27,000 Вы можете держать его в dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Мы увидим, что произойдет. 380 00:27:41,000 --> 00:27:43,000 [Студент] Просто используйте печать, не Printf? 381 00:27:43,000 --> 00:27:52,000 Да, и вы увидите, что печать является также действительным функция для печати в PHP. 382 00:27:52,000 --> 00:27:54,000 Есть много различных способов сделать это. 383 00:27:54,000 --> 00:27:58,000 Мы увидим, с парой примеров позже, как только мы начинаем говорить 384 00:27:58,000 --> 00:28:02,000 об уникальных проблема, которую мы собираемся написать 385 00:28:02,000 --> 00:28:06,000 , а затем концентрация проблема, которую мы собираемся написать 386 00:28:06,000 --> 00:28:09,000 , что, хотя у нас есть Еореп и Fclose 387 00:28:09,000 --> 00:28:15,000 это зачастую не самый простой способ читать в содержимое файла. 388 00:28:15,000 --> 00:28:21,000 PHP имеет много таких, как C-пережитки. 389 00:28:21,000 --> 00:28:28,000 [Студент] Когда я ставлю во всех 6 из тех вещей, которые я только один номер как выход. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Когда вы помещаете во всех 6 из этих вещей. 391 00:28:36,000 --> 00:28:39,000 Давайте посмотрим, это потому, что это, возможно- 392 00:28:39,000 --> 00:28:46,000 одно то, что эти печати звонки не прекращаются в конце с новой строки. 393 00:28:46,000 --> 00:28:49,000 Там нет новой линии, разделяющей каждой из этих печати звонков, 394 00:28:49,000 --> 00:28:51,000 так что, возможно, вы получаете одно большое число, 395 00:28:51,000 --> 00:28:58,000 и это действительно просто смесь символов новой строки. 396 00:28:58,000 --> 00:29:00,000 [Студент] Ну, как я могу убедиться, что- 397 00:29:00,000 --> 00:29:03,000 Ну, есть куча разных способов. 398 00:29:03,000 --> 00:29:06,000 Вы можете вручную поставить в печать символ новой строки, 399 00:29:06,000 --> 00:29:09,000 эхо символ новой строки, 400 00:29:09,000 --> 00:29:12,000 Печать на новой строке. 401 00:29:12,000 --> 00:29:16,000 [Студент] Так эхо то же самое, Printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf, как C Printf 403 00:29:21,000 --> 00:29:24,000 где вы печатаете отформатированную строку. 404 00:29:24,000 --> 00:29:32,000 Вы снабжая его формат строки, а затем все переменные заполнителя. 405 00:29:32,000 --> 00:29:39,000 Очень часто то, что не использовал- 406 00:29:39,000 --> 00:29:42,000 Давайте посмотрим, как отказ, 407 00:29:42,000 --> 00:29:48,000 Я меньше знакомы с PHP, чем я с других языков веб- 408 00:29:48,000 --> 00:29:53,000 а когда я запрограммирован в PHP я обычно не использую Printf 409 00:29:53,000 --> 00:29:59,000 потому что я считаю это быстрее, чтобы использовать возможности строку интерполяции, что он имеет, 410 00:29:59,000 --> 00:30:04,000 который мы пойдем в и я покажу вам всего секунду, 411 00:30:04,000 --> 00:30:08,000 , тогда как в C мы как-то должны сделать это Hacky вещь, чтобы получить его, чтобы печать должным образом. 412 00:30:08,000 --> 00:30:16,000 Вы действительно можете положить переменных непосредственно в строки в PHP. 413 00:30:16,000 --> 00:30:22,000 Printf это своего рода слишком длинный для того, что я обычно делаю. Да, Элла. 414 00:30:22,000 --> 00:30:25,000 [Элла] Вообще, если вы получаете ошибки разбора это значит- 415 00:30:25,000 --> 00:30:30,000 как на C он не скажет вам точно, где ошибка и что это такое, 416 00:30:30,000 --> 00:30:34,000 Означает ли это взгляд через весь ваш код и понять это? 417 00:30:34,000 --> 00:30:39,000 Это обычно более целенаправленно, чем это. 418 00:30:39,000 --> 00:30:48,000 Я думаю, что в этом случае было немного, 419 00:30:48,000 --> 00:30:51,000 так что я думаю, что в этом случае нам не хватало запятой. 420 00:30:51,000 --> 00:30:54,000 Он пытался осмыслить все, 421 00:30:54,000 --> 00:30:57,000 так как эти интерпретируемых языков, переводчик будет пытаться 422 00:30:57,000 --> 00:31:01,000 и делать все возможное, чтобы заставить все работать должным образом. 423 00:31:01,000 --> 00:31:04,000 >> Вы увидите, например, в JavaScript 424 00:31:04,000 --> 00:31:10,000 Вы будете часто-лайн заявления заканчиваются точкой с запятой так же, как в PHP, 425 00:31:10,000 --> 00:31:13,000 так же, как в C. 426 00:31:13,000 --> 00:31:15,000 В JavaScript некоторые интерпретаторы JavaScript 427 00:31:15,000 --> 00:31:20,000 во многих браузерах будет положить в точку с запятой для вас 428 00:31:20,000 --> 00:31:23,000 если вам случится быть пропущены них. 429 00:31:23,000 --> 00:31:29,000 Они пытаются приспособить для некоторой небрежности с вашей стороны. 430 00:31:29,000 --> 00:31:34,000 Вот где можно было бы пробовать и пробовать и пытаться, чтобы все заработало, 431 00:31:34,000 --> 00:31:36,000 и, наконец, она будет добраться до точки, где он говорит хорошо, 432 00:31:36,000 --> 00:31:38,000 Я не могу сделать все это работает на спасение, а вот где вы получите номер строки 433 00:31:38,000 --> 00:31:44,000 , что может показаться немного не от точного места. 434 00:31:44,000 --> 00:31:47,000 Итак, давайте пройдемся по этому очень быстро. 435 00:31:47,000 --> 00:31:50,000 Мы остановились с Эллой, так что давайте перейдем к Мисси, 436 00:31:50,000 --> 00:31:54,000 и Мисси, что делает печать строка 1 плюс номер 2 вам даст? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Имеет ли это смысл? Вроде того? 439 00:31:59,000 --> 00:32:02,000 Дает ли это вам номер? Дает ли это вам строки? 440 00:32:02,000 --> 00:32:05,000 [Missy] число. >> Это число. 441 00:32:05,000 --> 00:32:09,000 Но это распечатав его, так что он собирается дать вам какую-то строку. 442 00:32:09,000 --> 00:32:12,000 >> Единственное, что мы можем сделать, чтобы проверить это 443 00:32:12,000 --> 00:32:21,000 , если мы делаем $ переменная = 1 + 2 444 00:32:21,000 --> 00:32:28,000 а то говорят, эхо GetType, 445 00:32:28,000 --> 00:32:33,000 поэтому мы используем третий вид печати здесь. 446 00:32:33,000 --> 00:32:39,000 Теперь мы видим, что здесь происходит. 447 00:32:39,000 --> 00:32:42,000 Вот что у нас получилось, что мы получили целое число из этого. 448 00:32:42,000 --> 00:32:45,000 Хотя мы были добавив эту строку в число, 449 00:32:45,000 --> 00:32:48,000 мы не получим строку из него, так же, как Missy сказала. 450 00:32:48,000 --> 00:32:52,000 Мы получали целое. 451 00:32:52,000 --> 00:32:57,000 Итак, давайте посмотрим, следующий до, Кевин. 452 00:32:57,000 --> 00:32:59,000 CS + 50? >> [Кевин] 50. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Имеет ли это смысл? 454 00:33:02,000 --> 00:33:04,000 [Кевин] Да. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Почему? Почему это имеет смысл для вас? 456 00:33:06,000 --> 00:33:11,000 [Кевин] Потому что только имея строки, имеющие нулевой числовое значение. 457 00:33:11,000 --> 00:33:16,000 Да, отлично. 458 00:33:16,000 --> 00:33:20,000 Вид неоднозначных ситуациях, но это хорошо, чтобы знать, что происходит. 459 00:33:20,000 --> 00:33:25,000 Stella, что произойдет дальше с номером 1 + строка 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3. >> 3 раз. 461 00:33:27,000 --> 00:33:30,000 И в этом случае, мы можем получить строку или число? 462 00:33:30,000 --> 00:33:36,000 >> Давайте дадим этому попытку. 463 00:33:36,000 --> 00:33:43,000 Никто быстрее, чем мне получить ответ? Шарлотта? 464 00:33:43,000 --> 00:33:46,000 О, я didn't-ладно, давайте посмотрим, что мы собираемся сделать нечто подобное 465 00:33:46,000 --> 00:33:49,000 где у нас есть число и строка, и мы собираемся повторить типа, 466 00:33:49,000 --> 00:33:51,000 посмотрим, что мы получаем. 467 00:33:51,000 --> 00:33:55,000 Мы также получаем целое число. 468 00:33:55,000 --> 00:33:58,000 Это не имеет значения, какой из них строки, которое является числом. 469 00:33:58,000 --> 00:34:00,000 Мы все еще собираемся, чтобы получить целое число. 470 00:34:00,000 --> 00:34:04,000 Он по-прежнему собирается сделать то, что мы могли бы ожидать. 471 00:34:04,000 --> 00:34:09,000 Ладно, Сэм, что около 90 + 9 бутылок пива на стене? 472 00:34:09,000 --> 00:34:12,000 [Сэм] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Нет бутылок пива на стене, однако. 474 00:34:15,000 --> 00:34:17,000 Это дает нам немного больше информации о том, что происходит. 475 00:34:17,000 --> 00:34:21,000 [Сэм] Если вы написали 9 в буквы 476 00:34:21,000 --> 00:34:23,000 тогда вам нужно будет 90, не так ли? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Да. 478 00:34:26,000 --> 00:34:30,000 Вопрос был, если бы мы записано 9, как N-I-N-E 479 00:34:30,000 --> 00:34:34,000 бы мы получили 99 или 90? 480 00:34:34,000 --> 00:34:38,000 Мы получаем 90. 481 00:34:38,000 --> 00:34:42,000 Это буквально ищет цифровых символов. 482 00:34:42,000 --> 00:34:46,000 Это не достаточно умен, чтобы признать число слов и вещей. Да. 483 00:34:46,000 --> 00:34:48,000 >> [Студент] Есть такая вещь, как приведение в PHP? 484 00:34:48,000 --> 00:34:54,000 Существует, и это именно так, как вы могли бы сделать это в C. 485 00:34:54,000 --> 00:34:56,000 Как насчет 10/7, Шарлотта? 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1,4285. 487 00:34:58,000 --> 00:35:01,000 [Nate H.] Да, так что же может быть удивительного? 488 00:35:01,000 --> 00:35:04,000 Что случится, если вы сделали это такая же вещь в C, 489 00:35:04,000 --> 00:35:06,000 если вы сделали 10/7 в C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Было бы только дать вам, в зависимости от того, как я предполагаю, typecasted 491 00:35:08,000 --> 00:35:12,000 это даст вам лишь ограниченное число цифр после запятой. 492 00:35:12,000 --> 00:35:16,000 Да, так ограниченное количество цифр после запятой. 493 00:35:16,000 --> 00:35:21,000 Что еще может быть, что это дает вам никаких цифр после запятой? 494 00:35:21,000 --> 00:35:28,000 Часто нет, так что снова, в зависимости от того, как вы его типажей 495 00:35:28,000 --> 00:35:31,000 он может или не может преобразовать его в число с плавающей точкой. 496 00:35:31,000 --> 00:35:35,000 Вот это было довольно приятно, что он и сделал. 497 00:35:35,000 --> 00:35:40,000 Если бы мы показали вам это назад, когда мы начали делать такого рода вещи в C 498 00:35:40,000 --> 00:35:44,000 он, вероятно, сделал бы немного больше смысла 499 00:35:44,000 --> 00:35:48,000 что он не просто пойти к 1. 500 00:35:48,000 --> 00:35:51,000 И, наконец, Джейми, как насчет 7 + правда? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Что это значит? 503 00:35:56,000 --> 00:35:58,000 Я думаю, он просто дает истинное значение 1. 504 00:35:58,000 --> 00:36:01,000 Да. Что произойдет, если мы изменим, что ложно? 505 00:36:01,000 --> 00:36:04,000 [Студент] 7. 506 00:36:04,000 --> 00:36:09,000 Да, и помните, где мы говорим об этих двоичных значений, 507 00:36:09,000 --> 00:36:12,000 1 являющийся на, 0 означает выключение? 508 00:36:12,000 --> 00:36:17,000 Теперь у нас есть истинные 1, 0 является ложным, 509 00:36:17,000 --> 00:36:21,000 и вы не могли видеть это на примерах C, что мы сделали это в прошлом семестре, 510 00:36:21,000 --> 00:36:27,000 но исторически BOOL типа C не было реального типа, 511 00:36:27,000 --> 00:36:32,000 так люди использовали 0 и 1 на место истинного и ложного. 512 00:36:32,000 --> 00:36:35,000 Это и есть проявление этого. 513 00:36:35,000 --> 00:36:39,000 >> Итак, одна важная часть обо всем этом 514 00:36:39,000 --> 00:36:41,000 является то, что у нас есть эти разные типы. 515 00:36:41,000 --> 00:36:43,000 Они могут взаимодействовать друг с другом. 516 00:36:43,000 --> 00:36:49,000 Они часто могут взаимодействовать друг с другом таким образом, что хорошие, как мы видели здесь. 517 00:36:49,000 --> 00:36:53,000 Приятно быть в состоянии иметь строку 1 и № 2, сложите их вместе и получить 3. 518 00:36:53,000 --> 00:36:55,000 Это имеет смысл. 519 00:36:55,000 --> 00:36:59,000 Однако, когда вы пишете веб-сайтов, и особенно, когда вы обрабатываете 520 00:36:59,000 --> 00:37:04,000 ввод пользователя, так сказать, вы написали веб-форму 521 00:37:04,000 --> 00:37:09,000 , которая собирает информацию от пользователя, а затем переходит на ее обработку 522 00:37:09,000 --> 00:37:13,000 на заднем конце, на стороне сервера в коде PHP 523 00:37:13,000 --> 00:37:18,000 если вы ожидаете, что значение, которое пользователь вводит в и представлен 524 00:37:18,000 --> 00:37:23,000 в форму, чтобы быть целое число или число с плавающей точкой или что-то вроде того 525 00:37:23,000 --> 00:37:29,000 Вы должны явно привести его 526 00:37:29,000 --> 00:37:34,000 , а затем сделать некоторые проверки типов. 527 00:37:34,000 --> 00:37:41,000 >> Вы же не хотите, чтобы полагаться только на этой системе жонглирование типа, чтобы все получилось, 528 00:37:41,000 --> 00:37:48,000 Особенно по соображениям безопасности и просто для надежности вашего сайта. 529 00:37:48,000 --> 00:37:51,000 Просто что-то иметь в виду, что всякий раз, когда вы обработки данных формы, 530 00:37:51,000 --> 00:37:57,000 все, что происходит в пост или Get суперглобальных 531 00:37:57,000 --> 00:38:01,000 Убедитесь, что вы всегда проверить его и преобразовать его и приведение его. 532 00:38:01,000 --> 00:38:04,000 И так же, как мы говорим о минуту назад, что типажей 533 00:38:04,000 --> 00:38:08,000 В PHP точно так же, как и в C, где у вас есть скобки 534 00:38:08,000 --> 00:38:14,000 а потом типа. 535 00:38:14,000 --> 00:38:16,000 Имейте это в виду. 536 00:38:16,000 --> 00:38:19,000 Одна функция, которая пригодится, когда вы делаете это 537 00:38:19,000 --> 00:38:22,000 это мы использовали и это вроде как в сторону- 538 00:38:22,000 --> 00:38:27,000 мы используем эту функцию GetType прямо здесь 539 00:38:27,000 --> 00:38:30,000 , чтобы выяснить тип переменной, 540 00:38:30,000 --> 00:38:37,000 и, хотя это удобно для отладки и посмотреть, что тип переменной является 541 00:38:37,000 --> 00:38:42,000 Вы не хотите использовать это, например, в условиях, когда 542 00:38:42,000 --> 00:38:57,000 Вы проверяете ли GetType в $ переменная = целое что-то делать. 543 00:38:57,000 --> 00:39:01,000 Это плохо, плохо, плохо. 544 00:39:01,000 --> 00:39:09,000 Вместо этого есть эти функции называют это целое число, строка, 545 00:39:09,000 --> 00:39:14,000 является массив, который вы хотите использовать вместо этого, поэтому в данном случае 546 00:39:14,000 --> 00:39:18,000 то, что я хотел бы сделать вместо этого парня прямо здесь 547 00:39:18,000 --> 00:39:31,000 это использовать это целое обл. 548 00:39:31,000 --> 00:39:37,000 И они часто называют это is_ * в том смысле, что вы могли бы заменить * с целым, 549 00:39:37,000 --> 00:39:43,000 строка, и так далее, и просто чтобы убедиться, действительно быстро 550 00:39:43,000 --> 00:39:50,000 Является ли это Int PHP. 551 00:39:50,000 --> 00:39:59,000 Похоже, что Вы можете сделать это либо Int или есть целое, а? 552 00:39:59,000 --> 00:40:06,000 Да, псевдоним, так Int целое псевдонимы. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Как мы это делаем? 555 00:40:17,000 --> 00:40:20,000 Давайте поднять темпы немного. 556 00:40:20,000 --> 00:40:24,000 Теперь мы собираемся говорить о массивах, так как вы можете видеть 557 00:40:24,000 --> 00:40:28,000 В следующей части спектра мы говорим о том, как массивы в PHP 558 00:40:28,000 --> 00:40:31,000 немного отличается, чем в C. 559 00:40:31,000 --> 00:40:34,000 По правде говоря, они вроде амальгамы 560 00:40:34,000 --> 00:40:36,000 массивов, что вы пришли к знаем и любим в C 561 00:40:36,000 --> 00:40:40,000 где все того же типа 562 00:40:40,000 --> 00:40:43,000 храниться последовательно и непрерывно в памяти, 563 00:40:43,000 --> 00:40:46,000 и у вас есть эти числовые индексы. 564 00:40:46,000 --> 00:40:49,000 У вас есть индекс 0, индекс 1, индекс 2, 565 00:40:49,000 --> 00:40:53,000 и хранить значения на этих индексов. 566 00:40:53,000 --> 00:40:57,000 Вы также C, когда вы писали Speller, что многие из вас 567 00:40:57,000 --> 00:41:00,000 сделал хэш-таблице подход, и вы видели, что у нас было 568 00:41:00,000 --> 00:41:03,000 различные виды хранения, где мы были отображение 569 00:41:03,000 --> 00:41:07,000 Ключ к значению, поэтому, когда вы старались хранить что-то в хэш-таблице 570 00:41:07,000 --> 00:41:11,000 Вы должны были указать, что вы хотите сохранить его с определенным ключом, 571 00:41:11,000 --> 00:41:17,000 и что ключевые определяется местоположение значения и где он будет храниться. 572 00:41:17,000 --> 00:41:22,000 Ты вроде есть оба эти понятия происходит в то же время в массив PHP, 573 00:41:22,000 --> 00:41:27,000 и, как результат, мы часто называем эти ассоциативные массивы 574 00:41:27,000 --> 00:41:33,000 где мы связывая введите значение. 575 00:41:33,000 --> 00:41:39,000 В следующей части мы поговорим о простой массив PHP 576 00:41:39,000 --> 00:41:45,000 где у нас есть клавиши A, B, и C, 577 00:41:45,000 --> 00:41:53,000 Все строки, сопоставление с числами 1, 2 и 3. 578 00:41:53,000 --> 00:41:57,000 И вы можете иметь ключи разных типов. 579 00:41:57,000 --> 00:42:00,000 >> Вы можете иметь несколько ключей, которые являются строки, некоторые ключи, которые являются целыми числами. 580 00:42:00,000 --> 00:42:03,000 Вы можете иметь значения различных типов. 581 00:42:03,000 --> 00:42:06,000 Вы можете иметь значение, которое строки, значения это число, 582 00:42:06,000 --> 00:42:11,000 значение, которое объект или другой массив, например, 583 00:42:11,000 --> 00:42:16,000 все в том же массиве объектов, который является немного странно. 584 00:42:16,000 --> 00:42:20,000 Вы не должны иметь массив, который только что получил один тип элемента в нем. 585 00:42:20,000 --> 00:42:26,000 Вы можете иметь много разных вещей там происходит. 586 00:42:26,000 --> 00:42:33,000 Кроме того, необходимо отметить, что, когда вы видите что-то вроде этого в коде, 587 00:42:33,000 --> 00:42:38,000 который действует PHP объявить массив как это, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 , что объявят инициализируется $ обр, чтобы быть в этом массиве. 589 00:42:43,000 --> 00:42:48,000 Но то, что вы фактически получаете под капотом такой неявной 590 00:42:48,000 --> 00:42:55,000 генерация ключей, где мы получили с 0 по 0, 1 до 1, 2 на 2, 3 на 3. 591 00:42:55,000 --> 00:42:59,000 И получается, что даже если у вас есть массив, как этот парень здесь 592 00:42:59,000 --> 00:43:03,000 где у вас есть, б и в качестве ключей 593 00:43:03,000 --> 00:43:09,000 а затем вы начинаете использовать метод массива толчок, чтобы начать использовать этот массив, как стек, 594 00:43:09,000 --> 00:43:12,000 так что вы можете видеть, что этот объект массива, этот массив действительно перегружен. 595 00:43:12,000 --> 00:43:15,000 Мы можем использовать его как массив. Мы можем использовать его в хэш-таблице. 596 00:43:15,000 --> 00:43:19,000 Мы можем использовать его в качестве стека. 597 00:43:19,000 --> 00:43:22,000 Когда вы начинаете нажав вещи на этом массиве 598 00:43:22,000 --> 00:43:30,000 Первое, что вы нажимаете на это будет индекс 0, а затем индекс 1, а индекс 2. 599 00:43:30,000 --> 00:43:33,000 Вы можете получить такой неявной генерации ключей 600 00:43:33,000 --> 00:43:38,000 если не указать их явно. 601 00:43:38,000 --> 00:43:43,000 То, как вы явно указать ключи, конечно же, с помощью этой скобок, 602 00:43:43,000 --> 00:43:48,000 который похож на массивах, за исключением, а не только позволяет 603 00:43:48,000 --> 00:43:54,000 целочисленных индексов здесь, сейчас мы позволим ничего. 604 00:43:54,000 --> 00:43:57,000 Если вы хотите, чтобы ваш ключ должен быть строкой, Вы должны определить это так. 605 00:43:57,000 --> 00:44:06,000 Если вы хотите, чтобы это было целое число, необходимо указать его с внутр вы хотите использовать. 606 00:44:06,000 --> 00:44:13,000 >> Вопросы, на которые до сих пор? 607 00:44:13,000 --> 00:44:18,000 Одна из хороших вещей об этой идее 608 00:44:18,000 --> 00:44:26,000 что вы можете только когда-либо одно значение хранится с определенным ключом. 609 00:44:26,000 --> 00:44:32,000 Если мы вернемся к нашим прибором, позвольте мне удалить некоторые из этих вещей. 610 00:44:32,000 --> 00:44:47,000 И давайте говорить, что я инициализировать массив 0, 1, 2, сделано. 611 00:44:47,000 --> 00:44:55,000 Если я теперь знаю, что, например, если я Эхо $ Arr [0] 612 00:44:55,000 --> 00:44:59,000 Я хочу, чтобы получить значение 0 распечатаны, 613 00:44:59,000 --> 00:45:05,000 и так как может быть как никогда одно значение храниться в течение определенного ключа 614 00:45:05,000 --> 00:45:11,000 если бы я хранить что-то на $ обр [0], скажем, 615 00:45:11,000 --> 00:45:16,000 Затем я знаю, когда я повторяю $ обр [0], 616 00:45:16,000 --> 00:45:19,000 Я не собираюсь получить 0 распечатаны, как раньше. 617 00:45:19,000 --> 00:45:24,000 Я только собираюсь. 618 00:45:24,000 --> 00:45:30,000 Так что это в основном говорят, что я не могу иметь $ обр [0] Хранение 2 разных значения. 619 00:45:30,000 --> 00:45:34,000 Она не может храниться как 0, так и строкой, как это буквально заменяет 620 00:45:34,000 --> 00:45:38,000 что было на $ обр [0] ранее. 621 00:45:38,000 --> 00:45:43,000 Поэтому я об этом до запуска его, посмотреть, что происходит. 622 00:45:43,000 --> 00:45:47,000 Смотрите здесь, что я получил 0 распечатать, а затем сюда. 623 00:45:47,000 --> 00:45:51,000 Там нет новых линий, потому что я был ленив и не положить, что дюйма 624 00:45:51,000 --> 00:45:54,000 Что я люблю этого мы можем использовать это как способ 625 00:45:54,000 --> 00:46:00,000 , чтобы захватить эту идею набор 626 00:46:00,000 --> 00:46:07,000 где мы не можем иметь несколько ключей в массиве. 627 00:46:07,000 --> 00:46:10,000 Мы не можем иметь одинаковые ключи в массиве. 628 00:46:10,000 --> 00:46:17,000 Я не могу иметь клавишу 0 и значение 1 и ключевым значением 0 и 629 00:46:17,000 --> 00:46:21,000 или ключевым 0 и значение ИСТИНА. 630 00:46:21,000 --> 00:46:27,000 Клавиши все есть только 1 ключ в массиве. 631 00:46:27,000 --> 00:46:32,000 Даже если вы можете иметь то же значение, хранящееся 632 00:46:32,000 --> 00:46:35,000 несколько раз в массиве под разными ключами 633 00:46:35,000 --> 00:46:42,000 это не возможно иметь одинаковые ключи несколько раз в вашем PHP массива. 634 00:46:42,000 --> 00:46:47,000 >> Если мы посмотрим на это следующая проблема, unique.php, 635 00:46:47,000 --> 00:46:51,000 где мы хотим открыть файл PHP 636 00:46:51,000 --> 00:46:54,000 , содержащий список строк, одна строка на линию, 637 00:46:54,000 --> 00:47:01,000 и мы хотим, чтобы найти все уникальные строки в файле 638 00:47:01,000 --> 00:47:06,000 все, что нам нужно сделать, это использовать один из этих массивах PHP 639 00:47:06,000 --> 00:47:12,000 и с помощью строки в файле ключей к этому массиву 640 00:47:12,000 --> 00:47:17,000 и постоянно обновлять наш массив как мы храним эти новые ключи. 641 00:47:17,000 --> 00:47:22,000 Как мы читаем каждую строку из файла мы можем хранить их в массив, 642 00:47:22,000 --> 00:47:28,000 и в конце мы будем иметь, как наши ключи в массиве 643 00:47:28,000 --> 00:47:34,000 все уникальные строки в файле. 644 00:47:34,000 --> 00:47:37,000 Имеет ли это смысл? 645 00:47:37,000 --> 00:47:41,000 Давайте посмотрим, как это работает. 646 00:47:41,000 --> 00:47:49,000 Мы собираемся открыть, в соответствии со спецификацией, новый файл с именем unique.php. 647 00:47:49,000 --> 00:47:58,000 Открыть. Ой, извините, новый файл. 648 00:47:58,000 --> 00:48:03,000 Мы собираемся начать его с тем же начальным и конечным тегами. 649 00:48:03,000 --> 00:48:17,000 Мы собираемся сохранить его в разделе 9, и мы будем называть его unique.php. 650 00:48:17,000 --> 00:48:25,000 Хорошо, теперь масштаб изображения 651 00:48:25,000 --> 00:48:32,000 Идея здесь состоит открыть файл, 652 00:48:32,000 --> 00:48:38,000 читать в файл строка за строкой. 653 00:48:38,000 --> 00:48:46,000 Для каждой строки в файле 654 00:48:46,000 --> 00:48:51,000 мы будем иметь массив, где у нас есть 655 00:48:51,000 --> 00:49:03,000  линии, как наш ключ. 656 00:49:03,000 --> 00:49:09,000 А потом, когда мы дойдем до конца здесь 657 00:49:09,000 --> 00:49:17,000 Клавиши $ обр являются уникальными линиями 658 00:49:17,000 --> 00:49:25,000 из файла, поскольку мы знаем, что если я ставлю линию в этом массиве 659 00:49:25,000 --> 00:49:33,000 несколько раз он просто будет держать переопределения старое значение, 660 00:49:33,000 --> 00:49:46,000 и мы можем на самом деле положить линейного массива в качестве самой просто так. 661 00:49:46,000 --> 00:49:48,000 >> Это немного странно. 662 00:49:48,000 --> 00:49:52,000 Мы хранение и тот же ключ пары значений снова и снова, и снова, 663 00:49:52,000 --> 00:50:00,000 но так как мы гарантированы, что будет только 1 ключ называется линией 664 00:50:00,000 --> 00:50:05,000 так что если у нас есть файл, который говорит-файл звуков животных и имеет гав, гав, 665 00:50:05,000 --> 00:50:11,000 Мяу, мяу, му, му, и каждый раз мы читали животного шум 666 00:50:11,000 --> 00:50:15,000 как утка, и мы храним его в нашем массиве мы получаем гав, а затем во второй раз 667 00:50:15,000 --> 00:50:20,000 мы храним гав он перепишет в первый раз, что мы сохранили его. 668 00:50:20,000 --> 00:50:25,000 В конце концов мы будем иметь только один элемент массива 669 00:50:25,000 --> 00:50:33,000 для каждого из звуков животных в нашем файле животных шумы. 670 00:50:33,000 --> 00:50:41,000 Парни, вы уверены, что вы можете решать открытия файла в PHP? 671 00:50:41,000 --> 00:50:45,000 Один из способов сделать это, давайте рассмотрим это быстро один способ сделать это 672 00:50:45,000 --> 00:50:50,000 С Еореп, как мы видели ранее. 673 00:50:50,000 --> 00:50:55,000 Вы можете Еореп some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Вы можете открыть его в режиме чтения, как и в C. 675 00:50:59,000 --> 00:51:02,000 Это одно совершенно хороший способ сделать это. 676 00:51:02,000 --> 00:51:05,000 Вы также то для чтения в файл строка за строкой 677 00:51:05,000 --> 00:51:12,000 имеют те же функции, многие из них, что вы сделали в C. 678 00:51:12,000 --> 00:51:14,000 У вас есть ЕдеЬз. 679 00:51:14,000 --> 00:51:17,000 У вас есть feof, хотя нам не нравится, что использование 680 00:51:17,000 --> 00:51:22,000 потому что, помните, что не было большой в C. 681 00:51:22,000 --> 00:51:25,000 Вы можете сделать это таким же образом, 682 00:51:25,000 --> 00:51:34,000 но вот это действительно круто. 683 00:51:34,000 --> 00:51:41,000 Извините, я не хочу, чтобы сделать файл $, но есть функция с именем файла в PHP, 684 00:51:41,000 --> 00:51:47,000 и эта функция прямо здесь прохладно, потому что он читает все содержимое 685 00:51:47,000 --> 00:51:52,000 файла, который вы укажете, так some_file.txt, 686 00:51:52,000 --> 00:51:56,000 читает все содержимое этого файла в массив 687 00:51:56,000 --> 00:52:03,000 а затем позволяет итерацию над ним, который является довольно изящный. 688 00:52:03,000 --> 00:52:07,000 >> Если мы обратимся, например, к нашему веб-браузер 689 00:52:07,000 --> 00:52:14,000 и мы смотрим на Google для файла PHP 690 00:52:14,000 --> 00:52:23,000 Вы можете видеть здесь, что наше руководство говорит, что файл читается весь файл в массив, 691 00:52:23,000 --> 00:52:27,000 и мы можем file_get_contents, чтобы вернуть содержимое файла в виде строки, 692 00:52:27,000 --> 00:52:30,000 но обычно просто получить его как массив действительно хорошо, потому что то, что он делает 693 00:52:30,000 --> 00:52:33,000 оно нарушает его так, что каждый элемент 694 00:52:33,000 --> 00:52:37,000 в массиве является одной строке файла, 695 00:52:37,000 --> 00:52:41,000 Таким образом, если мы посмотрим на файл 0, это первая линия файл. 696 00:52:41,000 --> 00:52:46,000 Файл 1, вторая строка, файл 2, третья линия, и так далее, и так далее. 697 00:52:46,000 --> 00:52:50,000 Разве не было бы здорово, если бы это было все, что нужно было сделать в C? 698 00:52:50,000 --> 00:52:53,000 Довольно отличный. 699 00:52:53,000 --> 00:52:59,000 Дэвид показал это в лекции, и он показал язык был 700 00:52:59,000 --> 00:53:03,000 что в дополнение к нашим стандартным цикла в PHP у нас было, что 701 00:53:03,000 --> 00:53:09,000 для ($ I = 0; I <10, я + +), 702 00:53:09,000 --> 00:53:16,000 и вы можете сделать это в PHP тоже, одно и то же- 703 00:53:16,000 --> 00:53:27,000 у нас также есть этот прохладный конструкцию, называемую Еогеасп. 704 00:53:27,000 --> 00:53:32,000 Foreach действительно удобно, когда итерации массивов или структур данных 705 00:53:32,000 --> 00:53:36,000 потому что он позволяет вытащить каждый элемент массива 706 00:53:36,000 --> 00:53:42,000 без необходимости вручную делать индексацию себя, 707 00:53:42,000 --> 00:53:46,000 без необходимости вручную создавать индекс переменной, увеличить, 708 00:53:46,000 --> 00:53:51,000 вытащить значение в массиве в тот момент, потому что это очень распространенная вещь. 709 00:53:51,000 --> 00:53:54,000 >> Вы, наверное, сделали это т раз, когда вы делаете вещи C 710 00:53:54,000 --> 00:54:00,000 в течение семестра, так что с этой Еогеасп 711 00:54:00,000 --> 00:54:06,000 мы можем повторить за этот файл массива, 712 00:54:06,000 --> 00:54:12,000 и синтаксиса, который мы хотим теперь цикл по этому массиву 713 00:54:12,000 --> 00:54:18,000 и указать, что переменная, которую мы собираемся использовать для хранения 714 00:54:18,000 --> 00:54:27,000 элемент этого массива на местном уровне, локальные рамки этого цикл по каждому элементу, 715 00:54:27,000 --> 00:54:32,000 это мы будем называть его линии. 716 00:54:32,000 --> 00:54:38,000 Если это файл просто слова, а есть одно слово в строке 717 00:54:38,000 --> 00:54:43,000 Мы могли бы назвать это слово, а, на самом деле просто вы даете этим именем, 718 00:54:43,000 --> 00:54:49,000 все, что вы хотите назвать это, 719 00:54:49,000 --> 00:55:02,000 , а затем внутри цикла вы можете делать все, что вы хотите с этой переменной строку. 720 00:55:02,000 --> 00:55:08,000 Если это не достаточно, чтобы получить значение массива, и вы также хотите получить 721 00:55:08,000 --> 00:55:17,000 Индекс вместе с ней вы можете указать имя индекса 722 00:55:17,000 --> 00:55:22,000 а также значение, и теперь у вас есть доступ к 2 переменных. 723 00:55:22,000 --> 00:55:26,000 У вас есть $ я и линии 724 00:55:26,000 --> 00:55:30,000 где $ я это индекс в массиве, 725 00:55:30,000 --> 00:55:38,000 и линией является линия, что вы извлечены из файла. 726 00:55:38,000 --> 00:55:49,000 Например, если мы хотим, чтобы распечатать эхо линии 0-файла, как это, 727 00:55:49,000 --> 00:55:57,000 Мы могли бы сделать это так же, как это, "Line $ I-файла составляет $ линию" 728 00:55:57,000 --> 00:56:02,000 а вот то, что мы также не видели еще ни 729 00:56:02,000 --> 00:56:13,000 где я только что полностью пропустил% всей этой% S D бизнеса 730 00:56:13,000 --> 00:56:16,000 что мы имели дело с в С, а вместо этого я пошел прямо к 731 00:56:16,000 --> 00:56:19,000 написание переменных в строке в моей строке. 732 00:56:19,000 --> 00:56:23,000 >> Это называется переменная интерполяции строк интерполяцией 733 00:56:23,000 --> 00:56:26,000 где вы начинку переменных прямо в, и переводчик PHP 734 00:56:26,000 --> 00:56:31,000 достаточно умны, когда он читает через строку, которая начинается с двойных кавычках- 735 00:56:31,000 --> 00:56:34,000 Не одинарные кавычки, с одной строки в кавычках вы не можете сделать этого, 736 00:56:34,000 --> 00:56:38,000 но с двойными кавычками, как читает он ищет переменные. 737 00:56:38,000 --> 00:56:42,000 Он охотился на них, и если он видит переменных она примет значение переменной 738 00:56:42,000 --> 00:56:47,000 и запихивать его в строку, если он может преобразовать его в строку представления, 739 00:56:47,000 --> 00:56:51,000 который является довольно изящный. 740 00:56:51,000 --> 00:56:56,000 А сейчас давайте закомментируйте все остальные, 741 00:56:56,000 --> 00:57:00,000 сохранить, и что мы можем сделать сейчас, это мы можем открыть файл 742 00:57:00,000 --> 00:57:06,000 что мы можем назвать some_file.txt-давайте создадим новый файл- 743 00:57:06,000 --> 00:57:15,000 и мы можем положить в кучу ерунды вещи здесь просто чтобы проверить все из, 744 00:57:15,000 --> 00:57:25,000 сохранить его, назовем его some_file.txt, как я делаю здесь в верхней части, 745 00:57:25,000 --> 00:57:33,000 и теперь, если я масштаб просто чтобы убедиться, что все в той же директории- 746 00:57:33,000 --> 00:57:36,000 похоже, у меня есть unique.php и some_file.txt в том же каталоге. 747 00:57:36,000 --> 00:57:42,000 Если я запускаю PHP unique.php 748 00:57:42,000 --> 00:57:51,000 посмотреть, как он печатает каждую строку в файле и какой линии? 749 00:57:51,000 --> 00:57:56,000 >> Это довольно мощная, правильно? 750 00:57:56,000 --> 00:58:03,000 Посмотрите, он занял 3 строки кода, чтобы открыть файл. 751 00:58:03,000 --> 00:58:08,000 Ну, 4 строки кода. Я не могу рассчитывать сегодня, ясно. 752 00:58:08,000 --> 00:58:13,000 Но на самом деле только 2 интересных строк кода, потому что другие 2 были фигурные скобки, 753 00:58:13,000 --> 00:58:17,000 но в этом много кода, мы смогли открыть файл, итерацию по ней, 754 00:58:17,000 --> 00:58:20,000 вытащите номер строки и саму линию 755 00:58:20,000 --> 00:58:24,000 и распечатать его. 756 00:58:24,000 --> 00:58:26,000 Прикольных вещей. Шарлотта. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] У меня вопрос о синтаксисе. 758 00:58:28,000 --> 00:58:33,000 Так Еогеасп сделок с каждой строки файла, которые открывались, 759 00:58:33,000 --> 00:58:37,000 , а затем, когда вы хотите сделать что-то с каждой строке вы просто сделать это как 760 00:58:37,000 --> 00:58:39,000 и затем связать значение. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Что вы можете сделать прямо здесь-вопрос 762 00:58:41,000 --> 00:58:46,000 Еогеасп имеет дело с массивом, так что каждому элементу синтаксиса 763 00:58:46,000 --> 00:58:51,000 действительно ForEach, и заметил, что там нет места 764 00:58:51,000 --> 00:58:53,000 или что-нибудь между и для каждого. 765 00:58:53,000 --> 00:58:56,000 Они должны идти рядом друг с другом, 766 00:58:56,000 --> 00:59:00,000 , а затем она занимает в массиве, 767 00:59:00,000 --> 00:59:05,000 а то у вас это другое ключевое слово называется, что должен быть там, 768 00:59:05,000 --> 00:59:11,000 а после, как вы можете положить одну переменную имя, 769 00:59:11,000 --> 00:59:14,000 В этом случае вы будете потянув значения массива, 770 00:59:14,000 --> 00:59:20,000 Не индексов, или если вы делаете это, как мы уже писали ниже 771 00:59:20,000 --> 00:59:24,000 Вы получаете ключи и значения. 772 00:59:24,000 --> 00:59:33,000 У вас есть Еогеасп элемент массива или пару массив как в привязке к значению 773 00:59:33,000 --> 00:59:38,000 или просто как ценность. 774 00:59:38,000 --> 00:59:40,000 В зависимости от того, что вам нужно, если вы не нужны ключи, 775 00:59:40,000 --> 00:59:42,000 то вы можете пойти со значением. 776 00:59:42,000 --> 00:59:45,000 Если вы хотите клавиши вы можете пойти с ними. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Я также понял, что мы никогда не заявлял я или линии. 778 00:59:48,000 --> 00:59:51,000 Как она даже знаю, что они есть? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Что вы имеете в виду объявить? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Мы никогда не сказал им, что я или линия средств. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Мы никогда не говорили, что я компьютер или линия означает в терминах- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] То, что они проиндексированы, или что they're- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Мы никогда не говорили, что это должен быть индекс или ключ и значение, 784 01:00:09,000 --> 01:00:13,000 и это потому, что это PHP переводчика. 785 01:00:13,000 --> 01:00:17,000 Это служит заявление и говорит, что все в порядке, то ключ будет 786 01:00:17,000 --> 01:00:20,000 переменную я хранится в переменной я. 787 01:00:20,000 --> 01:00:24,000 Это значение будет храниться в переменной линии, 788 01:00:24,000 --> 01:00:28,000 таким образом, это служит заявление из этих переменных 789 01:00:28,000 --> 01:00:35,000 и говорит, что $ I является одним из ключевых, и $ линия значение. 790 01:00:35,000 --> 01:00:37,000 Да, Элла. 791 01:00:37,000 --> 01:00:41,000 [Элла] Если ключи не сделали численно 792 01:00:41,000 --> 01:00:44,000 Как это решить, что целью он собирается печатать все? 793 01:00:44,000 --> 01:00:47,000 Разве это так же, как это порядка вступили в? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Давайте попробуем. 795 01:00:51,000 --> 01:00:57,000 Давайте создадим переменную обр, 796 01:00:57,000 --> 01:01:06,000 и мы можем сделать идет до 7. 797 01:01:06,000 --> 01:01:19,000 Скажем, 0 переходит в другой массив с 1, 2 или яблоко. 798 01:01:19,000 --> 01:01:30,000 Скажем, 7 выходит в 1, б идет в 2, 799 01:01:30,000 --> 01:01:39,000 и 3 переходит в 4. 800 01:01:39,000 --> 01:01:44,000 Это своего рода сумасшедших глядя пример, потому что мы смешивая 801 01:01:44,000 --> 01:01:47,000 строки и целые числа повсюду. 802 01:01:47,000 --> 01:01:50,000 Там нет реальной целью этого массива. 803 01:01:50,000 --> 01:01:55,000 Я имею в виду, мы могли заказать все в алфавитном порядке по клавишам. 804 01:01:55,000 --> 01:01:57,000 Мы могли заказать все в алфавитном порядке по значению. 805 01:01:57,000 --> 01:02:00,000 >> Мы могли бы попытаться взять во внимание, что некоторые строки, некоторые из них целые, 806 01:02:00,000 --> 01:02:03,000 и мы могли бы попытаться преобразовать их все к одному типу и посмотреть, что происходит, 807 01:02:03,000 --> 01:02:09,000 или мы могли бы рассмотреть их в стоимость, в которой мы уже вошел в них 808 01:02:09,000 --> 01:02:14,000 где мы положили этому парню в первом, этот парень в секунду, этот парень в третьем, 809 01:02:14,000 --> 01:02:19,000 этот парень в четвертый, и так далее. 810 01:02:19,000 --> 01:02:23,000 Давайте посмотрим, что происходит, когда мы запустим этот код. 811 01:02:23,000 --> 01:02:29,000 Если мы прокрутите вниз и сделать то же самое рода вещи, 812 01:02:29,000 --> 01:02:31,000 а вот это не выводя новые линии. 813 01:02:31,000 --> 01:02:35,000 Когда он читал вещи из файла он был в том числе новых линий в значениях, 814 01:02:35,000 --> 01:02:38,000 который был, почему он распечатал красиво, а здесь этого не произошло, 815 01:02:38,000 --> 01:02:40,000 так вот почему все smushed вместе. 816 01:02:40,000 --> 01:02:44,000 Давайте добавим в том, что новая линия просто сделать все хорошо. 817 01:02:44,000 --> 01:02:51,000 Давайте повторно, и поэтому здесь 818 01:02:51,000 --> 01:02:54,000 Посмотрите, что произошло. 819 01:02:54,000 --> 01:03:00,000 Здесь печатались все в порядке, в котором мы ставим его в массив. 820 01:03:00,000 --> 01:03:10,000 Это не сохранить порядок в этом смысле. 821 01:03:10,000 --> 01:03:15,000 >> Возвращаясь к этой проблеме уникумов 822 01:03:15,000 --> 01:03:20,000 , где мы хотим, чтобы иметь возможность перебора файлов, 823 01:03:20,000 --> 01:03:24,000 и мы дадим его some_file.txt, 824 01:03:24,000 --> 01:03:27,000 и мы собираемся для перебора это так. 825 01:03:27,000 --> 01:03:31,000 Мы сказали, что мы хотели бы использовать массив, чтобы убедиться, что мы получили все 826 01:03:31,000 --> 01:03:36,000 уникальные линии оттуда, и мы могли бы сделать это очень легко 827 01:03:36,000 --> 01:03:49,000 от просто хранить в массиве, мы, конечно, объявить вне рамок цикла, 828 01:03:49,000 --> 01:03:55,000 и мы сказали, что если бы мы использовали строки в файле в качестве ключей в массиве 829 01:03:55,000 --> 01:03:59,000 если мы вошли дубликат линии мы бы отменяя предыдущее значение. 830 01:03:59,000 --> 01:04:08,000 Это не всегда возможно иметь 2 ключей, которые идентичны в одном массиве. 831 01:04:08,000 --> 01:04:13,000 Мы можем сделать это. 832 01:04:13,000 --> 01:04:17,000 Мы будем избавиться от этого эха заявление прямо здесь. 833 01:04:17,000 --> 01:04:24,000 Здесь мы хранении строки в файле в массиве 834 01:04:24,000 --> 01:04:28,000 использования себя в качестве ключа. 835 01:04:28,000 --> 01:04:32,000 Ничего на него, и оказывается, что мы даже не нужно этого ключа. 836 01:04:32,000 --> 01:04:38,000 Нам не нужно, что я переменная. 837 01:04:38,000 --> 01:04:43,000 В этот момент, если бы мы должны были сделать еще один цикл по каждому элементу 838 01:04:43,000 --> 01:04:48,000 и мы должны были цикл по каждому обр 839 01:04:48,000 --> 01:04:56,000 и линия сейчас, если мы эхо-ой, простите. 840 01:04:56,000 --> 01:05:00,000 Мы не можем использовать запятую. Мы должны использовать это в качестве ключевого слова. 841 01:05:00,000 --> 01:05:05,000 Теперь, если мы выводим линию мы должны получить все уникальные слова в файле. 842 01:05:05,000 --> 01:05:10,000 Если мы пойдем до some_file.txt, 843 01:05:10,000 --> 01:05:19,000 и скажем, что мы делаем яблоко, банан, яблоко, яблоко, банан, 844 01:05:19,000 --> 01:05:22,000 если мы распечатку всех уникальных слов в этот файл мы должны получить только 845 01:05:22,000 --> 01:05:30,000 Яблоко и банан распечатать. 846 01:05:30,000 --> 01:05:36,000 Если мы сохраним эту, теперь вот мы в масштаб, 847 01:05:36,000 --> 01:05:44,000 PHP unique.php, и та-да. 848 01:05:44,000 --> 01:05:51,000 Мы успешно uniqued файл. 849 01:05:51,000 --> 01:05:55,000 >> В заключительной части этой проблеме прошу вас разобраться в этом массиве, прежде чем напечатали его из 850 01:05:55,000 --> 01:05:58,000 потому что в этом простом примере, который мы только что сделали 851 01:05:58,000 --> 01:06:04,000 нам повезло в том смысле, что файл- 852 01:06:04,000 --> 01:06:06,000 мы сделали это надуманный пример с яблоками и бананами. 853 01:06:06,000 --> 01:06:08,000 Было уже отсортированы. 854 01:06:08,000 --> 01:06:19,000 Но с помощью простой функции сортировки можно отсортировать массив, который является довольно изящный. 855 01:06:19,000 --> 01:06:24,000 Последнее, что я хотел бы поговорить с вами, ребята об очень быстро 856 01:06:24,000 --> 01:06:31,000 является то, что такое PHP это все хорошо, и это супер удобно 857 01:06:31,000 --> 01:06:43,000 , чтобы узнать, как это сделать, если вы когда-нибудь понадобится сделать маленький, быстрый вещи программно. 858 01:06:43,000 --> 01:06:48,000 Например, если мне нужно написать программу, которая, скажем, 859 01:06:48,000 --> 01:06:53,000 ставит всех в разделах Я не собираюсь идти и писать на языке C. 860 01:06:53,000 --> 01:06:55,000 Это собирается быть длинным. 861 01:06:55,000 --> 01:06:57,000 Это собирается быть даже боль, особенно если есть файлы участие, 862 01:06:57,000 --> 01:07:00,000 так же, как вы, ребята, видели. 863 01:07:00,000 --> 01:07:05,000 Это так приятно, что именно с этого много кода прямо здесь 864 01:07:05,000 --> 01:07:08,000 мы были в состоянии копировать через файл, вытащить все уникальные значения 865 01:07:08,000 --> 01:07:11,000 и печатать их обратно. 866 01:07:11,000 --> 01:07:16,000 >> Тем не менее, для вашего задания, для ваших проектов, 867 01:07:16,000 --> 01:07:20,000 если вы создаете веб-сайтов с PHP власти в том, что 868 01:07:20,000 --> 01:07:25,000 мы проводим нашу PHP файлов через эту переводчика, 869 01:07:25,000 --> 01:07:29,000 и переводчик обрабатывает все внутри тегов PHP, 870 01:07:29,000 --> 01:07:34,000 оставив все остальное нетронутым и выплевывая результаты. 871 01:07:34,000 --> 01:07:40,000 Мы можем сделать это, чтобы построить HTML программно. 872 01:07:40,000 --> 01:07:46,000 Теперь, если мы вернемся к спецификации, последняя проблема в спецификации 873 01:07:46,000 --> 01:07:56,000 Переговоры об этой идее концентрации 874 01:07:56,000 --> 01:08:01,000 и создание выпадающего меню, 875 01:08:01,000 --> 01:08:06,000 которые вы можете или не можете сделать, в зависимости от того, что ваш окончательный проект делает, 876 01:08:06,000 --> 01:08:13,000 , что позволяет пользователю выбрать из списка всех возможных концентраций 877 01:08:13,000 --> 01:08:15,000 их одной концентрации. 878 01:08:15,000 --> 01:08:21,000 Теперь, это вид боли, чтобы напечатать это из 879 01:08:21,000 --> 01:08:25,000 и придется делать все это вручную, особенно, когда вы испытываете, чтобы убедиться, 880 01:08:25,000 --> 01:08:28,000 что у вас есть все угловые скобки в нужном месте и все кавычки в нужном месте, 881 01:08:28,000 --> 01:08:34,000 так с PHP вы можете сделать это программно, и вы можете сделать это очень быстро. 882 01:08:34,000 --> 01:08:36,000 >> Давайте посмотрим, как это сделать. 883 01:08:36,000 --> 01:08:42,000 Мы собираемся открыть новый файл. 884 01:08:42,000 --> 01:08:46,000 Мы собираемся поставить в нашем PHP тэги. 885 01:08:46,000 --> 01:08:53,000 Мы будем называть это concentrations.php, 886 01:08:53,000 --> 01:08:58,000 и теперь, когда вы делаете это, своего рода хорошая вещь, чтобы думать о 887 01:08:58,000 --> 01:09:02,000 когда вы пытаетесь смешать и соответствовать вашим PHP и ваш HTML 888 01:09:02,000 --> 01:09:08,000 является выяснение того, хорошо, что это часть, которую я хочу программно генерировать? 889 01:09:08,000 --> 01:09:11,000 Какую роль, что я могу программно генерировать? 890 01:09:11,000 --> 01:09:17,000 Это правда, что вы можете сделать все ваши HTML 891 01:09:17,000 --> 01:09:19,000 Внутри PHP блоков. 892 01:09:19,000 --> 01:09:24,000 Вы можете повторить все из HTML в виде строки. 893 01:09:24,000 --> 01:09:30,000 Например, если я хочу, чтобы начать делать выбор тегов внутри PHP 894 01:09:30,000 --> 01:09:46,000 Я могу сказать, эхо, скажем, выберите имя = концентрация, 895 01:09:46,000 --> 01:09:49,000 а затем вниз я мог бы другая эхо тегов 896 01:09:49,000 --> 01:09:57,000 или другого эхо называют близкие выбора. 897 01:09:57,000 --> 01:10:00,000 Это один из способов сделать это, потому что это буквально собираетесь делать 898 01:10:00,000 --> 01:10:09,000 будет распечатать эту строку, когда она проходит через интерпретатор PHP, 899 01:10:09,000 --> 01:10:12,000 так что результат будет HTML. 900 01:10:12,000 --> 01:10:18,000 Если бы я сохранить этот файл, поскольку это прямо сейчас 901 01:10:18,000 --> 01:10:24,000 и я бегу PHP concentrations.php 902 01:10:24,000 --> 01:10:26,000 посмотрите, что у меня есть. 903 01:10:26,000 --> 01:10:30,000 Я получил эту открытую близко выберите тег. 904 01:10:30,000 --> 01:10:36,000 >> Если бы мне пришлось это сделать, и я должен был сохранить этот результат в файл, 905 01:10:36,000 --> 01:10:45,000 говорят, concentrations.html-ожидание, похоже, л перешел на другую сторону- 906 01:10:45,000 --> 01:11:02,000 Теперь, если я открываю здесь concentrations.html вы видите у меня есть действующий HTML файл. 907 01:11:02,000 --> 01:11:05,000 Разве что немного странно? 908 01:11:05,000 --> 01:11:09,000 Мы используем PHP для создания HTML, создать действующий HTML. 909 01:11:09,000 --> 01:11:13,000 То, как мы делаем это, мы просто имеющих печать PHP 910 01:11:13,000 --> 01:11:16,000 HTML, что мы хотим, чтобы напечатать. 911 01:11:16,000 --> 01:11:20,000 Это буквально как PHP веб-сайты работают. 912 01:11:20,000 --> 01:11:24,000 Когда вы посещаете веб-сайт, который посылает вам что-то вроде 913 01:11:24,000 --> 01:11:30,000 что-то, что-то, что-то точка ком черту index.php 914 01:11:30,000 --> 01:11:33,000 Компьютер буквально вызова index.php, 915 01:11:33,000 --> 01:11:38,000 работает он через переводчика PHP, и все, что выходит нежелательной 916 01:11:38,000 --> 01:11:49,000 он посылает обратно в браузер и говорить эй, браузер, интерпретировать это как HTML. 917 01:11:49,000 --> 01:11:54,000 Приятно то, что это может быть боль, чтобы постоянно писать эхо, эхо, эхо, эхо 918 01:11:54,000 --> 01:11:59,000 и приложить все в кавычках, как это, поэтому, если вы хотите написать 919 01:11:59,000 --> 01:12:04,000 HTML который будет статическим себя, вы можете сделать это так, 920 01:12:04,000 --> 01:12:16,000 положить его на улицу, закрыть его, 921 01:12:16,000 --> 01:12:21,000 , а затем здесь вы только положить внутрь PHP теги, которые вы знаете 922 01:12:21,000 --> 01:12:26,000 Вы хотите программно генерировать, и в данном случае это те опции теги 923 01:12:26,000 --> 01:12:31,000 , которые являются болью для генерации. 924 01:12:31,000 --> 01:12:37,000 >> Например, мы могли бы создать тысячи теги вариант 925 01:12:37,000 --> 01:12:48,000 , делая что-то вроде этого, $ I <1000, я + + 926 01:12:48,000 --> 01:13:00,000 и говорят значение эхо вариант = $-Ой, я не могу этого сделать. 927 01:13:00,000 --> 01:13:03,000 Ну, давайте попробуем и посмотрим, что произойдет. 928 01:13:03,000 --> 01:13:22,000 $ Я и говорю я $ 01:13:27,000 Вместо того, чтобы вводить этот параметр тега тысяч разных времен 930 01:13:27,000 --> 01:13:33,000 Я использую PHP код для генерации автоматически, программными средствами. 931 01:13:33,000 --> 01:13:38,000 Вид отличный. Да. 932 01:13:38,000 --> 01:13:41,000 Я помню это упоминается ни в лекции или прохождение игры, 933 01:13:41,000 --> 01:13:43,000 но в чем разница между кавычками, 934 01:13:43,000 --> 01:13:45,000 нормальных и эти отдельные вещи? 935 01:13:45,000 --> 01:13:49,000 Это на самом деле то, что я сделал неправильно здесь, что я собираюсь вам показать. 936 01:13:49,000 --> 01:13:52,000 Одинарные кавычки не позволяют специальные символы, 937 01:13:52,000 --> 01:13:57,000 таким образом, все внутри одной строки в кавычках интерпретируются буквально. 938 01:13:57,000 --> 01:14:02,000 Если бы я был \ п внутри одинарных кавычек, и я сохранить это, например, 939 01:14:02,000 --> 01:14:07,000 и теперь я иду сюда и запустить его- 940 01:14:07,000 --> 01:14:12,000 ой, куда я иду? 941 01:14:12,000 --> 01:14:19,000 Ах, это потому, что я забыла $. 942 01:14:19,000 --> 01:14:25,000 >> Теперь, если я открываю, на самом деле, здесь, мы будем избавляться от набрав его в файл. 943 01:14:25,000 --> 01:14:27,000 Мы просто читать. 944 01:14:27,000 --> 01:14:34,000 Здесь вы видите, что я получил это буквальное \ п в строку, как не фактическое новой линии, 945 01:14:34,000 --> 01:14:38,000 и аналогично, а на самом деле интерполяции значение этой переменной 946 01:14:38,000 --> 01:14:42,000 он дал мне $ я себе, которая является своеобразной боли. 947 01:14:42,000 --> 01:14:46,000 Способ обойти это состоит в использовании двойных кавычках, 948 01:14:46,000 --> 01:14:52,000 , а затем, когда вы используете двойные кавычки это будет на самом деле 949 01:14:52,000 --> 01:14:56,000 правильно интерполировать значения всех этих переменных здесь 950 01:14:56,000 --> 01:14:59,000 а также признать это \ п, чтобы быть новой линии, что 951 01:14:59,000 --> 01:15:02,000 , а не \ п. 952 01:15:02,000 --> 01:15:07,000 С помощью одного из них хорош, когда у вас есть 953 01:15:07,000 --> 01:15:10,000 символы, которые могут быть интерпретированы как специальных символов, потому что тогда вы не должны 954 01:15:10,000 --> 01:15:15,000 избежать их постоянно. 955 01:15:15,000 --> 01:15:18,000 Вещи могут запутаться, и часто так, как я это сделать, 956 01:15:18,000 --> 01:15:24,000 просто чтобы вещи легко, что, если я буду иметь ничего 957 01:15:24,000 --> 01:15:31,000 HTML, как в моем коде я буду включать править в одинарные кавычки 958 01:15:31,000 --> 01:15:36,000 и затем использовать этот оператор конкатенации 959 01:15:36,000 --> 01:15:43,000 Для объединения переменных дюйма 960 01:15:43,000 --> 01:15:47,000 Это еще один способ сделать это 961 01:15:47,000 --> 01:15:52,000 где у нас есть точка, которая собирается подключить это строка 962 01:15:52,000 --> 01:15:56,000 с этим с этим с этим, 963 01:15:56,000 --> 01:15:59,000 и теперь у меня нет, чтобы избежать этих двойных кавычках. 964 01:15:59,000 --> 01:16:02,000 Я не должен использовать этот парень бежать. 965 01:16:02,000 --> 01:16:08,000 Они буквально быть распечатаны как двойные кавычки, а затем этот парень прямо здесь. 966 01:16:08,000 --> 01:16:11,000 Это еще один способ смешения все вместе. 967 01:16:11,000 --> 01:16:14,000 >> [Студент] Кроме того, при повторил GetType не было кавычек вообще. 968 01:16:14,000 --> 01:16:22,000 Право, так что эхо это своего рода особенным в том смысле, что вам не нужны скобки. 969 01:16:22,000 --> 01:16:29,000 Вам не нужно иметь кавычки обязательно всем переменным, 970 01:16:29,000 --> 01:16:37,000 как это можно утверждать Эхо $ я, и он будет интерпретировать это как строку. 971 01:16:37,000 --> 01:16:44,000 Он собирается сделать бросок, так что мы могли бы сделать это, и это действительно тоже, но мы не нуждаемся в этом. 972 01:16:44,000 --> 01:16:48,000 Это необязательно. 973 01:16:48,000 --> 01:16:53,000 В проблемой набора на этой неделе выходят за много такого рода вещи 974 01:16:53,000 --> 01:16:58,000 где вы смешивания и сопоставления HTML с PHP 975 01:16:58,000 --> 01:17:08,000 именно так, и теперь, если мы прокрутить назад, и мы побежали этом 976 01:17:08,000 --> 01:17:13,000 мы видим, что у нас есть целая куча значений параметров 977 01:17:13,000 --> 01:17:15,000 что только что распечатан. 978 01:17:15,000 --> 01:17:20,000 У нас все это HTML, который получил генерируется очень быстро для нас. 979 01:17:20,000 --> 01:17:22,000 Я оставляю это в качестве упражнения. 980 01:17:22,000 --> 01:17:24,000 Это очень похоже на чтение файла, что мы делали раньше. 981 01:17:24,000 --> 01:17:31,000 >> Существует concentrations.txt файл, который можно снести с CDN, 982 01:17:31,000 --> 01:17:34,000 и вы можете открыть его, используя тот же трюк Еогеасп, что мы делали раньше, 983 01:17:34,000 --> 01:17:39,000 Еогеасп и вы просто должны повторить вариант и подключите 984 01:17:39,000 --> 01:17:44,000 соответствующие значения, соответствующие ключи и индексы, 985 01:17:44,000 --> 01:17:49,000 и тогда вы получите выпадающее, что буквально создает 986 01:17:49,000 --> 01:17:54,000 программно для вас всех различных концентрациях в Гарварде. 987 01:17:54,000 --> 01:17:57,000 Удобная вещь, чтобы иметь. 988 01:17:57,000 --> 01:18:02,000 Существует много конфигурации вещи для этого задания. 989 01:18:02,000 --> 01:18:07,000 Если вы не сделали это уже принимают следующие полчаса, час, 990 01:18:07,000 --> 01:18:10,000 Некоторое время сегодня определенно точно, 991 01:18:10,000 --> 01:18:14,000 ходить по спецификации поставленной задачи, 992 01:18:14,000 --> 01:18:20,000 видеть то, что происходит с настройкой виртуальных доменов, локальный хост, и все такое. 993 01:18:20,000 --> 01:18:24,000 Единственное, что следует отметить, прямо сейчас, что 994 01:18:24,000 --> 01:18:30,000 В большинстве наборов проблемы мы шли в папку Dropbox 995 01:18:30,000 --> 01:18:34,000 , а затем загрузка ZIP проблема набора файлов и распаковки его. 996 01:18:34,000 --> 01:18:36,000 Для этой задачи набором вы не хотите. 997 01:18:36,000 --> 01:18:40,000 Вы хотите пойти в этот каталог виртуальных доменов. 998 01:18:40,000 --> 01:18:45,000 Вы хотите, чтобы идти в виртуальных доменов и перейти в локальный каталог принимающих в нем, 999 01:18:45,000 --> 01:18:50,000 и это где вы хотите, чтобы снести архива, 1000 01:18:50,000 --> 01:18:55,000 распаковать его, и получить готовы к работе. 1001 01:18:55,000 --> 01:18:57,000 Вы должны следовать стопам. 1002 01:18:57,000 --> 01:19:02,000 >> Если у Вас есть какие-либо вопросы, отправлять электронную почту, разместить его на Обсудите, приходите в офис часа. 1003 01:19:02,000 --> 01:19:08,000 Спасибо, ребята. На следующей неделе мы собираемся иметь обзор сессия для викторины. 1004 01:19:08,000 --> 01:19:12,000 Наслаждайтесь вашей последней поставленной задачи. Я надеюсь, что все идет очень хорошо. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]