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 и C е наистина страхотно език, защото тя дава 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 е, че това е силно вдъхновен от C. И всъщност, по мое мнение, 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 C и 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 е много подобен синтактично до C, докато езици като схема, 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 от C прави, не е че голяма част от препятствие, 34 00:01:44,710 --> 00:01:48,230 защото ти вече имаш основната идея на синтаксиса. 35 00:01:48,230 --> 00:01:50,590 C е бил около продължение на почти 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 Трябва да правим неща, които в C всъщност са сложни. 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 >> C има способността да го направя, но това е толкова тайнствена и толкова трудно да всъщност правят. 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 е много силно вдъхновена от C. Синтаксисът е много подобна. 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 Angle скоба? 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 Така че C е, което е известно като компилиран език. 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 по-специално използване Звън като наш компилатор. 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 But-- така че не става за да го изтриете за вас, 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 Има само две големи разлики от C. 114 00:05:20,067 --> 00:05:21,900 Първата е, че има Не Тип спецификатор. 115 00:05:21,900 --> 00:05:24,245 Ние не трябва да кажа, вътр, Чар, флоат, всички тези неща. 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 бихме могли да кажем нещо като този, инт х = 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 Това е отделна от масив на героите, като тя е в C. 136 00:06:15,612 --> 00:06:17,570 All любимата си условни конструкции от 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 в зависимост от това дали $ Var е буква от азбуката. 172 00:07:54,110 --> 00:07:57,320 Така че това е доста сходен с isalpha че сме запознати с от C. 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 Припомняме, тези от C, както добре. 180 00:08:17,870 --> 00:08:22,480 На самия връх има, това е как правим нещо като GET инт или да получите низ. 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 от братовчед си от C. 192 00:08:54,880 --> 00:08:55,380 Loops. 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 Така спомням, когато бяхме Говорим за C, с цел 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 години, които са съществували между първото издание на C 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 $ Nums = масив (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 $ Nums = квадратни скоба 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Така че това е нещо подобно на ъгъл С е br-- фигурна скоба нотация, вместо. $ - 235 00:10:53,170 --> 00:10:58,525 или че ще бъде INT Nums квадрат скоби равнява фигурна скоба 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 В PHP е $ Nums = квадратен скоби 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 Ами аз може просто да кажем $ Nums 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 Аз няма да страдат от сегменти Аномалия, защото моята масив е просто 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 или можех дори само кажем $ Nums 20 или 1000. 248 00:11:34,099 --> 00:11:35,140 Това няма значение. 249 00:11:35,140 --> 00:11:38,330 Тя все още просто ще тя халс точно до края. 250 00:11:38,330 --> 00:11:41,490 >> Така че аз може да расте, и as-- сме Няма да го покрие тук, 251 00:11:41,490 --> 00:11:45,360 но мога да снаждане или ленти елементи от масива, както и, 252 00:11:45,360 --> 00:11:50,064 и масива ще се свие за настаняване че сега липсва или празно пространство. 253 00:11:50,064 --> 00:11:52,230 Има и друг начин да халс нещо върху масив, 254 00:11:52,230 --> 00:11:54,330 което е функция, наречена array_push. 255 00:11:54,330 --> 00:11:57,860 Така че отново, точно тази идея, че са в състояние да направи неща, които много различни начини. 256 00:11:57,860 --> 00:12:01,950 Така че сме виждали три различни начина сега да халс друг елемент върху масив. 257 00:12:01,950 --> 00:12:06,900 Така че това добавя още един елемент до края на масива $ Nums. 258 00:12:06,900 --> 00:12:08,340 И ние можем да смесваме нашите типове данни. 259 00:12:08,340 --> 00:12:13,110 Така че аз може да има набор от не 1, 2, 3, 4, но 1, вярно, 3, 4, 260 00:12:13,110 --> 00:12:16,420 където вярно е Булева, и след това ако искам да халс на друг елемент 261 00:12:16,420 --> 00:12:20,860 към този масив, може би низ, низа "петица", което можех да направя това. 262 00:12:20,860 --> 00:12:26,110 И сега ми масив ще да бъде 1, вярно, 3, 4, пет. 263 00:12:26,110 --> 00:12:28,640 Думата пет, а не цялото число 5. 264 00:12:28,640 --> 00:12:31,270 Така че голяма гъвкавост там. 265 00:12:31,270 --> 00:12:33,290 >> Гъвкавостта получава още по-добре, все пак, 266 00:12:33,290 --> 00:12:37,530 защото PHP има поддръжка за нещо наречено асоциативен масив. 267 00:12:37,530 --> 00:12:40,660 И ние някак смътно говорихме за асоциативни масиви в C 268 00:12:40,660 --> 00:12:44,740 в контекста на хеш таблици, защото какво асоциативни масиви са наистина всичко 269 00:12:44,740 --> 00:12:48,950 около правят ключовата съпоставяния стойност чифт. 270 00:12:48,950 --> 00:12:53,410 И в този случай, ако keys-- ние сме запознати с масиви от C, 271 00:12:53,410 --> 00:12:55,440 клавишите са числа в индекса. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 И стойностите са това, което ние откриваме, че масив 0, масив 1, масив 2, и така нататък. 274 00:13:03,070 --> 00:13:06,310 Така че ключовете са индекси, и стойностите са 275 00:13:06,310 --> 00:13:10,060 това, което е в това населено място масив, посочен от този индекс. 276 00:13:10,060 --> 00:13:15,130 >> Но в PHP, ние не трябва да направите това понятие за масив 0, масив 1, масив 2 277 00:13:15,130 --> 00:13:15,830 вече. 278 00:13:15,830 --> 00:13:21,025 Сега можем да използваме действителни думи да картографира ключове за ценности. 279 00:13:21,025 --> 00:13:22,650 И така ми се да кажа нещо подобно. 280 00:13:22,650 --> 00:13:26,710 Можех да се създаде масив с помощта на квадратни скоби, както следва. 281 00:13:26,710 --> 00:13:30,685 $ пици = квадратна скоба "сирене" и след това 282 00:13:30,685 --> 00:13:37,210 този вид на двойна стрелка бройна система, 8.99 ", пеперони," стрелка 10.99-- 9.99, 283 00:13:37,210 --> 00:13:37,880 и така нататък. 284 00:13:37,880 --> 00:13:39,060 И така, какво става тук? 285 00:13:39,060 --> 00:13:41,040 Какво съм аз всъщност прави? 286 00:13:41,040 --> 00:13:43,990 Аз съм създаване на ключови съпоставяния стойност двойки. 287 00:13:43,990 --> 00:13:49,060 Така че вместо да каже, например, пици 0, 1 парчета, пици 2, 288 00:13:49,060 --> 00:13:52,350 Сега мога да кажа, пици сирене, пици пеперони, 289 00:13:52,350 --> 00:13:55,120 и се отнасят до стойностите свързани с тях. 290 00:13:55,120 --> 00:13:56,970 >> Така че тук са нашите ключове в зелено. 291 00:13:56,970 --> 00:13:59,870 Сирене, пеперони, зеленчуци, биволско пиле. 292 00:13:59,870 --> 00:14:04,200 Тук е от стрелата, която прави този ключ картографиране стойност чифт. 293 00:14:04,200 --> 00:14:07,420 И след това тук са стойностите на това място масив. 294 00:14:07,420 --> 00:14:10,330 Така че това е като да кажеш масив 0 равнява 8.99. 295 00:14:10,330 --> 00:14:11,720 Ключът е 0. 296 00:14:11,720 --> 00:14:13,600 Стойността е 8.99. 297 00:14:13,600 --> 00:14:19,370 Сега мога да кажа, масив сирене, или в тази При пици сирене, кашкавал е ключът, 298 00:14:19,370 --> 00:14:23,340 и това, което аз намирам в пици сирене е 8.99. 299 00:14:23,340 --> 00:14:25,540 Това е стойността, която аз намирам там. 300 00:14:25,540 --> 00:14:28,124 >> Така че мога да кажа неща, които харесваш. $ пица сирене = 7,99. 301 00:14:28,124 --> 00:14:29,040 Кажете аз съм като една продажба. 302 00:14:29,040 --> 00:14:31,750 Искам dis-- искам да се откажа на цената на пицата на сирене. 303 00:14:31,750 --> 00:14:35,620 Или мога да използвам зеленчука пица, като част от състоянието, 304 00:14:35,620 --> 00:14:39,990 или мога да добавя нов елемент в моята масив, точно като не можех да направя по-рано. 305 00:14:39,990 --> 00:14:44,680 Мога да добавя нов елемент към тази асоциативен масив с ключ "бекон" 306 00:14:44,680 --> 00:14:49,250 и стойността 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Но този вид въвежда проблем ако мислите, че за това за секунда. 308 00:14:53,820 --> 00:14:55,721 Как бихме обхождане чрез този масив? 309 00:14:55,721 --> 00:14:56,220 Нали така? 310 00:14:56,220 --> 00:14:59,820 В C, ние просто ще има за линия, обикновено, че 311 00:14:59,820 --> 00:15:03,650 ще се проведе от 0 до размер на масива минус 1. 312 00:15:03,650 --> 00:15:08,060 Масивът има п елементи при това валидни индекси са 0 до п минус 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 нарича foreach цикъл. 320 00:15:30,780 --> 00:15:34,430 И какво е foreach цикъл прави е това е основно същата идея. 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 >> Така че в този случай, foreach ($ масив, колкото $ ключ). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 По принцип, като този коментар бележки, вътрешността на тази foreach цикъл, 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 ако бяхме с помощта на линия за, където ние може да отиде от $ I = 0 да, в този случай, 346 00:17:03,370 --> 00:17:06,089 $ I = 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 Ако аз отивам да разпечатате на Ith елемент от пици, 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 Подобно, ако правехме това в контекста на С, 359 00:17:45,370 --> 00:17:49,786 ние обикновено не използваме итератор променлива, Int I = 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 A foreach цикъл не е задължително разпечатате нещата в ред. 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 Но един foreach цикъл ще обхождане през всеки един елемент 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 топинг "пица струва $" цена, а след това I разпечатате период и наклонена черта п. 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 да се направи foreach цикъл, че вместо Просто ви дава достъп до стойностите, 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 ФОРМАТ, нали? 414 00:20:42,290 --> 00:20:45,290 Така че това е, което имахме преди вътре от контекста на нашата foreach цикъл. 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 Е, ако просто взема диво предположение, ФОРМАТ, тя всъщност би работил. 420 00:21:03,700 --> 00:21:08,980 ФОРМАТ е функция, която мога да използвам в PHP, точно като мога да го използвам в C. 421 00:21:08,980 --> 00:21:11,880 >> И така, нещо като това, ФОРМАТ, отново, че сме запознати с това. 422 00:21:11,880 --> 00:21:16,420 Първата% те се заменя със стойността на $ топинг. 423 00:21:16,420 --> 00:21:19,700 Вторият% те се заменя със стойността на $ цена. 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 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 на PHP работа с низове. 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 Период, наклонена черта N, отново, с на $ топинг и $ цена заместване 477 00:24:01,260 --> 00:24:06,580 за това, което бяхме определено в нашия foreach линия като ключ картографиране на стойност чифт. 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 Ето как можем да се посочи, че PHP това, което ние не говорим за е функция. 486 00:24:27,920 --> 00:24:29,720 >> И ние не трябва да се се справят с основната на всички, 487 00:24:29,720 --> 00:24:33,690 защото преводачът, РНР преводач, работи от горе до долу, 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 има като опция в C. Ние никога не би могъл зададени по подразбиране стойност от нещо. 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 Виждали сме доста много всички неща че да може да се направи, че са подобни на С, 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 е, че имате PHP интерпретатор. 567 00:28:24,260 --> 00:28:27,460 Така че това е нещо, аналогичен на като съставител на вашата система 568 00:28:27,460 --> 00:28:31,100 ако искате да компилирате C код да го превърне в изпълними файлове. 569 00:28:31,100 --> 00:28:33,810 Трябва да имате PHP интерпретатор който съществува на вашата система 570 00:28:33,810 --> 00:28:37,330 така че можете да се тълкува PHP файлове. 571 00:28:37,330 --> 00:28:40,370 >> Ако приемем, че сте се, и обикновено този интерпретатор се нарича PHP, 572 00:28:40,370 --> 00:28:44,300 и това е обикновено в комплект с най- сваляне или инсталация на PHP 573 00:28:44,300 --> 00:28:47,430 че можете да получите онлайн, и със сигурност Името на PHP интерпретатора 574 00:28:47,430 --> 00:28:49,550 имаме в CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Всичко, което правя е тип PHP файл. 576 00:28:51,819 --> 00:28:53,610 И това, което вашата програма ще направя, е, че е 577 00:28:53,610 --> 00:28:55,360 Ще преминете през преводачът, това е 578 00:28:55,360 --> 00:28:58,040 ще игнорира всичко, което е не между въпросните mark-- 579 00:28:58,040 --> 00:29:03,160 или, ъгъл скоба въпросителен знак PHP, разделителите на PHP, и да го разпечатате, 580 00:29:03,160 --> 00:29:07,660 и това ще се тълкува и изпълнява Код вътрешността на вашите разделители PHP. 581 00:29:07,660 --> 00:29:12,850 >> Така че нека да се появи към CS50 IDE и да разгледаме няколко PHP файлове, 582 00:29:12,850 --> 00:29:19,850 използвате няколко PHP файлове, в интерфейса на командния ред на CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Така че тук ние сме в CS50 IDE, и съм волността 584 00:29:22,100 --> 00:29:25,800 за отваряне на файл, наречен hello1.php. 585 00:29:25,800 --> 00:29:29,920 И очевидно, съдържанието на този файл са само разделителите на PHP там, 586 00:29:29,920 --> 00:29:32,220 и между тях, ехо ("Здравей, свят"). 587 00:29:32,220 --> 00:29:34,710 Това е доста проста програма, PHP. 588 00:29:34,710 --> 00:29:37,670 Аз съм просто ще превъртете надолу да ми терминален прозорец тук, 589 00:29:37,670 --> 00:29:44,320 и аз отивам да напишете PHP hello1.php, натиснете въведете. 590 00:29:44,320 --> 00:29:44,950 Здравей Свят. 591 00:29:44,950 --> 00:29:48,110 Това е може би това, което бяхме Очакваме това да се направи, нали? 592 00:29:48,110 --> 00:29:51,140 >> Нека да отиде и да вземе друга погледнете програма. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Доста едно и също нещо, Не много неща се случват тук. 595 00:29:55,090 --> 00:29:57,190 Този път, обаче, аз отивам да подтикне потребителят да ми даде имената им. 596 00:29:57,190 --> 00:29:59,290 Аз съм с които Readline функция отново. 597 00:29:59,290 --> 00:30:01,340 $ име = Readline. 598 00:30:01,340 --> 00:30:03,070 Това е ред, "Как се казваш?" 599 00:30:03,070 --> 00:30:04,880 >> Очевидно аз съм печат тя е на отделен ред. 600 00:30:04,880 --> 00:30:07,220 И след това, така че линията долу че ще бъде подканата 601 00:30:07,220 --> 00:30:08,750 където потребителят може да въведете името си. 602 00:30:08,750 --> 00:30:12,030 И тогава аз съм с малко променлива Питане тук на ред 3 603 00:30:12,030 --> 00:30:14,780 да отпечатате "Hello" и независимо от вида на ползвателите. 604 00:30:14,780 --> 00:30:22,040 Така че това е аналогично на казвайки: Здравей, запетая,% ите, ако сме използвали ФОРМАТ в C. 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 Отивам да изчистя екран с Control 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-- или I просто написа, "Как се казваш?" 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 Аз съм просто всъщност ще to-- когато на PHP интерпретатора вижда това, 627 00:31:21,750 --> 00:31:23,400 то се случва да разпечатате "Как е името ти?" 628 00:31:23,400 --> 00:31:25,941 След това го вижда, о, OK, here's-- всичко останало ще бъде 629 00:31:25,941 --> 00:31:29,970 тълкува като PHP, така че ето защо това работи. 630 00:31:29,970 --> 00:31:34,990 Аз не трябва да е задължително да подтикне на to-- потребителското вътре 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 и след това да отпечатате, "The сумата на тези две числа 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 Но това е в основата на специален сорт на заповядай на PHP интерпретатора 721 00:35:57,320 --> 00:36:00,160 разбира като, о, аз искам можете да се изпълни тази програма, 722 00:36:00,160 --> 00:36:05,250 което е очевидно / потребител / хамбар / PHP, които всъщност, когато 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, точно както аз бих с C. 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 да използвате командата коригират, за да промените разрешенията на файла. 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 >> По същия начин, аз вече chmoded 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 трябваше да се тревожи за с C, нали? 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 Така че това ни дава възможност сега, прехода от C до PHP, 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