1 00:00:00,000 --> 00:00:02,400 [Powered by Google Translate] [PHP синтаксата] 2 00:00:02,400 --> 00:00:04,400 [Томи 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 Хипертекст процесор, 8 00:00:19,250 --> 00:00:23,440 или PHP Хипертекст процесор Хипертекст процесор, 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 >> Значи, ајде да се напише "hello свет" во PHP, 12 00:00:32,020 --> 00:00:37,240 кој ќе биде малку различен од "hello свет" во C што ние си дојден да знаете и љубов. 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 И C и PHP имаат 'printf' функција за Ставање на податоци. 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 извршување на sourcecode дека ние напиша. 44 00:02:40,070 --> 00:02:43,280 >> PHP може да направи многу повеќе отколку само printf. 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 Само како C, секоја од овие конструкции користи загради да ги демаркираат нивното тело, 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 ќе треба да се каже int x = 5; 58 00:03:33,430 --> 00:03:38,650 или знак y = '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 Наместо велејќи int 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 На пример, ние може да напише функција која враќа false за грешка 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 или плови ако 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 или повеќе, едноставно $ a = [1, 2, 3];. 81 00:05:19,400 --> 00:05:24,990 Можеме да индекс во оваа низа користите истата синтакса што ние сме навикнати да од В 82 00:05:24,990 --> 00:05:31,780 За да се добие првиот елемент ние ќе каже, $ a [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 копчиња - инструктор и ТФ. 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 Да речеме, имаме едноставна низа како $ a = [1, 2, 3];. 100 00:07:49,130 --> 00:07:51,860 За да додадете нов елемент на оваа низа, 101 00:07:51,860 --> 00:07:57,160 можеме да кажеме, $ a [] = 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 Ако се каже, брои ($ a);, кој ќе има вредност од 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 кој concatenates жици. 125 00:09:36,630 --> 00:09:38,680 Ние би можеле да направите нешто како ова - 126 00:09:38,680 --> 00:09:53,800 $ N = 5, $ S = 'n е' $ n.;. 127 00:09:53,800 --> 00:09:57,430 Тука нашите n променлива е цел број. 128 00:09:57,430 --> 00:10:00,020 Но кога ние ги concatenate со еден конец, 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 = "n е $ n";. 132 00:10:19,290 --> 00:10:24,040 Сега вредноста на $ s ќе биде 'n е 5'. 133 00:10:24,040 --> 00:10:34,250 Ако ние ги користиме единечен наводник наместо тоа, како во $ s = 'n е $ n'; 134 00:10:34,250 --> 00:10:39,670 вредноста на s ќе биде 'n е $ n';. 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 >> Ајде сега да ги разгледаме во мал фрагмент во C и превод на тоа во 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 исто како и на C 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 како% d или% c - кога сакаме да испечатите променлива која не е стринг. 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 И таму е излезот видовме од нашата Ц програма. 161 00:12:48,160 --> 00:12:52,120 >> PHP, исто така поддржува конструкт наречен "foreach" јамка. 162 00:12:52,120 --> 00:12:54,800 Јамка "foreach 'е исто како" за "јамка, 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 Сега можеме да кажеме, foreach ($ низа како $ број), 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 Јас може да се користи require_once PHP е () функција. 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 >> ... Заградата, јас сум надвор од собата. По ѓаволите! Ова е последниот видео каде јас го користам големи зборови во кодот.