[Powered by Google Translate] [PHP синтаксата]
[Томи MacWilliam] [Универзитетот Харвард]
[Ова е CS50.] [CS50.TV]
>> Во ова видео, ние ќе се воведе PHP -
еден од јазиците ќе биде во употреба CS50
како што транзицијата кон веб развој.
PHP се залага за PHP Хипертекст процесор,
или PHP Хипертекст процесор Хипертекст процесор,
и јас ќе престане да постои.
PHP е рекурзивен акроним, што мислам дека е навистина страшно.
>> Значи, ајде да се напише "hello свет" во PHP,
кој ќе биде малку различен од "hello свет" во C што ние си дојден да знаете и љубов.
Наместо за создавање на датотека наречена hello.c,
ние ќе се создаде hello.php.
Сите наши PHP код ќе бидат содржани помеѓу <? Php и>.
Ако имаме било PHP код кој се наоѓа
надвор од овие Раздели, тоа нема да се изврши.
Може да имаме како многу од овие PHP блокови
како што сакаме внатре во една PHP датотеката.
Во PHP нема потреба за главната функција.
Наместо тоа, нашите PHP код ќе биде извршена во цел таа се појавува во нашите PHP датотеката.
И C и PHP имаат 'printf' функција за Ставање на податоци.
Но во PHP, ние не треба да # се вклучат било кое заглавие датотеки како standardIO.h.
Тоа е затоа што во PHP ние не ќе биде составувањето на нашиот код.
Кога ние напиша C кодот нашиот работното тенденција да бидат отворањето
една или повеќе. C или. ж фајлови, менување на нив, составувањето на нив,
и работи како резултат на бинарни.
Проверете Компајлери видео за повеќе информации во врска со овој процес.
>> За разлика од C, PHP е препознаена - наместо состави - јазик.
Тоа значи дека го кодот PHP ние пишуваме
ќе биде извршена преку посебна програма наречена преведувач,
кои за возврат ќе изврши нашиот код.
Да се ​​кандидира нашите PHP код,
ние ќе го испрати заедно со преведувач PHP, која ќе се справи со неговото извршување,
наместо составувањето до машински код.
Ајде да видиме преведувач во акција.
Ќе се отвори терминал и ја извршите командата PHP
проследено со патека до датотеката PHP ние би сакале да се кандидира.
Ние ќе речеме, 'php hello.php.
И таму ќе одиме. Тука е излезот на нашите PHP програма.
Ние не треба да ги собере нашите PHP фајл на сите.
Наместо тоа, имавме уште една програма - преведувач PHP -
извршување на sourcecode дека ние напиша.
>> PHP може да направи многу повеќе отколку само printf.
Ајде да пишуваме некои посложени PHP програми.
Синтаксата за конструкции - како ако, друго, додека, за, и да се префрлате -
е иста во PHP и C.
Само како C, секоја од овие конструкции користи загради да ги демаркираат нивното тело,
и исто како во C, секоја линија ние пишуваме
мора да заврши со точка-запирка;
сепак, променливи се управувани малку поинаку во PHP.
Прво, сите променливи во PHP мора да се почне со знакот за долар.
Се чини дека е малку чудно на прв, но ќе се навикнеш на него.
Второ, PHP е лабаво отчукува јазик
што значи дека не треба да се експлицитно листата
типот на променливата кога ќе го креирате.
Каде што во C ќе треба да се каже int x = 5;
или знак y = 'a';
во PHP ние едноставно може да се каже $ x = 5;
и $ y = 'a';.
Истото важи и за функции.
Наместо велејќи int f () {телото на нашата функција},
во PHP ние ќе треба да се каже функцијата f () {телото на нашиот функција}.
Ние не треба да бидат експлицитно дефинирани враќање тип на нашиот функцијата f.
Функции во PHP, исто така, не треба да се врати на истиот тип
во секое време тие се извршуваат.
На пример, ние може да напише функција која враќа false за грешка
и друг вид ако тоа успева.
>> Ова исто така може да ни помогне напишете повеќе генерички функции.
На пример, ние може да напише една додадете функција
дека може да се врати цел број, ако 2 цели броеви се дадени
или плови ако 2 плови се дадени.
Во C, ние ќе треба да се напише 2 одделни функции да го направите тоа.
Додека во C ние ги користиме совети за покачување и стрингови,
ние не ќе биде во можност да го користите совети во PHP.
Наместо тоа, двете низи и жици се вградени во видови во PHP.
Тие се вградени во јазикот.
Да се ​​создаде низа во PHP можеме да кажеме,
$ A = array (1, 2, 3);
или повеќе, едноставно $ a = [1, 2, 3];.
Можеме да индекс во оваа низа користите истата синтакса што ние сме навикнати да од В
За да се добие првиот елемент ние ќе каже, $ a [0];.
PHP, исто така има вградена поддршка за асоцијативни низи.
Асоцијативни низи се само како хаш табелата податоци структура сме веќе видено -
тие мапираат клуч за вредност.
>> Ајде да ги погледнеме еден пример.
Можеме да кажеме, $ персонал = ["ловење" => "Давид", "ТФ" => "Томи"];.
Еве, јас имам асоцијативна низа со 2 копчиња - инструктор и ТФ.
Со двојна стрелка или еднаква на-поголема-од,
се користат за одделување на копчето и нејзината соодветна вредност.
Значи, вредноста на $ персонал ["ТФ"] е стринг "Томи".
Вредностите на асоцијативна низа -
многу како и секој друг низа - може да биде од било кој тип.
На пример, ние може да се каже, $ персонал = ["ловење" => "Давид", "TFS" => ["Томи", "украде"]];.
Сега вредноста на 'TFS "е низа.
Тоа значи дека вредностите во еден асоцијативна низа може да биде од различни видови.
>> PHP низи, исто така, немаат фиксна должина,
за да можеме да додадете или отстраните елементи од низа.
Да речеме, имаме едноставна низа како $ a = [1, 2, 3];.
За да додадете нов елемент на оваа низа,
можеме да кажеме, $ a [] = 4;.
Сега нашата низа се состои од четири елементи - [1, 2, 3, 4].
Потсетиме дека ако сакавме да направиме вакво нешто во C,
ние ќе мора да одвои цела нова низа,
ја копирате содржината на нашата прва низа во неа,
и потоа во собата на последниот елемент на нова низа на нашата нова вредност.
Ова е многу полесно во PHP.
Ако нашите низа е асоцијативна низа,
ние едноставно може да се дефинира нов клуч за да се создаде елемент
ако сеуште не постои.
Ако имаме нашето претходно низа - $ персонал -
можеме да кажеме $ персонал ["вкупно"] = 3;.
Сега имаме нов клуч со вредност од 3.
>> За да го добиете бројот на елементи во низа,
можеме да го користиме "брои" функција.
Ако се каже, брои ($ a);, кој ќе има вредност од 4.
Во PHP, ние може да се создаде низи користење на двојно или единствен наводници,
па и двете од овие променливи се стрингови.
$ S1 = "стринг"; $ s2 = 'уште стринг';.
Која е разликата меѓу овие две?
Па, тоа е доста заеднички за да сакаат да се вклучат во
вредноста на променливата во внатрешноста на стринг.
Еден начин да го направите ова ќе биде да се користи точка оператор PHP,
кој concatenates жици.
Ние би можеле да направите нешто како ова -
$ N = 5, $ S = 'n е' $ n.;.
Тука нашите n променлива е цел број.
Но кога ние ги concatenate со еден конец,
PHP автоматски ќе го претвори во стринг за нас.
Или ние едноставно може да користат двојни наводници да се стави на променлива во низа себе.
Можеме да кажеме, $ S = "n е $ n";.
Сега вредноста на $ s ќе биде 'n е 5'.
Ако ние ги користиме единечен наводник наместо тоа, како во $ s = 'n е $ n';
вредноста на s ќе биде 'n е $ n';.
Вредноста на n нема да биде заменет, ако ние ги користиме единечен наводник,
но тоа ќе биде ако ние ги користиме двојни наводници.
Ако сакаме да користат двојни наводници да го вклучите вредноста на низа во низа,
ние ќе треба да се вклучат големите загради околу низа, вака -
$ S = "{$ персонал ['вкупно']}.";
>> Ајде сега да ги разгледаме во мал фрагмент во C и превод на тоа во PHP.
Тука, ние сме создавање функција која отпечатоци од почетните букви од стрингот,
по еден знак на линија.
Ајде да го прават истото во PHP.
Прво, ние ќе треба нашите PHP Раздели.
Кога ќе се создаде нашата функција,
ние не треба да го одредите нејзиното враќање тип или тип на аргумент.
Нашите и променлива, исто така, мора да започне со знакот за долар.
Strlen функција PHP ни дава должината на стрингот,
исто како и на C strlen ни дава должината на стрингот.
Под хаубата иако, овие функции се всушност малку различни
бидејќи стринг е вграден во вид во PHP.
На синтаксата на нашата "за" јамка е иста.
>> Во PHP, ние исто така може да се користи низа нотација за да пристапите на карактери од стрингот.
Ние сега да го користите функција за печатење за печатење на секоја буква на стрингот.
Со функција за печатење PHP, ние не треба да се грижите за местата за чување -
како% d или% c - кога сакаме да испечатите променлива која не е стринг.
Наместо тоа, ние едноставно може да помине променлива од било кој тип на функција за печатење,
и тоа ќе биде претворена во низа и прикажани.
И тоа е тоа! Ајде сега работат нашите датотека со 'php print.php.
И таму е излезот видовме од нашата Ц програма.
>> PHP, исто така поддржува конструкт наречен "foreach" јамка.
Јамка "foreach 'е исто како" за "јамка,
но се додава малку на синтаксички шеќер да се направат нештата повеќе читлив.
Тука, ние сме создавање на нова низа наречен "$ низа.
Сега можеме да кажеме, foreach ($ низа како $ број),
и можеме да печатиме $ број.
Кога ќе ја извршите оваа датотека - PHP foreach.php--може да се види секој број по сопствена линија.
>> Кога ние напиша C кодот, тоа беше често корисни да го организираме нашето кодот во посебни датотеки.
Во PHP, можеме да го стори истото.
Да речеме, имаме неколку функции во датотека наречена math.php.
Ако сакам да ги користат овие функции во друга датотека PHP, како calculator.php,
Јас може да се користи require_once PHP е () функција.
Require_once е исто како # вклучат.
Кога се дава патека до датотеката, таа во суштина ќе копирате и залепите содржината
на таа датотека во тековната датотека.
Require_once гарантира дека секоја датотека е вклучена во тековната датотека само еднаш,
која може да биде корисно ако имате голема колекција на PHP датотеки кои бараат едни со други.
Ајде да ги погледнеме еден пример.
Тука имаме една збирка на функции кои јас би сакал да се користи во друга датотека.
Ајде да ги погледнеме како можеме да ги користите.
На линијата 3, ние се бара math.php.
На '__DIR__' е специјален постојан претставник на тековниот директориум
бидејќи math.php и calculator.php се лоцирани во истиот директориум.
По бараме math.php, можеме да ги користите функциите
како да сме ги дефинирани во calculator.php.
Ајде да ја извршите оваа со 'php calculator.php. Одлично!
>> Тоа е тоа за нашите вовед во синтаксата на PHP.
За да дознаете повеќе, проверете PHP.net.
PHP има многу вградена во функциите, и за среќа неговата документација е навистина голем.
Моето име е Томи, и ова е CS50.
[CS50.TV]
>> ... Заградата, јас сум надвор од собата. По ѓаволите! Ова е последниот видео каде јас го користам големи зборови во кодот.