1 00:00:00,000 --> 00:00:02,400 [Powered by Google Translate] [PHP Syntax] 2 00:00:02,400 --> 00:00:04,400 [Tommy MacWilliam] [Harvard Egyetem] 3 00:00:04,400 --> 00:00:07,400 [Ez a CS50.] [CS50.TV] 4 00:00:07,400 --> 00:00:10,080 >> Ebben a videóban, akkor be PHP - 5 00:00:10,080 --> 00:00:12,820 nyelvek egyikén fogjuk használni a CS50 6 00:00:12,820 --> 00:00:15,480 ahogy átmenet a web fejlődését. 7 00:00:15,480 --> 00:00:19,250 PHP jelentése PHP Hypertext Processor 8 00:00:19,250 --> 00:00:23,440 vagy PHP Hypertext Processor Hypertext Processor 9 00:00:23,440 --> 00:00:24,880 és én meg itt. 10 00:00:24,880 --> 00:00:29,280 A PHP egy rekurzív rövidítés, ami szerintem igazán félelmetes. 11 00:00:29,280 --> 00:00:32,020 >> Szóval, most írni a "Hello World" PHP- 12 00:00:32,020 --> 00:00:37,240 ami egy kicsit más, mint a "Hello World"-ben C, hogy jöttem, hogy ismerünk és szeretünk. 13 00:00:37,240 --> 00:00:40,330 Ahelyett, hogy a fájl neve hello.c, 14 00:00:40,330 --> 00:00:42,990 hozunk létre hello.php. 15 00:00:42,990 --> 00:00:52,430 Minden PHP kódot tartalmazhat között . 16 00:00:52,430 --> 00:00:56,160 Ha bármilyen PHP kódot, hogy található 17 00:00:56,160 --> 00:00:59,140 kívül ezek határoló, akkor nem működik. 18 00:00:59,140 --> 00:01:01,740 Mi lehet a lehető legtöbb PHP blokkok 19 00:01:01,740 --> 00:01:05,090 ahogy szeretnénk belsejében egy PHP fájlt. 20 00:01:05,090 --> 00:01:09,000 A PHP nincs szükség a fő funkciója. 21 00:01:09,000 --> 00:01:15,540 Ehelyett a PHP kódot lehet futtatni a sorrendben úgy tűnik, a mi PHP fájlban. 22 00:01:15,540 --> 00:01:20,970 Mind a C és a PHP egy "printf" funkció a kimenetre az adatokat. 23 00:01:20,970 --> 00:01:27,270 De a PHP, akkor nem kell # tartalmaz header fájlok, mint standardIO.h. 24 00:01:27,270 --> 00:01:31,830 Ennek oka, hogy a PHP-ben nem fogunk összeállítása a kódot. 25 00:01:31,830 --> 00:01:35,560 Amikor írtam C kód a munkafolyamat jellemzően megnyitása 26 00:01:35,560 --> 00:01:39,560 egy vagy több. c vagy. h fájlokat, azok módosítása, lefordítását, 27 00:01:39,560 --> 00:01:41,980 és fut a kapott bináris. 28 00:01:41,980 --> 00:01:45,800 Nézze meg a videót Fordítóprogramok további információt ezt a folyamatot. 29 00:01:45,800 --> 00:01:51,480 >> Ellentétben a C, PHP egy értelmezett - inkább, mint fordított - nyelv. 30 00:01:51,480 --> 00:01:54,080 Ez azt jelenti, hogy a PHP kódot írunk 31 00:01:54,080 --> 00:01:57,360 fog futni egy speciális program neve tolmács, 32 00:01:57,360 --> 00:02:00,440 ami viszont végre a kódot. 33 00:02:00,440 --> 00:02:03,020 Futtatni a PHP kódot, 34 00:02:03,020 --> 00:02:07,860 akkor küldje el együtt, hogy a PHP interpreter, amely kezeli annak végrehajtását, 35 00:02:07,860 --> 00:02:11,260 ahelyett, összeállítása, hogy gépi kódot. 36 00:02:11,260 --> 00:02:13,450 Lássuk a tolmács akcióban. 37 00:02:13,450 --> 00:02:17,010 Majd nyit egy terminált és futtassa a PHP parancs 38 00:02:17,010 --> 00:02:21,130 majd az elérési utat a PHP fájlt szeretnénk futtatni. 39 00:02:21,130 --> 00:02:25,690 Azt mondjuk, "php hello.php". 40 00:02:25,690 --> 00:02:30,200 És ott vagyunk. Ott van a kimenete a PHP program. 41 00:02:30,200 --> 00:02:33,460 Nem kell fordítanod a PHP fájlt egyáltalán. 42 00:02:33,460 --> 00:02:37,280 Ehelyett volt egy másik program - a PHP értelmező - 43 00:02:37,280 --> 00:02:40,070 végre a forráskód, amit írtam. 44 00:02:40,070 --> 00:02:43,280 >> PHP ennél sokkal többet tud, mint egyszerűen printf. 45 00:02:43,280 --> 00:02:46,490 Írjunk néhány bonyolultabb PHP programokat. 46 00:02:46,490 --> 00:02:52,240 A szintaxis a konstrukciókat - mint if, else, while, for és switch - 47 00:02:52,240 --> 00:02:55,440 ugyanaz a PHP és a C- 48 00:02:55,440 --> 00:03:01,180 Csakúgy, mint a C, mindegyik konstrukciók használ fogszabályozó, hogy meghatározza a teste, 49 00:03:01,180 --> 00:03:04,420 és mint a C, minden sorban írunk 50 00:03:04,420 --> 00:03:06,830 kell pontosvesszővel végződnek; 51 00:03:06,830 --> 00:03:10,700 azonban változó kezelése egy kicsit másképp a PHP. 52 00:03:10,700 --> 00:03:15,630 Először is, minden változó a PHP kell kezdeni a dollár jel. 53 00:03:15,630 --> 00:03:18,700 Úgy tűnik, egy kicsit furcsa először, de akkor szokni. 54 00:03:18,700 --> 00:03:22,150 Másodszor, a PHP gyengén típusos nyelv, 55 00:03:22,150 --> 00:03:24,570 ami azt jelenti, hogy nem kell külön felsorolni 56 00:03:24,570 --> 00:03:27,640 A változó típusát a létrehozásakor. 57 00:03:27,640 --> 00:03:33,430 Ahol C azt kell mondani, int x = 5; 58 00:03:33,430 --> 00:03:38,650 vagy char y = 'a'; 59 00:03:39,250 --> 00:03:44,790 PHP-ben akkor egyszerűen azt mondják, $ x = 5; 60 00:03:44,790 --> 00:03:48,930 és $ y = 'a',. 61 00:03:48,930 --> 00:03:52,360 Ugyanez érvényes azokra a funkciókra. 62 00:03:52,360 --> 00:04:01,290 Ahelyett, mondván int f () {a szervezet a funkció} 63 00:04:01,290 --> 00:04:12,160 PHP fogunk mondani, f () {a szervezet a function}. 64 00:04:12,160 --> 00:04:17,579 Nem kell megadnia a visszatérési típus a függvény f. 65 00:04:17,579 --> 00:04:22,070 Függvények PHP-ben is, nem kell visszatérni az azonos típusú 66 00:04:22,070 --> 00:04:23,840 Minden alkalommal, amikor kivégezték. 67 00:04:23,840 --> 00:04:27,940 Például, lehet írni a függvény false értékkel tér vissza egy hiba 68 00:04:27,940 --> 00:04:29,750 és más típusú, ha sikerül. 69 00:04:29,750 --> 00:04:33,060 >> Ez is segít írni általánosabb funkciókat. 70 00:04:33,060 --> 00:04:35,710 Például, lehet írni egy add funkció 71 00:04:35,710 --> 00:04:39,200 hogy visszatérhet az egész, ha 2 egész kapnak 72 00:04:39,200 --> 00:04:41,250 vagy úszó ha 2 úszik kapnak. 73 00:04:41,250 --> 00:04:45,530 A C, meg kéne írni 2 külön funkció erre. 74 00:04:45,530 --> 00:04:49,230 Míg a C használjuk mutatók fizetésemelést és vonósokra, 75 00:04:49,230 --> 00:04:52,170 nem fogjuk tudni használni mutatók a PHP. 76 00:04:52,170 --> 00:04:58,030 Ehelyett, mind a tömbök és stringek beépített típusokkal PHP-ben. 77 00:04:58,030 --> 00:04:59,660 Ők építve a nyelvet. 78 00:04:59,660 --> 00:05:02,270 Hogy hozzon létre egy tömböt PHP-ben azt mondhatjuk, 79 00:05:02,270 --> 00:05:11,280 $ A = array (1, 2, 3); 80 00:05:11,280 --> 00:05:19,400 vagy egyszerűbben $ a = [1, 2, 3];. 81 00:05:19,400 --> 00:05:24,990 Tudjuk index ebbe a tömb ugyanazt a szintaxist, hogy mi használt a C. 82 00:05:24,990 --> 00:05:31,780 Ahhoz, hogy az első elem azt mondjuk, $ a [0]. 83 00:05:31,780 --> 00:05:36,290 PHP is beépített támogatást asszociatív tömbök. 84 00:05:36,290 --> 00:05:41,460 Az asszociatív tömbök, mint a hash tábla adatstruktúra már láttam - 85 00:05:41,460 --> 00:05:44,060 amelyre leképezésre kulcs értékre. 86 00:05:44,060 --> 00:05:46,070 >> Vessünk egy pillantást egy példát. 87 00:05:46,070 --> 00:06:14,740 Elmondhatjuk, $ személyzet = ["oktató" => "Dávid", "TF" => "Tommy"]. 88 00:06:14,740 --> 00:06:21,020 Itt van egy asszociatív tömb 2 kulccsal - oktató és tf. 89 00:06:21,020 --> 00:06:24,910 A dupla-nyíl, vagy egyenlő, nagyobb mértékű volt, 90 00:06:24,910 --> 00:06:29,660 elválasztására használják a kulcs és a hozzá tartozó értéket. 91 00:06:29,660 --> 00:06:41,830 Így a $ alkalmazottak ["TF"] a string "Tommy". 92 00:06:41,830 --> 00:06:44,430 Az értékek egy asszociatív tömb - 93 00:06:44,430 --> 00:06:47,540 ugyanúgy, mint bármely más tömb - lehet bármilyen típusú. 94 00:06:47,540 --> 00:07:23,370 Például, azt mondhatnánk, $ személyzet = ["oktató" => "Dávid", "TFS" => ["Tommy", "kirabolni"]]. 95 00:07:23,370 --> 00:07:27,810 Az érték a "TFS" egy tömb. 96 00:07:27,810 --> 00:07:33,030 Ez azt jelenti, hogy az értékek belül egy asszociatív tömb lehet a különböző típusok. 97 00:07:33,030 --> 00:07:36,750 >> PHP tömbök még nincs egy fix hosszúságú, 98 00:07:36,750 --> 00:07:40,200 így lehet hozzáadni vagy eltávolítani elemeket egy tömb. 99 00:07:40,200 --> 00:07:49,130 Tegyük fel, hogy van egy egyszerű tömb, mint $ a = [1, 2, 3]. 100 00:07:49,130 --> 00:07:51,860 Egy új eleme a tömb, 101 00:07:51,860 --> 00:07:57,160 azt mondhatjuk, $ a [] = 4,. 102 00:07:57,160 --> 00:08:03,630 Most a tömb áll négy elem - [1, 2, 3, 4]. 103 00:08:03,630 --> 00:08:06,980 Emlékezzünk vissza, hogy ha akarnánk, hogy valami ehhez hasonló a C, 104 00:08:06,980 --> 00:08:09,610 mi volna hozzá egy teljesen új tömb, 105 00:08:09,610 --> 00:08:12,400 másolni az első tömb bele, 106 00:08:12,400 --> 00:08:15,870 majd állítsa be az utolsó eleme az új tömb az új értéket. 107 00:08:15,870 --> 00:08:18,390 Ez sokkal könnyebb a PHP. 108 00:08:18,390 --> 00:08:21,230 Ha a mi tömb egy asszociatív tömb, 109 00:08:21,230 --> 00:08:24,810 akkor egyszerűen meg egy új kulcsot létrehozni egy elemet 110 00:08:24,810 --> 00:08:26,250 ha még nem létezik. 111 00:08:26,250 --> 00:08:30,010 Ha van a korábbi tömb - $ staff - 112 00:08:30,010 --> 00:08:38,679 azt mondhatjuk, $ alkalmazottak ["teljes"] = 3,. 113 00:08:38,679 --> 00:08:43,330 Most van egy új kulcsot, melynek értéke 3. 114 00:08:43,330 --> 00:08:46,460 >> Ahhoz, hogy az elemek száma egy tömb, 115 00:08:46,460 --> 00:08:48,230 tudjuk használni a "gróf" funkciót. 116 00:08:48,230 --> 00:08:56,100 Ha azt mondjuk, count ($ a), hogy lesz a 4 értéket. 117 00:08:56,100 --> 00:09:01,930 A PHP, mi is létrehozhatunk húrok a dupla vagy szimpla idézőjelet, 118 00:09:01,930 --> 00:09:04,470 így mindkét változók szálakat. 119 00:09:04,470 --> 00:09:21,780 $ S1 = "string", $ s2 = 'egy string';. 120 00:09:21,780 --> 00:09:23,920 Mi a különbség a kettő között? 121 00:09:23,920 --> 00:09:26,950 Nos, ez elég gyakori, hogy kívánja, hogy a 122 00:09:26,950 --> 00:09:29,600 változó értékét belsejében egy string. 123 00:09:29,600 --> 00:09:34,390 Ennek egyik módja az lenne, hogy a PHP a pont operátor, 124 00:09:34,390 --> 00:09:36,630 amely összefűzi szálakat. 125 00:09:36,630 --> 00:09:38,680 Tudnánk tenni valamit, mint ez - 126 00:09:38,680 --> 00:09:53,800 $ N = 5, $ s = 'n'. $ N,. 127 00:09:53,800 --> 00:09:57,430 Itt az n változó egész. 128 00:09:57,430 --> 00:10:00,020 De amikor összefűzzük egy string, 129 00:10:00,020 --> 00:10:04,110 PHP automatikusan átalakítani, hogy egy string számunkra. 130 00:10:04,110 --> 00:10:09,090 Vagy egyszerűen használható idézőjelek, hogy a változó a szöveg is. 131 00:10:09,090 --> 00:10:19,290 Elmondhatjuk, $ s = "n $ n". 132 00:10:19,290 --> 00:10:24,040 Most a $ s lesz 'n 5'. 133 00:10:24,040 --> 00:10:34,250 Ha egyszerű idézőjeleket inkább, mint $ s = 'n $ n'; 134 00:10:34,250 --> 00:10:39,670 Az S értéke lesz 'n $ n',. 135 00:10:39,670 --> 00:10:43,720 Az n értéke nem helyettesíthető, ha egyszerű idézőjeleket, 136 00:10:43,720 --> 00:10:47,150 de ez lesz, ha az általunk használt idézőjelek. 137 00:10:47,150 --> 00:10:51,800 Ha azt akarjuk, hogy idézőjelek egy olyan mértékű egy tömb egy string, 138 00:10:51,800 --> 00:10:55,060 mi kell, hogy tartalmazza zárójelek körül a tömb, mint ez - 139 00:10:55,060 --> 00:11:14,470 $ S = "{$ alkalmazottak ['teljes']}";. 140 00:11:14,470 --> 00:11:20,350 >> Nézzük most vessünk egy pillantást a kis részlet a C, és lefordítani a PHP. 141 00:11:20,350 --> 00:11:25,410 Itt hozunk létre egy függvényt, amely kiírja a leveleket egy string, 142 00:11:25,410 --> 00:11:27,310 egy karakter soronként. 143 00:11:27,310 --> 00:11:32,250 Csináljuk ugyanezt a PHP. 144 00:11:32,250 --> 00:11:36,530 Először is szükségünk lesz a PHP határoló. 145 00:11:36,530 --> 00:11:39,000 Amikor létrehozzuk a funkció, 146 00:11:39,000 --> 00:11:42,740 nem kell megadni a visszatérési típus vagy a típus az érvelés. 147 00:11:42,740 --> 00:11:46,890 Az s változó kell kezdeni egy dollár jel. 148 00:11:46,890 --> 00:11:51,590 PHP strlen függvény megadja a string hossza, 149 00:11:51,590 --> 00:11:55,660 mint a C strlen megadja a karakterlánc hosszát. 150 00:11:55,660 --> 00:11:59,060 A motorháztető alatt azonban ezek a funkciók valóban egy kicsit más 151 00:11:59,060 --> 00:12:03,010 mivel a string egy beépített típus a PHP. 152 00:12:03,010 --> 00:12:06,930 A szintaxis a mi "a" hurok ugyanaz. 153 00:12:06,930 --> 00:12:13,530 >> A PHP, mi is használni tömböt jelölést eléréséhez a karakterek egy string. 154 00:12:13,530 --> 00:12:19,350 Most már használhatja a nyomtatási funkciót, hogy nyomtassa ki minden egyes levél a húr. 155 00:12:19,350 --> 00:12:23,080 A PHP nyomtatási funkcióval, akkor nem kell aggódnia helyőrzőket - 156 00:12:23,080 --> 00:12:28,200 mint% d vagy% c - ha azt akarjuk, hogy nyomtassa ki a változó, amely nem a string. 157 00:12:28,200 --> 00:12:33,590 Ehelyett egyszerűen át egy változó bármilyen típusú a nyomtatási funkció, 158 00:12:33,590 --> 00:12:36,810 és ez lesz átalakítani a húr, és jelenik meg. 159 00:12:36,810 --> 00:12:43,430 És ez az! Nézzük most fut a fájlt "php print.php". 160 00:12:43,430 --> 00:12:48,160 És ott van a kimenő láttuk a C program. 161 00:12:48,160 --> 00:12:52,120 >> A PHP támogatja a konstrukció neve "foreach" hurok. 162 00:12:52,120 --> 00:12:54,800 A "foreach" ciklus olyan, mint egy "a" hurok, 163 00:12:54,800 --> 00:12:59,080 de hozzáteszi, egy kis szintaktikai cukor, hogy a dolgok még olvasható. 164 00:12:59,080 --> 00:13:03,690 Itt hozunk létre egy új tömböt úgynevezett "$ array". 165 00:13:03,690 --> 00:13:10,090 Most már elmondhatjuk, foreach ($ array as $ szám), 166 00:13:10,090 --> 00:13:12,390 és kinyomtathatja $ számát. 167 00:13:12,390 --> 00:13:20,650 Amikor futtatni ezt a fájlt - php-foreach.php-láthatjuk az egyes számokat külön sorban. 168 00:13:20,650 --> 00:13:26,700 >> Amikor írtam C kód, ez gyakran hasznos szervezni a kódot külön fájlokba. 169 00:13:26,700 --> 00:13:29,170 A PHP, akkor nem ugyanaz a dolog. 170 00:13:29,170 --> 00:13:33,870 Tegyük fel, hogy van egy pár funkciót nevű fájlt math.php. 171 00:13:33,870 --> 00:13:38,900 Ha szeretné használni ezeket a funkciókat egy másik PHP fájlban, mint calculator.php, 172 00:13:38,900 --> 00:13:44,110 Tudom használni a PHP require_once () függvényt. 173 00:13:44,110 --> 00:13:47,110 Require_once olyan, mint # include. 174 00:13:47,110 --> 00:13:52,050 Amikor adott utat a fájlt, akkor alapvetően másolja be a tartalmát 175 00:13:52,050 --> 00:13:54,930 , hogy a fájl az aktuális fájlt. 176 00:13:54,930 --> 00:14:00,150 Require_once biztosítja, hogy minden fájl tartalmazza az aktuális fájl csak egyszer, 177 00:14:00,150 --> 00:14:05,680 ami hasznos lehet, ha van egy nagy gyűjtemény a PHP fájlokat igénylő egymást. 178 00:14:05,680 --> 00:14:07,750 Vessünk egy pillantást egy példát. 179 00:14:07,750 --> 00:14:12,620 Itt van egy gyűjtemény a funkciót, amit szeretnék használni egy másik fájlt. 180 00:14:12,620 --> 00:14:14,990 Vessünk egy pillantást, hogyan tudjuk használni őket. 181 00:14:14,990 --> 00:14:20,700 A 3. sorban, mi szükség math.php. 182 00:14:20,700 --> 00:14:27,170 A "__DIR__" egy különleges állandó képviselő az aktuális könyvtárban 183 00:14:27,170 --> 00:14:33,440 mivel a math.php és calculator.php található ugyanabban a könyvtárban. 184 00:14:33,440 --> 00:14:38,010 Miután igényelnek math.php, tudjuk használni a funkciókat 185 00:14:38,010 --> 00:14:41,690  mintha már meg őket calculator.php. 186 00:14:41,690 --> 00:14:47,440 Fussunk ezt "php calculator.php". Nagyszerű! 187 00:14:47,440 --> 00:14:50,880 >> Ennyi a mi Bevezetés a PHP szintaxis. 188 00:14:50,880 --> 00:14:53,700 Ha többet szeretne megtudni, nézd meg PHP.net. 189 00:14:53,700 --> 00:14:59,470 PHP rengeteg beépített funkció, és szerencsére a dokumentáció igazán nagy. 190 00:14:59,470 --> 00:15:02,680 A nevem Tommy, és ez CS50. 191 00:15:02,680 --> 00:15:04,680 [CS50.TV] 192 00:15:04,680 --> 00:15:14,000 >> ... Konzol, én meg a szoba. A fenébe is! Ez az utolsó videó, ahol használni nagy szavakat a kódot.