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]