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]