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