1 00:00:00,000 --> 00:00:02,400 [Powered by Google Translate] [PHP сінтаксіс] 2 00:00:02,400 --> 00:00:04,400 [Tommy MacWilliam] [Гарвардскі універсітэт] 3 00:00:04,400 --> 00:00:07,400 [Гэта CS50.] [CS50.TV] 4 00:00:07,400 --> 00:00:10,080 >> У гэтым відэа, вы пазнаёміцеся з PHP - 5 00:00:10,080 --> 00:00:12,820 адзін з моў, якія мы будзем выкарыстоўваць у CS50 6 00:00:12,820 --> 00:00:15,480 як мы пераход да вэб-распрацоўцы. 7 00:00:15,480 --> 00:00:19,250 PHP расшыфроўваецца як PHP Hypertext Processor, 8 00:00:19,250 --> 00:00:23,440 PHP або Hypertext Processor Hypertext Processor, 9 00:00:23,440 --> 00:00:24,880 і я буду спыняцца на дасягнутым. 10 00:00:24,880 --> 00:00:29,280 PHP з'яўляецца рэкурсіўны акронім, які я думаю, сапраўды надзвычайны. 11 00:00:29,280 --> 00:00:32,020 >> Такім чынам, давайце напішам 'прывітанне свет' ў PHP, 12 00:00:32,020 --> 00:00:37,240 якая будзе крыху па-іншаму, чым "прывітанне свет 'ў Сі, што мы прыйшлі да ведаем і любім. 13 00:00:37,240 --> 00:00:40,330 Замест таго каб стварыць файл з імем hello.c, 14 00:00:40,330 --> 00:00:42,990 мы створым hello.php. 15 00:00:42,990 --> 00:00:52,430 Увесь наш код PHP будзе знаходзіцца паміж . 16 00:00:52,430 --> 00:00:56,160 Калі ў нас ёсць PHP кода, які знаходзіцца 17 00:00:56,160 --> 00:00:59,140 па-за гэтымі падзельнікаў, яно не будзе выконвацца. 18 00:00:59,140 --> 00:01:01,740 Мы можам мець як многія з гэтых PHP блокі 19 00:01:01,740 --> 00:01:05,090 як мы хочам у адным файле PHP. 20 00:01:05,090 --> 00:01:09,000 У PHP няма ніякай неабходнасці ў асноўную функцыю. 21 00:01:09,000 --> 00:01:15,540 Замест гэтага наш PHP код будзе выконвацца ў тым парадку, ён з'яўляецца ў нашым PHP файла. 22 00:01:15,540 --> 00:01:20,970 З і PHP ёсць 'Е' функцыя для вываду дадзеных. 23 00:01:20,970 --> 00:01:27,270 Але ў PHP, мы не павінны # ўключаць любыя файлы, такія як загаловак standardIO.h. 24 00:01:27,270 --> 00:01:31,830 Гэта таму, што ў PHP мы не будзем кампіляцыі нашага кода. 25 00:01:31,830 --> 00:01:35,560 Калі мы пісалі код C нашага працоўнага працэсу як правіла, адкрыццё 26 00:01:35,560 --> 00:01:39,560 адна або некалькі. C ці. г файлы, змяняючы іх, іх кампіляцыі, 27 00:01:39,560 --> 00:01:41,980 і працуе атрыманы выкананы файл. 28 00:01:41,980 --> 00:01:45,800 Выезд Складальнікі відэа для атрымання дадатковай інфармацыі аб гэтым працэсе. 29 00:01:45,800 --> 00:01:51,480 >> У адрозненне ад C, PHP з'яўляецца інтэрпрэтаванай, - а ці не складзены - мовы. 30 00:01:51,480 --> 00:01:54,080 Гэта азначае, што код PHP мы пішам 31 00:01:54,080 --> 00:01:57,360 будзе праходзіць праз спецыяльную праграму, званую перакладчыка, 32 00:01:57,360 --> 00:02:00,440 што ў сваю чаргу выканаць наш код. 33 00:02:00,440 --> 00:02:03,020 Для выканання нашага кода PHP, 34 00:02:03,020 --> 00:02:07,860 мы адправім яго разам з інтэрпрэтатарам PHP, які будзе апрацоўваць яго выканання, 35 00:02:07,860 --> 00:02:11,260 , А ня кампіляцыі ў машынны код. 36 00:02:11,260 --> 00:02:13,450 Давайце паглядзім перакладчыка ў дзеянні. 37 00:02:13,450 --> 00:02:17,010 Мы адкрыйце тэрмінал і запусціце каманду PHP 38 00:02:17,010 --> 00:02:21,130 затым шлях да файла PHP мы хацелі б працаваць. 39 00:02:21,130 --> 00:02:25,690 Мы будзем казаць: "PHP hello.php. 40 00:02:25,690 --> 00:02:30,200 І мы ідзем. Там у выхад нашай PHP праграмы. 41 00:02:30,200 --> 00:02:33,460 Мы не павінны кампіляваць наш PHP файлаў наогул. 42 00:02:33,460 --> 00:02:37,280 Замест гэтага, у нас была іншая праграма - інтэрпрэтатар PHP - 43 00:02:37,280 --> 00:02:40,070 выканаць зыходны код, што мы напісалі. 44 00:02:40,070 --> 00:02:43,280 >> PHP можа зрабіць значна больш, чым проста Е. 45 00:02:43,280 --> 00:02:46,490 Давайце напішам больш складаных праграм PHP. 46 00:02:46,490 --> 00:02:52,240 Сінтаксіс канструкцыі - як калі б, яшчэ, у той час як, для, і выключальнік - 47 00:02:52,240 --> 00:02:55,440 тое ж самае ў PHP і C. 48 00:02:55,440 --> 00:03:01,180 Як і С, кожны з гэтых канструкцый выкарыстоўвае дужкі, каб размежаваць іх цела, 49 00:03:01,180 --> 00:03:04,420 і, як і ў C, кожны радок пішам 50 00:03:04,420 --> 00:03:06,830 павінна заканчвацца кропкай з коскі; 51 00:03:06,830 --> 00:03:10,700 Тым не менш, зменныя апрацоўваюцца крыху па-іншаму ў PHP. 52 00:03:10,700 --> 00:03:15,630 Па-першае, усе зменныя ў PHP павінны пачынацца з знака даляра. 53 00:03:15,630 --> 00:03:18,700 Здаецца трохі дзіўным на першы, але вы абвыкнеце да яго. 54 00:03:18,700 --> 00:03:22,150 Па-другое, PHP з'яўляецца слаба тыпізаванай мова 55 00:03:22,150 --> 00:03:24,570 якая азначае, што вам не трэба відавочна ўказваць 56 00:03:24,570 --> 00:03:27,640 тып зменнай пры яе стварэнні. 57 00:03:27,640 --> 00:03:33,430 Дзе ў C вы павінны былі б сказаць дзесятковага х = 5; 58 00:03:33,430 --> 00:03:38,650 або сімвал у = 'A'; 59 00:03:39,250 --> 00:03:44,790 У PHP мы можам проста сказаць $ X = 5; 60 00:03:44,790 --> 00:03:48,930 і $ Y = 'A';. 61 00:03:48,930 --> 00:03:52,360 Тое ж самае ставіцца да функцыі. 62 00:03:52,360 --> 00:04:01,290 Замест таго каб гаварыць дзесятковага F () {цела функцыі} нашых, 63 00:04:01,290 --> 00:04:12,160 У PHP мы збіраемся сказаць функцыі F () {цела функцыі} нашых. 64 00:04:12,160 --> 00:04:17,579 Нам не трэба відавочна ўказваць тып якое вяртаецца значэння нашай функцыі F. 65 00:04:17,579 --> 00:04:22,070 Функцыі ў PHP таксама не прыйдзецца вяртаць той жа тып 66 00:04:22,070 --> 00:04:23,840 кожны раз, калі яны выконваюцца. 67 00:04:23,840 --> 00:04:27,940 Напрыклад, мы маглі б напісаць функцыю, якая вяртае ілжывае на памылцы 68 00:04:27,940 --> 00:04:29,750 і іншы тып, калі гэта атрымаецца. 69 00:04:29,750 --> 00:04:33,060 >> Гэта таксама можа дапамагчы нам напісаць больш агульныя функцыі. 70 00:04:33,060 --> 00:04:35,710 Напрыклад, мы маглі б напісаць адну функцыю дапаўненні 71 00:04:35,710 --> 00:04:39,200 , Якая можа вяртаць цэлы лік, калі 2 цэлых дадзены 72 00:04:39,200 --> 00:04:41,250 або Float Калі 2 паплаўка дадзены. 73 00:04:41,250 --> 00:04:45,530 У C, мы павінны былі б напісаць 2 асобныя функцыі для гэтага. 74 00:04:45,530 --> 00:04:49,230 У той час як у C мы выкарыстоўваем паказальнікі для рейз і струнных, 75 00:04:49,230 --> 00:04:52,170 мы не будзем у стане выкарыстаць ўказальнікі ў PHP. 76 00:04:52,170 --> 00:04:58,030 Замест гэтага, як масівы і радкі з'яўляюцца убудаваныя тыпы ў PHP. 77 00:04:58,030 --> 00:04:59,660 Яны ўбудаваныя прама ў мову. 78 00:04:59,660 --> 00:05:02,270 Каб стварыць масіў у PHP, мы можам сказаць, 79 00:05:02,270 --> 00:05:11,280 $ A = array (1, 2, 3); 80 00:05:11,280 --> 00:05:19,400 ці, прасцей кажучы $ = [1, 2, 3];. 81 00:05:19,400 --> 00:05:24,990 Мы можам індэкс у гэтым масіве выкарыстоўваючы той жа сінтаксіс, што мы прывыклі з C. 82 00:05:24,990 --> 00:05:31,780 Каб атрымаць першы элемент мы скажам, $ [0];. 83 00:05:31,780 --> 00:05:36,290 PHP таксама мае убудаваную падтрымку для асацыятыўных масіваў. 84 00:05:36,290 --> 00:05:41,460 Асацыятыўныя масівы такія ж, як хэш-табліцу структуры дадзеных мы ўжо бачылі - 85 00:05:41,460 --> 00:05:44,060 яны адлюстроўваюць ключ да значэння. 86 00:05:44,060 --> 00:05:46,070 >> Давайце паглядзім на прыклад. 87 00:05:46,070 --> 00:06:14,740 Мы можам сказаць, $ персаналу = ["інструктар" => "Давід", "ТФ" => "Томі"];. 88 00:06:14,740 --> 00:06:21,020 Тут, у мяне ёсць асацыятыўны масіў з 2 ключамі - інструктарам і TF. 89 00:06:21,020 --> 00:06:24,910 Падвойную стрэлку, або роўна-больш-чым, 90 00:06:24,910 --> 00:06:29,660 выкарыстоўваецца для падзелу ключ і яго адпаведнае значэнне. 91 00:06:29,660 --> 00:06:41,830 Такім чынам, значэнне $ персаналу ["ТФ"] з'яўляецца радок "Томі". 92 00:06:41,830 --> 00:06:44,430 Значэнні асацыятыўны масіў - 93 00:06:44,430 --> 00:06:47,540 гэтак жа, як любы іншы масіў - можа быць любога тыпу. 94 00:06:47,540 --> 00:07:23,370 Напрыклад, мы маглі б сказаць, $ персаналу = ["інструктар" => "Давід", "TFS" => ["Томі", "Роб"]];. 95 00:07:23,370 --> 00:07:27,810 Цяпер значэнне 'TFS' з'яўляецца масівам. 96 00:07:27,810 --> 00:07:33,030 Гэта азначае, што значэння ў адным асацыятыўным масіве могуць быць розных тыпаў. 97 00:07:33,030 --> 00:07:36,750 >> PHP масівы таксама не маюць фіксаванай даўжыні, 98 00:07:36,750 --> 00:07:40,200 так што мы можам дадаваць або выдаляць элементы з масіва. 99 00:07:40,200 --> 00:07:49,130 Дапусцім, у нас ёсць просты масіў як $ = [1, 2, 3];. 100 00:07:49,130 --> 00:07:51,860 Каб дадаць новы элемент у гэтым масіве, 101 00:07:51,860 --> 00:07:57,160 мы можам сказаць, $ [] = 4;. 102 00:07:57,160 --> 00:08:03,630 Зараз наш масіў складаецца з чатырох элементаў - [1, 2, 3, 4]. 103 00:08:03,630 --> 00:08:06,980 Нагадаем, што калі мы хацелі зрабіць нешта падобнае ў C, 104 00:08:06,980 --> 00:08:09,610 мы павінны былі б вылучыць цэлы новы масіў, 105 00:08:09,610 --> 00:08:12,400 скапіяваць змесціва нашага першага масіва ў яго, 106 00:08:12,400 --> 00:08:15,870 а затым ўсталюйце апошні элемент новага масіва нашым новым значэннем. 107 00:08:15,870 --> 00:08:18,390 Гэта нашмат прасцей, у PHP. 108 00:08:18,390 --> 00:08:21,230 Калі наш масіў з'яўляецца асацыятыўным масівам, 109 00:08:21,230 --> 00:08:24,810 можна проста вызначыць новы ключ стварыць элемент 110 00:08:24,810 --> 00:08:26,250 калі ён яшчэ не існуе. 111 00:08:26,250 --> 00:08:30,010 Калі ў нас ёсць масіў раней - $ персаналу - 112 00:08:30,010 --> 00:08:38,679 мы можам сказаць, $ персаналу ["Усяго"] = 3;. 113 00:08:38,679 --> 00:08:43,330 Цяпер у нас ёсць новы ключ са значэннем 3. 114 00:08:43,330 --> 00:08:46,460 >> Каб атрымаць колькасць элементаў у масіве, 115 00:08:46,460 --> 00:08:48,230 мы можам выкарыстоўваць 'колькасць' функцыі. 116 00:08:48,230 --> 00:08:56,100 Калі мы кажам, COUNT ($), якія будуць мець значэнне 4. 117 00:08:56,100 --> 00:09:01,930 У PHP, мы можам стварыць радкі, выкарыстоўваючы падвойныя або адзінарныя двукоссі, 118 00:09:01,930 --> 00:09:04,470 так што абедзве гэтыя зменныя з'яўляюцца радкамі. 119 00:09:04,470 --> 00:09:21,780 $ S1 = "радок"; $ s2 = 'іншая радок';. 120 00:09:21,780 --> 00:09:23,920 У чым розніца паміж гэтымі двума? 121 00:09:23,920 --> 00:09:26,950 Ну, гэта даволі агульнае, неабходна ўключыць 122 00:09:26,950 --> 00:09:29,600 Значэнне зменнай ўнутры радка. 123 00:09:29,600 --> 00:09:34,390 Адзін са спосабаў зрабіць гэта было б выкарыстоўваць аператар кропка ў PHP, 124 00:09:34,390 --> 00:09:36,630 якое аб'яднання радкоў. 125 00:09:36,630 --> 00:09:38,680 Мы маглі б зрабіць нешта накшталт гэтага - 126 00:09:38,680 --> 00:09:53,800 $ N = 5; $ S = 'п' $ N.;. 127 00:09:53,800 --> 00:09:57,430 Тут наша пераменная N з'яўляецца цэлым лікам. 128 00:09:57,430 --> 00:10:00,020 Але калі мы аб'яднаем яго са радком, 129 00:10:00,020 --> 00:10:04,110 PHP аўтаматычна пераўтворыць яго ў радок для нас. 130 00:10:04,110 --> 00:10:09,090 Ці мы можам проста выкарыстоўваць падвойныя двукоссі паставіць зменную ў самой радку. 131 00:10:09,090 --> 00:10:19,290 Мы можам сказаць, $ S = "п $ п";. 132 00:10:19,290 --> 00:10:24,040 Цяпер значэнне $ S будзе «п 5 '. 133 00:10:24,040 --> 00:10:34,250 Калі мы будзем выкарыстоўваць адзінарныя двукоссі замест гэтага, як і ў $ S = 'п $ п'; 134 00:10:34,250 --> 00:10:39,670 значэнне з будзе 'п $ п';. 135 00:10:39,670 --> 00:10:43,720 Значэнне N не будзе заменены, калі выкарыстоўваць адзінарныя двукоссі, 136 00:10:43,720 --> 00:10:47,150 але гэта будзе, калі мы выкарыстоўваем падвойныя двукоссі. 137 00:10:47,150 --> 00:10:51,800 Калі мы хочам выкарыстоўваць падвойныя двукоссі, каб ўключаць у сябе значэнне масіва ў радку, 138 00:10:51,800 --> 00:10:55,060 мы павінны ўключыць у фігурныя дужкі масіва, як гэта - 139 00:10:55,060 --> 00:11:14,470 $ S = "{$ персаналу ['агульнай']}";. 140 00:11:14,470 --> 00:11:20,350 >> Давайце цяпер зірнем на невялікі фрагмент на З і перавесці яго на PHP. 141 00:11:20,350 --> 00:11:25,410 Тут мы ствараем функцыю, якая выводзіць літары радкі, 142 00:11:25,410 --> 00:11:27,310 адзін знак у радку. 143 00:11:27,310 --> 00:11:32,250 Давайце зробім тое ж самае ў PHP. 144 00:11:32,250 --> 00:11:36,530 Па-першае, нам спатрэбіцца наш PHP падзельнікі. 145 00:11:36,530 --> 00:11:39,000 Калі мы ствараем нашу функцыю, 146 00:11:39,000 --> 00:11:42,740 нам не трэба абраць яе тып вяртання або тып аргументу. 147 00:11:42,740 --> 00:11:46,890 Наша з зменнай таксама павінны пачынацца са знака даляра. 148 00:11:46,890 --> 00:11:51,590 StrLen функцыі PHP дае нам даўжыню радка, 149 00:11:51,590 --> 00:11:55,660 гэтак жа, як Сі StrLen дае нам даўжыню радка. 150 00:11:55,660 --> 00:11:59,060 Пад капотам не менш, гэтыя функцыі на самай справе трохі адрозніваецца 151 00:11:59,060 --> 00:12:03,010 паколькі радкі убудаванага тыпу ў PHP. 152 00:12:03,010 --> 00:12:06,930 Сінтаксіс нашага 'для' цыклу заставаўся нязменным. 153 00:12:06,930 --> 00:12:13,530 >> У PHP, мы можам таксама выкарыстоўваць натацыю масіва для доступу да сімвалаў радка. 154 00:12:13,530 --> 00:12:19,350 Цяпер мы можам выкарыстоўваць функцыю друку раздрукаваць кожную літару радка. 155 00:12:19,350 --> 00:12:23,080 З функцыяй друку ў PHP, нам не трэба турбавацца аб запаўняльнікаў - 156 00:12:23,080 --> 00:12:28,200 як C або D%% - калі мы хочам, каб раздрукаваць зменную, якая не зьяўляецца радком. 157 00:12:28,200 --> 00:12:33,590 Замест гэтага, мы можам проста перадаць зменную любога тыпу функцыю друку, 158 00:12:33,590 --> 00:12:36,810 і яно будзе пераўтворана ў радок і адлюстроўваецца. 159 00:12:36,810 --> 00:12:43,430 І вось яно што! Давайце зараз запусцім наш файл з 'PHP print.php. 160 00:12:43,430 --> 00:12:48,160 І там мы ўбачылі выхад з нашай праграмы C. 161 00:12:48,160 --> 00:12:52,120 >> PHP таксама падтрымлівае канструкцыю, званую «Бессэнсоўны завесы. 162 00:12:52,120 --> 00:12:54,800 Пятля "Бессэнсоўны гэтак жа, як" за "завесы, 163 00:12:54,800 --> 00:12:59,080 але гэта дадае трохі сінтаксічнага цукру, каб зрабіць рэчы больш чытэльным. 164 00:12:59,080 --> 00:13:03,690 Тут мы ствараем новы масіў пад назвай 'масіва $. 165 00:13:03,690 --> 00:13:10,090 Цяпер мы можам сказаць, па кожнаму элементу ($ масіў $ нумар), 166 00:13:10,090 --> 00:13:12,390 і мы можам надрукаваць на $ колькасці. 167 00:13:12,390 --> 00:13:20,650 Калі мы запускаем гэты файл - PHP-foreach.php-мы можам бачыць кожны нумар на асобнай радку. 168 00:13:20,650 --> 00:13:26,700 >> Калі мы пісалі код C, часцяком карысна арганізаваць наш код у асобныя файлы. 169 00:13:26,700 --> 00:13:29,170 У PHP, мы можам зрабіць тое ж самае. 170 00:13:29,170 --> 00:13:33,870 Дапусцім, у нас ёсць некалькі функцый у файле з імем math.php. 171 00:13:33,870 --> 00:13:38,900 Калі я хачу выкарыстоўваць гэтыя функцыі ў іншым файле PHP, як calculator.php, 172 00:13:38,900 --> 00:13:44,110 Я магу выкарыстоўваць PHP require_once () функцыі. 173 00:13:44,110 --> 00:13:47,110 Require_once сапраўды гэтак жа як # ўключыць. 174 00:13:47,110 --> 00:13:52,050 Калі было дадзена шлях да файла, гэта істотна скапіруйце і ўстаўце змесціва 175 00:13:52,050 --> 00:13:54,930 гэтага файла ў бягучы файл. 176 00:13:54,930 --> 00:14:00,150 Require_once гарантуе, што кожны файл будзе ўключаны ў бягучы файл толькі адзін раз, 177 00:14:00,150 --> 00:14:05,680 якія могуць быць карысныя, калі ў вас ёсць вялікі набор файлаў PHP патрабуюць адзін аднаго. 178 00:14:05,680 --> 00:14:07,750 Давайце паглядзім на прыклад. 179 00:14:07,750 --> 00:14:12,620 Тут у нас ёсць набор функцый, што я хацеў бы выкарыстаць у іншым файле. 180 00:14:12,620 --> 00:14:14,990 Давайце паглядзім, як мы можам выкарыстоўваць іх. 181 00:14:14,990 --> 00:14:20,700 У радку 3 мы патрабуем math.php. 182 00:14:20,700 --> 00:14:27,170 '__DIR__' Гэта спецыяльны канстанта, якая прадстаўляе бягучы каталог 183 00:14:27,170 --> 00:14:33,440 так і math.php calculator.php знаходзяцца ў тым жа каталогу. 184 00:14:33,440 --> 00:14:38,010 Пасля таго як мы math.php патрабуюць, мы можам выкарыстоўваць функцыі 185 00:14:38,010 --> 00:14:41,690  як калі б мы вызначылі іх у calculator.php. 186 00:14:41,690 --> 00:14:47,440 Запусцім з 'PHP calculator.php. Выдатна! 187 00:14:47,440 --> 00:14:50,880 >> Вось менавіта для нашай ўвядзенне ў сінтаксіс PHP. 188 00:14:50,880 --> 00:14:53,700 Каб даведацца больш, наведайце PHP.net. 189 00:14:53,700 --> 00:14:59,470 PHP мае шмат ўбудаваных функцый, і на шчасце яго дакументацыі з'яўляецца сапраўды вялікім. 190 00:14:59,470 --> 00:15:02,680 Мяне клічуць Томі, і гэта CS50. 191 00:15:02,680 --> 00:15:04,680 [CS50.TV] 192 00:15:04,680 --> 00:15:14,000 >> Кранштэйн ..., я выходжу з пакоя. Чорт вазьмі! Гэта апошняе відэа, дзе я выкарыстоўваю гучных слоў у кодзе.