[Powered by Google Translate] [PHP syntaxe] [Tommy MacWilliam] [Harvard University] [To je CS50.] [CS50.TV] V tomto videu si představíme PHP - v jednom z jazyků, které budeme používat v CS50 jak jsme přechod na vývoj webových aplikací. PHP je zkratka pro PHP Hypertext Processor, nebo PHP Hypertext Hypertext Procesor Procesor, a já tam zastavit. PHP je rekurzivní zkratka, což myslím, že je opravdu úžasné. Takže, pojďme napsat "hello world" v PHP, který bude trochu jiný, než "Hello World" v C, které jsme poznali a milují. Namísto vytváření souboru s názvem hello.c, budeme vytvářet hello.php. Všechny naše PHP kódu budou obsaženy mezi . Pokud budeme mít PHP kód, který je umístěn mimo tyto oddělovače, nebude to provést. Můžeme mít tolik, kolik z těchto bloků PHP jak chceme v jediném souboru PHP. V PHP není potřeba hlavní funkce. Namísto toho bude náš PHP kód se spustí v pořadí, v jakém se objeví v našem souboru PHP. Oba C a PHP mají "printf" funkce pro výstup dat. Ale v PHP, nepotřebujeme # include všechny hlavičkové soubory, jako standardIO.h. To proto, že v PHP nebudeme sestavování náš kód. Když jsme psali kód v C našeho workflow inklinoval být otevření jeden nebo více. C nebo. h soubory, mění, jejich sestavování, a běží výsledný binární. Podívejte se na video, kompilátory pro více informací o tomto procesu. Na rozdíl od C, PHP je interpretovaný - spíše než zkompilovaný - jazyk. To znamená, že PHP kód budeme psát bude probíhat speciální program nazvaný interpret, která bude zase spustit náš kód. Chcete-li spustit náš PHP kód, budeme to pošlu do PHP interpretru, který bude mít na starosti jeho plnění, spíše než sestavování jej do strojového kódu. Pojďme se podívat na tlumočníka v akci. Budeme otevřít terminál a spusťte příkaz PHP následovaný cestou k souboru PHP bychom chtěli spustit. Budeme říkat, 'php hello.php ". A jdeme na to. K dispozici je výstup našeho PHP programu. Nepotřebovali jsme zkompilovat naši soubor PHP vůbec. Místo toho jsme měli jiný program - interpret PHP - provedení zdrojových že jsme napsali. PHP můžete dělat mnohem víc, než jen printf. Pojďme napsat nějaké složitější PHP programy. Syntaxe pro konstrukce - jako if, else, while, for, a switch - je stejná v PHP a C Stejně jako C, každý z těchto konstruktů používá rovnátka vymezit své tělo, a stejně jako v C, každý řádek napíšeme musí končit středníkem; Nicméně proměnné jsou řešeny trochu jinak v PHP. Za prvé, musí být všechny proměnné v PHP začíná znakem dolaru. Zdá se, že to trochu divné na první, ale zvyknete si na to. Za druhé, PHP je volně typový jazyk, což znamená, že nemusíte být výslovně typ proměnných, pokud ji vytvořit. Kde C si musíte říct, int x = 5; nebo char y = 'a'; v PHP můžeme jednoduše říci, $ x = 5; a $ y = 'a';. To samé platí i pro funkce. Spíše než říkat int f () {tělo funkce našeho} v PHP budeme říkat funkci f () {tělo funkce našeho}. Nepotřebujeme explicitně určit návratový typ naší funkce f. Funkce v PHP také nemusí vrátit stejný typ pokaždé, když jsou provedeny. Například bychom mohli napsat funkci, která vrátí hodnotu false na chyby a jiný typ, pokud se to podaří. To může také pomoci nám napište obecnější funkcí. Například bychom mohli napsat jediný přidat funkci které mohou vrátí celočíselnou hodnotu, pokud jsou uvedeny dvě celá čísla nebo float-li dva plováky jsou uvedeny. V jazyce C, tak musíme napsat dva samostatné funkce, jak to udělat. Zatímco v C používáme ukazatele o zvýšení platu a smyčce, nebudeme moci používat ukazatele v PHP. Místo toho, jak jsou pole a řetězce vestavěných typů v PHP. Jsou zabudovány přímo do jazyka. Chcete-li vytvořit pole v PHP můžeme říci, $ A = array (1, 2, 3); nebo jednodušeji $ a = [1, 2, 3],. Můžeme index do tohoto pole pomocí stejné syntaxe, kterou jsme zvyklí z C. Chcete-li získat první prvek budeme říkat, $ a [0];. PHP má také vestavěnou podporu pro asociativní pole. Asociativní pole jsou stejně jako hash struktury dat tabulky jsme již viděli - mapují klíč s hodnotou. Pojďme se podívat na příklad. Dá se říci, $ zaměstnance = ["instruktor" => "david", "tf" => "Tommy"];. Zde mám asociativní pole se 2 klíči - instruktor a tf. Dvojitá šipka, nebo rovno-větší než, používá se k oddělení klíč a odpovídající hodnoty. Takže hodnota $ zaměstnanců ["tf"] je řetězec "tommy". Hodnoty asociativním poli - stejně jako jakékoli jiné pole - může být jakéhokoliv typu. Například bychom mohli říci, $ zaměstnanci = ["instruktor" => "david", "TFS" => ["Tommy", "rob"]];. Nyní je hodnota "TFS" je pole. To znamená, že se hodnoty v rámci jednoho asociativní pole mohou být různých typů. PHP pole také nemají pevnou délku, takže můžeme přidat nebo odebrat prvky z pole. Řekněme, že máme jednoduché pole jako $ a = [1, 2, 3];. Chcete-li přidat nový prvek do tohoto pole, můžeme říci, že $ a [] = 4;. Nyní naše pole se skládá ze čtyř elementů - [1, 2, 3, 4]. Připomeňme si, že pokud bychom chtěli udělat něco takového v C, budeme muset vyčlenit celou novou řadu, zkopírovat obsah našeho prvního pole do něj, a poté nastavte poslední prvek nového pole do naší nové hodnoty. To je mnohem jednodušší v PHP. Pokud je naše pole je asociativní pole, můžeme jednoduše definovat nový klíč k vytvoření prvku pokud ještě neexistuje. Pokud máme starší pole $ - zaměstnanci - můžeme říci, $ zaměstnanci ["celkem"] = 3;. Nyní máme nový klíč s hodnotou 3. Chcete-li získat počet prvků v poli, můžeme použít "počítání" funkci. Řekneme-li, počítat ($), která bude mít hodnotu 4. V PHP, můžeme vytvořit řetězce pomocí dvojité nebo jednoduché uvozovky, takže obě z těchto proměnných jsou řetězce. $ S1 = "string"; $ s2 = "jiný řetězec ';. Jaký je rozdíl mezi těmito dvěma? No, to je docela běžné, že chtějí, aby zahrnovala hodnota proměnné uvnitř řetězce. Jeden způsob, jak to udělat, by bylo použít PHP operátoru tečka, který zřetězí řetězce. Mohli bychom udělat něco takového - $ N = 5; $ s = 'n' $ n.;. Zde náš n proměnná je celé číslo. Ale když jsme se spojit s řetězci, PHP automaticky převede na řetězec pro nás. Nebo můžeme jednoduše použít uvozovky dát proměnné do řetězce sám. Dá se říci, $ s = "n $ n";. Nyní se hodnota $ s bude "n je 5 '. Pokud budeme používat apostrofy místo, stejně jako v $ s = 'n je $ n "; Hodnota S bude "n je $ n ',. Hodnota n nebude nahrazena, pokud budeme používat apostrofy, ale bude, pokud budeme používat uvozovky. Pokud chceme použít uvozovky zahrnout hodnotu pole v řetězci, budeme muset zahrnout složené závorky kolem pole, jako je tato - $ S = "{$ zaměstnanci ['celkem']}";. Pojďme se teď podívat na malého úryvku v C a převést ji do PHP. Zde jsme vytvořit funkci, která vytiskne písmena řetězce, jeden znak na řádku. Pojďme udělat to samé v PHP. Za prvé, budeme muset naše PHP oddělovače. Když vytvoříme naši funkci, nepotřebujeme specifikovat jeho návratový typ nebo typ argumentu. Naše je variabilní také musí začínat znakem dolaru. PHP strlen funkce nám dává délku řetězce, stejně jako C je strlen nám dává délku řetězce. Pod kapotou však tyto funkce jsou ve skutečnosti trochu jinak protože řetězec je vestavěný typ v PHP. Syntaxe našeho "pro" smyčky je stejný. V PHP můžeme také použít pole notaci pro přístup k znakům řetězce. Nyní můžeme použít funkci tisku vytisknout každé písmeno řetězce. S funkcí tisku PHP, nemusíme se starat o umístění - jako% d nebo% c - když chceme vytisknout proměnnou, která není řetězec. Místo toho je možné jednoduše přenést proměnnou libovolného typu funkcí tisku, a bude převeden na řetězec a zobrazeny. A to je! Pojďme se nyní spustíme soubor "php print.php". A tady je výstup jsme viděli z našeho programu C. PHP podporuje také konstrukt nazvaný "foreach" smyčky. V "foreach" smyčka je stejně jako "pro" smyčky, ale přidá trochu syntaktický cukr, aby se věci lépe čitelné. Zde jsme vytvořit nové pole s názvem "$ array '. Nyní můžeme říci, že foreach ($ pole as $ číslo), a můžeme tisknout $ číslo. Když jsme se spustit tento soubor - php-foreach.php-vidíme každé číslo na samostatném řádku. Když jsme psali kód v C, to bylo často užitečné organizovat náš kód do samostatných souborů. V PHP můžeme udělat totéž. Řekněme, že máme několik funkcí v souboru s názvem math.php. Pokud chci, aby tyto funkce používat v jiném souboru PHP, stejně jako calculator.php, Mohu použít PHP require_once () funkce. Require_once je stejně jako # include. Když daný cestu k souboru, bude v podstatě kopírovat a vkládat obsah z tohoto souboru do aktuálního souboru. Require_once zajišťuje, že každý soubor je zahrnut do aktuálního souboru pouze jednou, což může být užitečné, pokud máte velkou sbírku PHP soubory, které vyžadují navzájem. Pojďme se podívat na příklad. Zde máme sbírku funkcí, které bych chtěl použít v jiném souboru. Pojďme se podívat na to, jak můžeme použít. Na řádku 3, jsme vyžaduje math.php. "__DIR__" Je speciální konstanta představující aktuální adresář od math.php a calculator.php jsou umístěny ve stejném adresáři. Poté, co požadujeme math.php, můžeme použít funkce  jako kdyby jsme je definovali v calculator.php. Spusťme to s 'php calculator.php ". Skvělé! A je to pro náš úvod do syntaxe PHP. Chcete-li se dozvědět více, podívejte se na PHP.net. PHP má mnoho vestavěných funkcí a naštěstí jeho dokumentace je opravdu skvělé. Jmenuji se Tommy, a to je CS50. [CS50.TV] Držák ..., já jsem z místnosti. Sakra! Toto je poslední video, kde používám velká slova v kódu.