[Powered by Google Translate] [8 Секција] [Помалку Комфорни]
[Нејт Hardison] [Универзитетот Харвард]
[Ова е CS50.] [CS50.TV]
>> Добредојдовте на нашата втора до последното секција.
Во оваа недела ние ќе зборуваме за PHP, а потоа следната недела
ние ќе се направи малку преглед за одбивање 1.
Ние ќе започне на страница 3 на проблемот поставува пакет,
и ние ќе работат преку делот на прашања прилично брзо.
На страна 3, ние почнам да зборувам за оваа разлика помеѓу C и PHP
во смисла дека PHP е динамички отчукува јазик,
а C е статички отчукува,
и некој навистина брзо направи било кодирање во нешто како PHP
или Пајтон или Руби пред тоа, го вклучите Javascript-?
Целосно ново? Во ред.
>> Сите овие јазици што Јас само споменати
се многу различни од јазици како C и C + + и Java
во смисла дека кога ќе се декларирате променлива да не мора да се декларираат
каков вид на променливата што е, па во C бевме заглавени морале да секогаш велат
ова ќе биде int променлива, или ова ќе биде char * променлива,
а со PHP, со Python, со Ruby,
со многу од овие повеќе современи јазици не треба да го направи тоа на сите.
Вие само прогласи вашата променлива, а во случај на PHP
Вие декларирате дека тоа е променлива со prefixing тоа со $ знакот,
и тогаш типот на променливата се определува со она што вредност тоа држи,
кој е вид на кул.
Да се ​​позанимавам со овој малку, имаме примерок PHP код тука
меѓу почетокот и крајот тагови.
Ние сме со користење на овој вид на како HTML, во смисла дека
имаме овие аглести загради тука за да се отвораат и затвораат.
Ќе видите ова со HTML.
Ќе видите ист вид на синтакса со XML премногу.
>> Ова укажува на почетокот на PHP блокот.
Ова? PHP е специфична за PHP.
Ние затвори се 'со>, како и.
Да се ​​отвори датотеката во нашиот апаратот користејќи го она што сакате.
Во овој пакет се вели да се јавите dynamic.php.
За волја на вистината, можете да го наречеме она што сакате, но името на датотеката ќе излезе
и да биде важно подоцна, па само се сеќавам она што го нарекуваат.
Одам да се префрлиме на апаратот,
и јас одам да се направи директориум за
дел 9 Верувам дека сме сега.
И ние ќе одиме во делот 9,
и јас одам да се користи gedit.
Ајде да видиме, gedit, а јас одам да се јавите рудникот dynamic.php.
Бум.
Во рамките dynamic.php, бидејќи ова е PHP фајл
и јас сакам да ја извршите оваа преку преведувач PHP
Јас треба да започне што е надвор со оние отворен тагови,
па ќе одам да се започне оние веднаш,
си даде малку простор меѓу ознаки,
а потоа точка на оваа вежба е да се позанимавам со
оваа функција наречена gettype, па gettype, оваа функција овде.
>> Забележете дека нема црта или простор или цртичка или нешто слично
одвојување на 2 зборовите, се и напишете, само еден збор заедно.
Но, она што ова ќе го направите е ако помине во променлива да gettype,
велат $ var или $ x,
ова ќе ми кажете каков вид на во дебагирање формат
што името на овој тип е.
Ние ќе експериментирате тука.
Особено, ако се погледне назад на pset спецификации
имаме неколку различни линии на код овде.
Во првата линија код ние го иницијализирате овој променлива $ var,
да биде еднаква на 7, а потоа имаме оваа printf линија
во која се вели еј, printf var не е празно.
Printf е еден од многуте начини можеме да печатиме работи во PHP.
Често ќе видите ехо функција се користи наместо на printf,
но printf сите сме запознаени со тоа што беа кодирање во C за некое време.
Што всушност сте да направите е да видиме ако копирате и залепите дела.
Одам да им даде на овој обид.
Ќе одиме назад во текот на апаратот.
Океј, и таму ќе одиме.
И растојанието е малку фанки, но тука ќе одиме.
Имаме овој код овде.
>> [Студентски] Зарем не е добар стил на јазичето тоа?
Жал ми е?
[Студентски] Дали е конвенционален на јазичето тоа?
Право, па Сем прашува дали тоа е Конвенцијата на јазичето тоа или не.
Обично да.
Во овој случај јас избрав да не.
Искрено, ќе видите различни нешта меѓу различни програмери.
PHP е најчесто се користи често во комбинација со HTML
и други јазици, и така понекогаш печатење ќе се погледне малку фанки
ако алинеја во PHP почеток и крај тагови.
Тоа навистина зависи.
Во овој случај, копирајте го и ставете не ставете јазичиња во за мене,
но тоа дефинитивно не, како што рече, да го појасни.
Добро, ако те спаси овој код во dynamic.php
тогаш што можете да направите е да дојде до вашиот терминал прозорец каде сум во право надолу тука
во gedit, и да се направи еквивалент на компајлирање
користење направи, а потоа водење на вашиот код во C
сите што треба да направите со датотека PHP е стартувате преведувач PHP,
што е малку програма наречена PHP,
и аргумент ви даде на преведувач е датотеката што сакате да го протолкува.
Во овој случај, dynamic.php.
Whoops, каде го ставив?
О, јас го стави во делот 9, и тука сум. Тоа е зошто.
>> Сега, ако јас ја стартувате таа повторно
можеме да видиме дека во мојот прв gettype повик на функција
var е цел број.
Во следниот var е стринг, а потоа и во третиот var е рационален број.
Она што е интересно за ова е ако дојдете назад можеме да видиме дека
овие се видови слични на оние што ги имавме во C.
Имавме ints во C.
Ние вид на имале конците во C,
па низи не беа целосно legit вид во смисла дека
нашите CS50 стринг е навистина она?
Жал ми е? Ма?
[Ма] char *.
Да, тоа беше овој char * што се користи.
На самиот почеток на семестарот бевме користење на стринг тип,
но тоа беше навистина char * под хауба.
Ние само напишете го дефинира, а во PHP овие низи се вистински тип.
Нема повеќе на овој char * тип работи.
>> Ќе видите дека можеме да направиме многу повеќе работи со жици
многу полесно отколку што можеле во C во PHP,
а потоа конечно, имаме овој рационален тип, и голема разлика тука е дека
ако дојдете назад можеме да видиме дека името на овие видови
сега цел број, стринг, и рационален наместо int и bool,
и како да ги собереш различни програмски јазици,
претпоставувајќи дека во одреден момент во својот живот ќе дојде во контакт со
поинакви ќе забележите малку quirks вака
каде што C повици броеви ints.
Некои го нарекуваат цели броеви.
Постојат и други термини кои ќе наидат.
Биг int видовме денес во SQL.
Исто така постојат и број, а потоа bool, рационален,
сите видови на разлики постојат.
>> Ова не е страшно интересно, но сега јас ќе одам да ви даде малку време-
ако ние враќање надвор да работат преку оваа вежба на дното на страница 3
каде што прашува какви видови одговараат на овие вредности тука на дното.
Имаме 3.50.
Имаме ова нешто тука, што е интересно.
Ние не видовме дека пред, но ако сте биле следниве заедно во предавање
што веројатно веќе знаете што е тоа.
Тогаш имаме ова што ова е вид на фанки.
Ќе го признаат тоа.
Што е ова во C?
Сем? Што ова ќе ви даде во C?
Тоа ќе отворите датотека наречена dynamic.php и да ја направат да се чита.
Да, и што ќе биде од типот на променлива дека ќе додели ова? >> Датотеката ѕвезда.
Точно, ќе додели оваа датотека ѕвезда.
Ова е легитимен PHP премногу.
Стартувај тоа. Погледнете што се случува кога ќе мине во gettype.
А потоа, исто така, да проверат што null е, она што може да биде во PHP.
Ќе ти дадам неколку минути.
Вие буквално може да копирате и залепите овие вредности во,
и потоа ќе се направи малку случаен повик за вас
и да видиме што имаш.
>> [Студентски] Имам едно прашање. << Да.
Во една од предавања Дејвид рече дека е нешто што може да се стави на врвот на вашата датотека
така што вие не мора да напишеш во PHP секое време.
Што беше тоа?
Тој беше веројатно зборува за фунта тресне, хаш тресок.
Тоа е директивата дека ако го одбележи вашето датотека како извршна
тогаш што го прави тоа е кога ќе се изврши датотеката
тоа ќе му кажете на школка програма
да го користите PHP преведувач да го протолкува на содржината на датотеката.
Прашањето е она што беше оваа специјална линија
што би можеле да се вклучат во врвот на нашата PHP датотеки да не мора да вклучува
оваа линија PHP или оваа команда PHP кога сакаме да се изврши датотеката?
А вие всушност може да го направите ова со еден куп на различни датотеки.
Верувам дека тоа зависи од тоа каде бинарната PHP е се складира,
но често usr / bin / PHP е добро место за почеток.
Можете да дознаам ова точно со одење назад до вашиот апарат
и пишување од кои PHP.
На која команда фигури кога сте извршување на бинарни
или команда каде соодветната датотека е.
Ова ми кажува дека PHP е навистина aliasing оваа бинарна датотека
тоа е се чуваат во usr / bin, каде што е многу на системот бинарни датотеки се инсталирани.
На пример, ако дојдете до врвот, сега тоа дека јас сум се стави ова #! линија тука
Можам да дојдете долу, и јас може да се обидете да се кандидира
dynamic.php, но јас се добие оваа грешка за дозвола да се негира,
и што значи тоа е дека оваа датотека не е во моментов дава извршна дозволи.
Тоа не е означено како датотека дека некој може да работи.
>> Кога ќе истрча направи или ѕвекот и имаш извршна од него
компајлерот беше доволно паметни да знаат дека Еј, јас сум градење на извршна.
Веројатно сакате да ја изврши, така што автоматски ќе го конфигурирате
на дозволите за вас.
Ова не е случај, иако, кога ќе се создаде една нормална датотека од нула,
Причината е обично не сакате да имате било какви датотеки на вашиот систем да биде извршна,
така што всушност треба да се оди во и рачно го стори тоа.
Најлесен начин да го направи тоа е со командата chmod,
и chmod + x вели додадете извршна малку
бидејќи има за читање малку, пишува малку и извршна малку,
Р W и X,
и велејќи chmod + x ќе се сврти на извршна малку
бидејќи тогаш датотеката која ние се одреди, кој во овој случај ќе биде dynamic.php.
>> [Студентски] е дека уклучен за секого?
Да се ​​провери ова, па како би проверете ги дозволите?
Дали знаете како би проверете ги дозволите на датотеката?
[Нечујни студент одговор]
Жал ми е? >> [Студентски] XSD.
XSD ни дава датотека во хакове.
Листата на сите датотеки,-l, ќе ми го покаже на сите датотеки во мојот именик
вид на своето долго, опширниот листата, и така тука можеме да видиме дека
овој dynamic.php датотека
последен пат е изменета 5 ноември во 16:21.
Сопственикот на оваа датотека е jharvard.
Тоа е прва кој ќе се логирани
Тоа е на корисникот јас сум на работа како,
и ако сте, исто така, во апаратот ти си исто така работи како корисник jharvard.
Вие сте во студентите група,
и овие се нештата што ќе видите доволно често.
>> Ние може да оди во многу детали тука,
но во најголем дел она што сакате да се погледне во кога сте во потрага за да ја видите
дали или не датотека е извршна е првенствено
на корисникот кој е сопственик на датотека, сопственикот,
па ова jharvard, а потоа имаме
дозволи битови овде на лево,
и начинот на кој да го прочитате ова е дека и последната трошка
обично се користи за означување дали или не-барем во овој случај
оваа последната трошка често ќе се постави реклама за да се покаже
дека датотеката е директориум а не само обична датотека.
Тогаш следните 3 парчиња токму тука
се утврди на дозволи кои сопственикот на датотеката има,
така што во овој случај jharvard, како сопственик на датотеката, да читаат и пишуваат оваа датотека,
но има една цртичка велејќи дека jharvard не може да ја извршите оваа датотека.
Наредните 3 битови се на групата, па ова е студентите група,
па ако имало повеќе корисници на мојот апарат,
и имавме повеќе корисници, како дел од студентите група,
тогаш сите тие може да ја прочитате оваа датотека, но тие не може да го напише,
а исто така и некој друг, светот
може само да ја прочитате оваа датотека, како и.
Има добри, долго writeup за ова,
па ќе можете да прочитате на интернет.
Во проблемот сет спецификации ние навлегувал во тоа во повеќе детали.
>> [Студентски] е 218 осврнувајќи се на светот?
На 218 е-од врвот на мојата глава јас сум заборав,
но бр.
Ајде да видиме. Јас сум бришење на тоа токму сега.
Вратете се на она што требаше да се направи со овој chmod + x
каде што сакавме да даде dynamic.php извршна дозволи,
и прашање е дали или не ова ќе им даде на извршна дозволи за секого
или само jharvard, а ние може да се види од
водење на команди и внесување на ls-l,
и сега ќе видиме дека таа е означена како извршна.
Гледаш дека има промена на бојата.
Сега dynamic.php е наведена во зелена,
и тоа изгледа како одговорот на прашањето е што, Шарлот?
[Шарлот] Само jharvard. >> Само jharvard, да.
>> Ако сакавме да ја претворат извршна малку на за секого
како да го направите тоа?
Секој мисли? >> А + х?
Да, точно.
Шарлот рече можеме да направиме chmod на + x на dynamic.php,
и сега ако ние се кандидира ls-l гледаме дека извршната битови
се навистина уклучен за секого.
И можете да всушност не обратна ова, па можете да го исклучите за секого
користење на минус.
Сега е исклучен, и сега можеме да го вклучите повторно за jharvard
така што ние всушност може да се стартува сега,
и сега ќе видите кога ќе ја извршите код оваа специјална #! линија на врвот,
#! линија, изјави школка,
изјави нашиот терминал еј, кога оваа датотека се извршува,
користете / usr / bin / PHP да го протолкува оваа датотека
а потоа печати резултатот.
[Нечујни студент прашање]
Секако, дозволете ми да дојдете назад. Исто како и оваа.
Ќе видиш сите од овие директиви започне со овој фунта и тогаш фантастичен точка,
понекогаш се нарекува фирма, хаш тресок.
>> [Студентски] Како можеме да го извршите со PHP dynamic.php пред да се направи извршна?
Прашањето е како можеме да ја извршите оваа користење на бинарни PHP
додека dynamic.php не е извршна?
Ова е супер важно, бидејќи тоа е токму онака како
тоа нема да работи кога пишувате проблем сет 7.
Поголемиот дел од времето PHP датотеки не се директно извршна.
Начинот на кој функционира е затоа што тоа е PHP бинарни тоа е извршна.
Толкувачот е нешто што се извршува,
и уште па што таа го прави е буквално slurping во целата содржина
на нашите dynamic.php датотека и ќе линија по линија
и извршување на овие команди, па тоа е користење на нашата PHP фајл
како листа на инструкции.
Тоа не е директно тоа извршување.
Тоа е каде што ние велиме дека овие датотеки се толкува во рок време.
Тоа е време на подигнувањето јазик, наместо на нешто што е определено во компајлирате време,
не Составувач јазик како C.
>> Дали постои начин да се добие кандидира време јазикот да дејствува како ако тоа е компајлирање јазик,
како ако имате сите работи направено на серверот
наместо-знаете што мислам?
Да, прашањето е
има ли начин да се кандидира време јазици да дејствува повеќе како компајлирање видови на јазици?
И таму се, мислам, дека е активна област на истражување за многу од овие компании.
Верувам Фејсбук има направено многу работа со PHP
и составувањето на тоа долу, што го прави побрзо, оптимизирање на тоа
бидејќи нивниот веб-сајт е изграден на PHP.
Ако сте биле по node.js на сите,
која е еден вид на преведувач да вклучите
да бидат во можност да се кандидира вклучите надвор на прелистувачот, надвор од вашиот веб прелистувач,
бидејќи традиционално го вклучите Javascript-само да се кандидира во внатрешноста на Firefox или Хром,
и тоа ќе се користи за да се направи кул анимации случи на веб-страница
и направете ја вашата веб-страница динамичен.
Тоа е изградена на многу работа дека Google има направено
да го вклучите Javascript-и C + +
поврзе заедно, така што е многу активно истражување на
добијат овие јазици да комуницирате и да се оптимизира нив,
првенствено затоа што толку многу луѓе да го кодот во PHP и го вклучите Javascript-
затоа што тоа е многу полесно.
Тоа е многу поубав. Вие не треба покажувачи.
Вие не треба видови лебдат наоколу.
Тие сакаа да добијат придобивките од овие компајлирате време јазици
со сите тип проверка и брзина и пониски употребата на меморијата и сето тоа
додека сеуште одржување на флексибилност и леснотија на користење на овие понови.
>> Назад кон нашата изворна план за напад.
Имаме неколку од овие прашања овде во нашиот проблем сет спецификации.
Ајде да одиме преку нив навистина брзо, и ќе одиме низ собата.
Шарлот, кој тип е 3,50?
[Шарлот] Тоа е двојно. >> Тоа е двојно.
Џими, што е ова следниот? >> Низа.
Низа, страшни, а Jared, што е fopen?
[Jared] Тоа е ресурс. >> Тоа е ресурс.
Тоа е вид на нова, а не датотека ѕвезда, а не датотека.
Тоа е ресурс е тип во PHP,
и Жал ми е, Ела, последниот нула е она?
NULL.
Нула, како се напишани во PHP? >> На истиот начин.
На ист начин, метрополи? >> Да.
Да, во ред.
Еве ќе одиме, имаме двојно, имаме низа,
ние имаме ресурси, а потоа имаме нула.
Ајде да видиме сега имаш видено-
Да видиме, па сега Претпоставувам дека она што јас исто така, сакаат да направите е да се повлече до
оваа веб-страница, токму тука, ова php.net / прирачник,
па ако вие момци копија од тоа и се отвори веб пребарувач.
Одам да се повлече до Хром, се стави дека внатре
Сакам да ви покажам тоа не само затоа што
можеме да зборуваме цел ден за видови и сите што забавни нешта
туку затоа што тоа е рачна PHP,
и постојат голем број на PHP програмери таму.
Постојат голем број на PHP веб-сајтови таму,
и како резултат на тоа, има многу на документацијата за PHP,
и упатството, овој php.net, е навистина добро место да одат
кога имаш прашања за тоа што е најдобар начин да го направите Х во PHP
или она што не функција изгледа?
Само вид на запознавање со она што ова изгледа како поради
ќе бидат доаѓаат тука често, малку за проблемот постави 7.
>> Ако заврши прави финалниот проект што користи PHP
ова ќе биде местото ќе стане многу добро запознаени со.
Често начинот на кој луѓето го направите ова е тие користите Google за пребарување за сајт,
и тие не го користите полето за пребарување дека е овде горе во горниот десен агол, што е вид на мали.
Ако сте Googling околу нешто да се направи со PHP и ќе видите
еден од рачна линкови pop-up обично може да се потпре на тоа
како прилично добар ресурс.
Прекрасно, па од овие типови, само од љубопитност,
кои од нив не сме виделе?
Ништо не сме виделе тука?
[Студентски] ресурси. >> Видовме ресурс со fopen повик.
[Студентски] објекти. >> Објекти не сме виделе сигурно.
Callbacks не сме виделе.
Постојат некои од овие псевдо-типови.
Ние дефинитивно видел само број и двојно.
Ние не видите некои од другите, па ако ние кликнете на броеви
можеме да видиме дали постојат други цели броеви што го имаме тука?
Дали сите тие толку број, број, број.
Некои јазици имаат поголем број видови,
како што видовме на MySQL денес имаше int, а потоа голем int.
Кул.
>> Значи, PHP прирачник.
Да се ​​вратиме на нашиот проблем сет спецификации, а ние сега ќе дојдете до страница 4.
Една од работите што се случува кога ќе добие овие јазици
дека не ја имаат оваа статични пишување, па овие јазици каде што треба да се изјасни
типот на променливата до пред
е да се добие случаи каде што може да почнете да имаат променливи од различни видови
интеракција едни со други,
и PHP прави оваа работа, каде што се обидува да го стори
она што смета дека е најразумниот нешто да се направи
кога имаш 2 различни видови комуницираат едни со други.
На пример, ако гледаме на овие линии на код тука
ќе видите дека ние го добивме она што се случува кога
ние се обидуваме и да додадете стринг 1 до број 2.
Што се случува ако се обидеме и да додадете стринг кој не е нумеричка вредност
туку вистински ликови, CS бројот 50?
Тогаш ќе видиме дали има нешто друго што се случува кога
наместо за додавање на стринг до голем број ние сме додавање на бројот на стринг,
и така натаму и така натаму до точка каде ние сме добивање
некој вид на чудни работи, токму тука каде што имаме 7 + вистина.
Што е грижам значи тоа?
>> Ако вие момци одиме напред и залепите некои на овој код во Вашиот уред.
Можете да ја задржат во dynamic.php.
Ќе видиме што ќе се случи.
[Студентски] Само користење печатење не, printf?
Да, така ќе најдете дека за печатење е исто така валидно функција за печатење во PHP.
Постојат многу различни начини да ја направиш.
Ќе видиме со неколку примери подоцна штом ќе почнам да зборувам
за единствен проблем со кој ние ќе пишувам
а потоа концентрации проблем што ние ќе треба да се напише
дека иако имаме fopen и запишам
тоа е често не е наједноставниот начин да се читаат во содржината на датотеката.
PHP има многу од овие C-како holdovers.
[Студентски] Кога ќе се стави во сите 6 на оние нешта што добиваат само еден број како излез.
[Нејт Х] Кога ќе се стави во сите 6 од овие работи.
Ајде да видиме е тоа затоа што тоа е можно-
една работа е дека овие печати повици не се прекинати на крајот со нови линии.
Нема нова линија одвојување секоја од овие печати повици,
па можеби ќе бидете добивање на еден голем број,
и тоа е навистина само амалгам на нова линија карактери.
[Студентски] Добро, како можам да бидете сигурни дека-
Па, постојат еден куп на различни начини.
Можете рачно да го стави во печати на нова линија карактер,
ехо на нова линија карактер,
печати на нова линија.
[Студентски] Значи Ехото е истото како printf?
>> Printf е како C printf
каде сте печатење форматиран стринг.
Сте го снабдуваат формат стринг, а потоа сите случаеви променливи.
Тоа е често нешто што не се користи-
Да видиме како одрекување,
Јас сум помалку запознаени со PHP отколку што сум со други веб јазици,
и кога сум програмиран во PHP Јас обично не користат printf
затоа што сметам дека е побрзо да се користи низа интерполација способности кои го има,
кои ќе одат во и јас ќе ви покажам во само една секунда,
додека во C ние вид на треба да го направите ова hacky нешто да се добие тоа да се печати правилно.
Ти всушност може да се стави променливи директно во низи во PHP.
Printf е вид на премногу долго за она што јас обично го прават. Да, Ела.
[Ела] Генерално ако добиете анализирам грешка значи тоа-
како на C тоа не ти кажам точно каде што грешка е и тоа што е,
па дали тоа значи изглед преку целиот код и фигурата тоа надвор?
Тоа е обично повеќе насочени од тоа.
Мислам дека во тој случај тоа беше малку надвор,
па мислам дека во тој случај ние се водат за исчезнати точка-запирка.
Таа се обидува да направи смисла на сè,
па како овие толкува јазици, преведувач ќе се обиде
и стори сé за да се направи сè што работа соодветно.
>> Ќе видите, на пример, во вклучите Javascript-
вие ќе често линија изјави завршуваат со точка-запирка само како што го прават во PHP,
исто како што го прават во C.
Во JavaScript некои од вклучите Javascript-толкувачи
во многу пребарувачи ќе се стави во semicolons за вас
ако се случи да им се водат за исчезнати.
Тие ќе се обидат и сместување за некои несовесноста на вашата страна.
Тоа е каде што тоа може да се обидува и обидува и се обидува да се направат работите работа,
а потоа конечно ќе се дојде до точка каде што вели во ред,
Не можам да се направат работите да работат на спасување, и тоа е местото каде што ќе се добие линијата број
тоа може да изгледа малку надвор од точната место.
Океј, па ајде да одиме преку овој навистина брзо.
Што застанавте со Ella, па ајде да одиме во текот на Missy,
и ма, што значи печатење на стринг 1 плус бројот 2 ти даде?
[Ма] 3. >> 3.
Дали тоа има смисла? Вид на?
Дали тоа ви даде број? Дали тоа ви даде низа?
[Ма] Голем број. >> Тоа е број.
Но тоа е тоа печатење, па затоа се случува да ви даде некој вид на стрингот.
>> Едно нешто што можеме да направиме да се провери ова
е ако правиме $ var = 1 + 2
и тогаш велиме ехо на gettype,
па ние сме со користење на трети вид на печатење тука.
Сега можеме да видиме што се случува овде.
Еве што имаме е добивме целобројна надвор од ова.
Иако бевме додавање на овој стринг до голем број,
не добивме низа од него, исто како ма рече.
Бевме добивање на број.
Океј, па ајде да видиме, веднаш до, Кевин.
CS + 50? >> [Кевин] 50.
[Нејт Х] 50. Дали тоа има смисла?
[Кевин] Да.
[Нејт Х] Зошто? Зошто тоа да има смисла за вас?
[Кевин] Поради тоа е само имаат низа, со број вредност нула.
Да, одлично.
Вид на двосмислена ситуации, но тоа е добро да се знае што се случува.
Стела, она што се случува следно со број 1 + стринг 2?
[Стела] 3. >> 3 повторно.
И во овој случај, ние да се низа или број?
>> Да им даде на овој обид.
Секој побрзо од мене го добиете одговорот? Шарлот?
О, јас didn't-во ред, ајде да видиме, ние ќе го стори истото вид на работа
каде што имаме голем број плус стринг, и ние ќе ехо видот,
види она што го добиваме.
Ние, исто така се добие број.
Не е важно кој е стринг, кој е бројот.
Ние сеуште ќе добиете број.
Тоа е уште се случува да го направи она што можеме да очекуваме.
Добро, така Сем, она што за 90 + 9 шишиња од пиво на ѕидот?
[Сем] 99. >> 99.
Не шишиња од пиво на ѕидот, иако.
Тоа ни дава малку повеќе информации за она што се случува.
[Сем] Ако имаше напишано 9 во букви
тогаш ќе има 90, нели?
[Нејт Х] Да.
Прашањето е дали ние би напишани 9 од како N-I-N-Е
ние би добиле 99 или 90?
Ние ќе добијам 90.
Тоа е буквално само барате цифрен карактери.
Тоа не е доволно паметни да го признае број зборови и нешта. Да.
>> [Студентски] Дали постои такво нешто како typecasting во PHP?
Постои, а тоа е токму начинот на кој би го сториле тоа во C.
Што е со 10/7, Шарлот?
[Шарлот] 1,4285.
[Нејт Х] Да, па што би можело да биде изненадување за ова?
Што ќе се случи ако не истиот вид на работа во C,
ако не 10/7 во C?
[Шарлот] Тоа само ќе ви даде-во зависност од тоа колку ви typecasted претпоставувам
тоа ќе ви даде само ограничен број на цифри по децималната.
Да, така ограничен број на цифри по децималната.
Што друго може да биде-ќе ви даде какви било цифри по децималната?
Често не, па уште еднаш, во зависност од тоа како сте го typecasting
тоа може или не може да го претвори во број со подвижна запирка.
Еве тоа беше вид на убаво тоа што го направив тоа.
Се што ви е прикажано ова назад кога почнавме прави овој вид на работи во C
тоа најверојатно ќе се направи малку повеќе смисла
дека не само одат на 1.
А потоа конечно, Џејми, она што за 7 + вистина?
[Џејми] 8. >> 8.
Што значи тоа?
Претпоставувам дека тоа само дава вистинската вредност на 1.
Да. Што се случува ако се промени тоа да лажни?
[Студентски] 7.
Да, па се сети каде зборуваме за овие бинарни вредности,
1 е на 0 е надвор?
Сега имаме вистински е 1, 0 е лажна,
и не може да се гледа ова во C примери дека ние сме направиле ова претходното полугодие,
но историски bool тип во C не е вистински тип,
па луѓето се користи 0 и 1 во местото на вистински и лажни.
Ова е манифестација на тоа.
>> Океј, па еден важен дел за сето ова
е дека имаме овие различни видови.
Тие можат да комуницираат едни со други.
Тие често можат да комуницираат едни со други на начини кои се убави, како што видовме тука.
Тоа е убаво да се биде во можност да имаат стринг 1 и број 2, додадете ги заедно и да добијат 3.
Тоа има смисла.
Меѓутоа, кога сте пишување веб-сајтови, а особено кога сте обработка
корисникот влез, па велат дека сум напишал веб-форма
кој собира информации од корисникот и потоа оди да го обработи
на задниот крај, од страна на серверот во вашиот PHP код
ако сте очекуваме таа вредност што корисникот ја внеле во и да се достави
на вашата форма за да биде број, или да биде број со подвижна запирка или нешто слично
треба експлицитно да го дадат
а потоа направи некои од типот проверка.
>> Вие не сакате само да се потпираат на овој тип жонглирање систем да се направат работите да работат надвор,
особено поради безбедносни причини и само за стабилноста на вашиот вебсајт.
Само нешто да имајте на ум дека кога сте ракување со форма на податоци,
ништо што доаѓа во пост или get superglobals
бидете сигурни дека секогаш се провери и да го претворите и typecast неа.
И само како ние се зборува за еден миг пред тоа typecasting
во PHP е иста како во C каде што ќе имаат голема заграда
и тогаш типот.
Задржи дека во умот.
Една функција која ќе ни се најде кога правиш ова
е ние сме биле користење и ова е вид на како настрана-
ние сме со користење на овој gettype функција токму тука
да дознаам тип на променлива,
и додека ова е корисна за дебагирање и да видиме каков тип на променлива е
не сакате да ја користите оваа, на пример, во состојба каде
сте проверка за да види дали gettype од $ var = број направи нешто.
Ова е лошо, лошо, лошо.
Наместо тоа постојат овие функции се нарекува е цел број, е стринг,
е низа што сакате да го користите, наместо тоа, така што во овој случај
она што јас би сакал да го стори наместо овој човек токму тука
се користи е цел број var.
И тие се често нарекуван е is_ * во смисла дека може да го замени * со број,
стринг, и така натаму, и само за да бидете сигурни дека навистина брзо
е ова е int PHP.
Изгледа како можете да направите или е int или е таму е цел број, како?
Да, алијас, па int број адреси.
Кул.
>> Како правиме ние?
Ајде да ги собереш на темпото малку.
Сега ние ќе зборуваме за низи, така што можете да видите
во следниот дел од спец зборуваме за тоа како низи во PHP
се малку различни од тие во В
За волја на вистината, тие се вид на амалгам на
низи дека си дојден да знае и љубов во C
каде што сè е од ист тип
чуваат решително и contiguously во меморијата,
и имаш овие нумерички индекси.
Имаш индекс 0, индексот 1, индекс 2,
и ќе ги чувате вредности на оние индекси.
Можете исто така во C, кога ќе напиша правопис, многу од вас
направи хаш табелата пристап, и видов дека имавме
различен вид на чување, каде што беа мапирање
клуч за вредност, па кога ќе се обиде да ја запази нешто во хеш табелата
ти мораше да каже дека си сакал да го чува со посебен клуч,
и дека клучните утврди локацијата на вредноста и каде ќе се чуваат.
Сте вид на доби двете од овие концепти се случува во исто време во низа PHP,
и како резултат на тоа, ние често го нарекуваме овие асоцијативни низи
каде што се асоцирањето на клуч во вредност.
Во следниот дел се зборува за едноставна PHP низа
каде што имаме копчиња A, B и C,
сите стрингови, мапирање на цели броеви 1, 2, и 3.
И може да имаат клучевите од различни видови.
>> Можете да имаат некои клучеви кои се стрингови, некои клучеви кои се цели броеви.
Можете да имаат вредности од различни видови.
Можете да имаат вредност која е стринг, вредност која е цел број,
вредност што е предмет или друга низа, на пример,
сите во истата низа објект, кој е вид на чудно.
Вие не треба да имаат низа која е само што влегов еден тип на елемент во неа.
Можете да имаат многу различни работи се случува таму.
Од друга работа е да се напомене е дека кога ќе се направи се види нешто како ова во вашиот код,
која е валидна PHP да прогласи низа исто како и оваа, 0, 1, 2, 3, 4, 5,
дека ќе прогласи иницијализира $ ТП да биде оваа низа.
Но, она што сте всушност добивање под хауба е овој вид на имплицитна
генерација на копчињата, каде што имаме 0-0, 1-1, 2-2, 3-3.
И излегува дека дури и ако имате низа како овој човек се тука
каде што имаш, b и c, како на копчињата
а потоа ќе почнете со користење низа притисни метод за да започнат со користење на оваа низа како оџакот,
па можете да видите дека оваа низа објект, оваа низа е навистина станува преоптоварен.
Ние може да го користи како низа. Ние можеме да го користите како хеш табелата.
Ние може да го користи како оџак.
Кога ќе почнете туркање работи кон оваа низа
првото нешто ве одвлече ова ќе биде индекс 0, а потоа индекс 1 и индекс 2.
Можете да добиете овој вид на имплицитна генерација на клучеви
освен ако не ги наведе експлицитно.
Начинот на кој се одреди клуч експлицитно, се разбира, е со користење на оваа заградата нотација,
која е слична на низи освен наместо на само дозволувајќи
број индекси во еве, сега ние им овозможи на ништо.
Ако сакате вашиот клуч да биде стринг, ќе го наведете допаѓа ова.
Ако сакате тоа да биде цел број, ќе ја определи со int сакате да го користите.
>> Прашања за кои досега?
Една од убавите работи во врска со оваа идеја
е дека само некогаш може да има една вредност се чуваат со посебен клуч.
Ако се вратиме во текот на нашиот апаратот-дозволете ми да избришете некои од овие работи.
И да речеме јас се иницијализира низа да биде 0, 1, 2, направено.
Ако јас сега се знае дека, на пример, ако јас echo $ ТП [0]
Одам да се добие вредност 0 отпечатени,
и бидејќи не може само некогаш да биде една вредност се чуваат за одредена клучен
ако јас сместат нешто од $ ТП [0], велат,
тогаш јас знам, кога echo $ ТП [0] повторно
Јас не одам да се добие 0 отпечатени како порано.
Јас само ќе добие.
Значи ова е во основа велејќи дека не може да има $ ТП [0] чување на 2 различни вредности.
Тоа не може да се сместат и 0 и стринг, вака буквално го заменува
она што беше на $ ТП [0] претходно.
Причината го обелоденам ова е се стартува, да видиме што се случува.
Погледнете тука дека добив 0 отпечатени, а потоа и одредување тука.
Нема нова линија таму, бидејќи јас бев мрзливи и не се стави дека внатре
Што е кул за тоа е може да се користи ова како начин
да го фати оваа идеја на сет
каде што не можат да имаат повеќе копчиња во низа.
Ние не може да има идентични клучеви во низа.
Не може да има клучна 0 и вредност 1 и клучните 0 и вредност
или клучните 0 и вредност точно.
На копчињата се сите има само 1 копче во низа.
И покрај тоа што може да ја имаат истата вредност се чуваат
неколку пати во низа под различни клучеви
тоа не е можно да имаат идентични клучеви неколку пати во вашиот PHP низа.
>> Ако ги погледнеме во следниот проблем, unique.php,
каде сакаме да се отвори датотеката PHP
содржи листа на стрингови, еден стринг една линија,
и ние сакаме да ги најдете сите на уникатен жици во таа датотека
сите ние треба да направите е да користите една од овие PHP низи
и употреба на жици во датотеката како клучевите на овој низа
и да ја задржите ажурирање на нашите низа како ние чување на овие нови клучеви.
Како што ги читаме секоја линија од датотеката може да се чува во низа,
и на крајот ќе имаме како наш клучеви во нашата низа
сите на уникатен стрингови во датотека.
Дали тоа има смисла?
Ајде да видиме како тоа функционира.
Ние ќе се отвори, според спецификации, нов фајл наречен unique.php.
Отвори. Упс, жал, новата датотека.
Ние ќе го започнете со истиот почетокот и крајот тагови.
Ние ќе го зачувате во делот 9, и ние ќе го наречеме unique.php.
Океј, сега зумирате внатре
Идејата е да се отвори датотеката,
читаат во датотека линија по линија.
За секоја линија во датотеката
ќе имаме низа каде што имаме
на линија како што е нашата клуч.
И тогаш кога ќе дојде до крајот тука
Клучеви $ ТП се единствен линии
од датотеката, бидејќи ние знаеме дека ако го ставам линија во оваа низа
неколку пати тоа само ќе го задржи највисок старата вредност,
и ние, всушност, може да се стави низа линија како себе, туку едноставно се допаѓа тоа.
>> Ова е вид на чудно.
Ние сме чување на истата клучните вредност пар одново и одново и одново,
но бидејќи ние се гарантира дека ќе има само 1 клучни наречен линија
па ако имаме датотека која вели-датотека од животинско звуци и има ткиво, ткиво,
meow, meow, moo, moo, и секој пат кога читаме животно бучава од
како ткиво и ние го чуваме во низата ние се добие ткиво, а потоа по втор пат
чуваме ткиво тоа ќе ги избрише прв пат ја чуваат.
На крајот ние само ќе треба еден влез во низа
за секоја од животински звуци во нашата животински звуци датотека.
Дали вие момци се чувствуваат сигурни дека можете да се справи со отворање на датотека во PHP?
Еден начин да го направите тоа, ајде да одиме во текот на овој брзо-еден начин да го направи тоа
е со fopen, како што видовме претходно.
Можете fopen може some_file.txt.
Можете да го отворите во читање на владата, исто како и во C.
Тоа е една совршено добар начин да го направи тоа.
Можете, исто така, тогаш за читање на датотеката линија по линија
имаат исти функции, многу од нив, дека си направил во C.
Имате fgets.
Имате feof, иако не сакаме користење дека
затоа, се сеќавам, тоа не беше голема во C.
Можете да го направи тоа на ист начин,
но тука е навистина кул работа.
За жал, јас не сакам да се направи $ датотека, но постои функција наречена датотека во PHP,
и оваа функција, токму тука е кул бидејќи го чита целата содржина
на датотеката што ќе се определи, па some_file.txt,
чита на целата содржина на оваа датотека во низа
а потоа ви овозможува да iterate над неа, што е прилично Вешта.
>> Ако одиме, на пример, на нашата веб прелистувач
и ние со нетрпение во Google за датотеката PHP
можете да видите тука дека нашите прирачник вели таа датотека чита целата датотека во низа,
и можеме да file_get_contents да се врати на содржината на фајл како стринг,
но обично само го добива како низа е навистина убаво, бидејќи она што го прави
е тоа што се распаѓа, така што секој елемент
во низа е една линија на датотеката,
па ако гледаме на датотеката 0, тоа е првата линија на датотеката.
Датотека 1, втора линија, датотека 2, трета линија, и така натаму и така натаму.
Зарем не би било убаво ако тоа беше сè што мораше да го направи во C?
Убави Вешта.
Дејвид покажа ова предавање, и идиом го покажа беше
дека во прилог на нашите стандардни за телефонска линија во PHP имавме дека
за ($ i = 0; з <10; i + +),
и можете да го направите тоа во PHP премногу, истото-
ние исто така имаме овој кул конструкт наречен foreach.
Foreach е навистина корисна кога процесирањето над низи или овие структури на податоци
поради тоа што ви овозможува да се повлече од секој елемент од низата
без рачно да го направи индексирање себе,
без рачно да креирате индекс променлива, прираст,
извлечете го вредност во низа во тој момент, бидејќи тоа е многу честа работа да се направи.
>> Најверојатно го направиле тоа тони моменти кога сте биле прави Ц работи
во текот на семестарот, па со оваа foreach
можеме јамки низ оваа датотека низа,
и синтаксата е дека ние сакаме да сега јамки низ оваа низа
и наведете дека променливата ние ќе го користите за чување
елемент на оваа низа локално, локално до опсегот на овој циклус foreach,
е ние ќе го наречеме линија.
Ако тоа е датотека од само зборови и таму е еден збор во линија
можеме да го наречеме зборот, како, навистина само ви даде ова име,
што сакате да ја наречете,
а потоа во внатрешноста на јамка можете да правите што сакате со оваа променлива линија.
Ако тоа не е доволно за да се добие вредноста на низа и сакате да се добие
индексот заедно со него можете да наведете име за индекс
како и вредноста, а сега вие имате пристап до 2 променливи.
Имате $ i и линија
каде што $ i е индекс во низа,
и линија е линија која ќе извадени од датотеката.
На пример, ако сакаме да се печати ехо линија 0 на датотеката како оваа,
ние би можеле да го прават тоа само вака, "Линија $ i на датотеката е $ линија"
и тука е нешто што, исто така, не сум ја видел уште или
каде што сум тотално прескокнат во текот% целата оваа% s г бизнис
дека ние мораше да се справи со нив, во Ц, и наместо тоа сум отишол директно на
пишување на променливи во линија во мојата стринг.
>> Ова се нарекува променлива интерполација, стринг интерполација
каде сте кутии на променливи во право, и преведувачот PHP
е доволно паметни кога е читање преку низа која започнува со двојни наводници-
не единечен наводник, со еден цитира стрингови не можете да го направите ова-
но со двојно цитира стрингови како што пишува преку неа е во потрага по променливи.
Тоа им лов на одредување и ако гледа променливи ќе ги преземе вредноста на променливата
и работи во низа ако може да го претвори во стринг застапеност,
што е прилично Вешта.
За сега, да се коментира од остатокот од сè,
спаси ова, и што можеме да направиме сега е што може да се отвори датотеката
дека можеме да го наречеме some_file.txt-ајде да се создаде новата датотека-
и ние може да се стави во еден куп глупости работи тука само за да го тестирате се надвор,
освен тоа, го нарекуваат some_file.txt, како што јас го правам се тука на врвот,
и сега ако ми одзумирате само за да бидете сигурни дека сè е во истиот директориум-
изгледа имам unique.php и some_file.txt во истиот директориум.
Ако јас се кандидира PHP unique.php
да видиме како тоа отпечатоци од секоја линија во мојот датотека и она што линијата е?
>> Тоа е прилично моќна, нели?
Види, тоа траеше 3 линии на код за да се отвори датотеката.
Па, 4 линии на код. Јас не може да смета денес, јасно.
Но, навистина само 2 интересни линии на код, бидејќи другите 2 се кадрави загради,
но во овој многу код бевме во можност да отворите некоја датотека, iterate преку него,
повлече линија број и линија се
и го испечатите.
Кул работи. Шарлот.
[Шарлот] Имам едно прашање во врска со синтакса.
Значи foreach занимава со секоја линија на датотеката што ќе се отвори,
и тогаш кога ќе сакате да ги правите нештата со секоја линија што само го прават тоа како
а потоа поврзете вредност.
[Нејт Х] Што можете да направите токму тука-на прашањето беше
на foreach мора да се направи со низа, па foreach синтакса
е навистина foreach и известување дека нема простор
или нешто помеѓу за и секоја од нив.
Тие мора да одат веднаш до едни со други,
а потоа го зема во низа,
а потоа ќе ја имаат оваа други клучни нарекува како што треба да биде таму,
а потоа по што можете да се стави една променлива име,
во кој случај ќе треба да се повлече од вредностите на низата,
не индекси, или ако го направи тоа како што сум напишал подолу
ќе го добиете клучеви и вредности.
Имате foreach елемент на низа или пар на низата како усогласени со вредност
или само како вредност.
Во зависност од она што ви треба, ако не морате копчињата,
тогаш можете да одите со вредноста.
Ако сакате копчињата можете да одите со нив.
>> [Шарлот] Јас, исто така реализира ние никогаш прогласи јас или линија.
Како тоа дури и не знаат што се тие?
[Нејт Х] Што сакаш да кажеш со декларираат?
[Шарлот] Ние никогаш не им кажа она што јас или линија средства.
[Нејт Х] Ние никогаш не кажа на компјутерот што јас или линија значи во однос на-
[Шарлот] дека тие се индексирани или дека they're-
[Нејт Х] Ние никогаш не го кажа дека ова би требало да биде индекс или клуч и вредност,
а тоа е затоа што тоа е PHP преведувач.
Ова служи како декларација и вели во ред, клучот ќе биде
променлива наречена јас се чуваат во променлива наречена i.
Вредноста ќе се чуваат во променлива наречена линија,
па ова служи како декларација на овие променливи
и вели дека $ i е клучна, и $ линија е вредност.
Да, Ела.
[Ела] Ако клучеви не се направи бројно
како тоа да одлучи што да се случува да се печати сè?
Дали е тоа исто како да тоа е внесен во?
[Нејт Х] Ајде да пробвам.
Да се ​​создаде променлива наречена ТП,
и можеме да направиме оди до 7.
Да речеме 0 оди во друга низа со 1, 2 или јаболко.
Да речеме 7 оди на 1, б оди 2,
и 3 оди на 4.
Ова е вид на луди потрага пример, бидејќи ние сме мешање
жици и цели броеви насекаде.
Нема вистинска цел на оваа низа.
Мислам, ние би можеле да нарачате се по азбучен ред од страна на клучеви.
Би можеле да порачаме се по азбучен ред од вредност.
>> Ние би можеле да се обиде и да ги земе предвид дека некои се стрингови, некои се ints,
и ние би можеле да се обидат и да ги конвертирате сите на ист тип и да видиме што се случува,
или би можеле да ги разгледа во вредност во кои веќе ги внесе
каде што ќе стави овој човек во прв, овој човек во секунда, овој човек во третата,
овој човек во четвртата, итн.
Ајде да видиме што ќе се случи кога ќе ја извршите оваа код.
Ако ние движете се надолу и го стори истото вид на работа,
и тука не е печатење на нови линии.
Кога го прочита работи надвор на датотеката е вклучувајќи го и новиот линии во вредности,
кој е зошто тоа отпечатени убаво, а тука не,
па затоа сè е smushed заедно.
Да додадете во таа нова линија само за да се направат работите убаво.
Да го повторување, и така тука
погледнете што се случи.
Тоа печатени се во редоследот по кој ние го стави во низа.
Тоа не зачува редот во таа смисла.
>> Да се ​​вратам на овој проблем на uniques
каде што сакате да бидат во можност да iterate во текот на еден фајл,
и ние ќе го даде some_file.txt,
и ние ќе iterate над неа се допаѓа ова.
Рековме дека сакаме да се користи низа да бидете сигурни дека ние би добиле сите
уникатен линии од таму, а ние може да го направи тоа навистина лесно
само со чување во низа што ние секако прогласи надвор од опсегот на еден циклус,
и рековме дека ако ние се користи на линии во датотеката како клучеви во нашата низа
ако влезе во дупликат линија ќе ни биде највисок претходната вредност.
Тоа не е секогаш можно да има 2 копчиња кои се идентични во истата низа.
Ние можеме да го прават токму тоа.
Ние ќе се ослободи од овој ехо изјава токму тука.
Тука ние сме чување на линија во датотеката во нашата низа
користење на себеси како клуч.
Ништо на него, и излегува дека ние дури и не треба овој клуч.
Ние не треба дека јас променлива.
Во овој момент, ако ние требаше да се направи уште еден foreach циклусот
и бевме да јамки низ секоја ТП
и линија сега ако ние ехо-Упс, жал.
Ние не можеме да го користите запирка. Ние треба да го користи ова како клучен збор.
Сега ако ние ехо линија треба да ги добиете сите на уникатен зборови во датотека.
Ако одиме до some_file.txt,
и да речеме правиме јаболко, банана, јаболко, јаболко, банана,
ако сте печатење од сите на уникатен зборови во оваа датотека ние само треба да добие
јаболко и банана за печатење.
Ако ние го спаси ова, сега тука ќе зумирате назад во,
PHP unique.php и TA-da.
Ние успешно uniqued на датотеката.
>> Завршниот дел на овој проблем бара да се најде оваа низа пред да го испечати
бидејќи во овој едноставен пример дека ние сме само направено
Имавме среќа, во смисла дека на датотеки
Ние го сторивме тоа смислена пример со јаболка и банани.
Веќе беше подредени.
Но со користење на едноставни вид функција можете да ги подредите низа, што е прилично Вешта.
Конечниот нешто што сакав да разговарам со вас момци за навистина брзо
е дека овој вид на PHP е добро и добро, и тоа е супер корисна
да знаете како да направите ако некогаш треба да направите малку, брзо работи програмски.
На пример, ако ми треба да се напише програма која, да речеме,
става сите во секции Јас не одам за да одат и да пишува тоа во C.
Тоа ќе биде долг.
Тоа се случува да биде еден вид на болка, особено ако постојат датотеки кои се вклучени,
исто како вие момци го виделе.
Тоа е толку убаво тоа што со само ова многу код овде
бевме во можност да дупат датотека, повлечат сите уникатни вредности
и ги печати назад.
>> Сепак, за вашите задачи, за вашите проекти,
ако сте градење на веб-сајтови со PHP моќ е во тоа што
ние сме водење на PHP датотеки преку овој преведувач,
и преведувач е преработка се во рамките на PHP тагови,
оставајќи сè друго недопрена и плукање од резултатите.
Ние можеме да го направите ова да се изгради HTML програмски.
Сега, ако ние одиме назад до спецификации, последниот проблем во спец
зборува за оваа идеја на концентрации
и создавање на опаѓачкото мени,
кои може или не може да сакате да направите, во зависност од она што ти го финалниот проект што прави,
која му овозможува на корисникот да избере од листата на сите можни концентрации
нивниот една концентрација.
Сега, ова е вид на болка да напишеш ова
и треба да го направите сето ова рачно, особено кога сте морале да бидете сигурни дека
дека ги имате сите аглести загради во право место и сите цитати на право место,
па со PHP можете да го направите ова програмски, и можете да го направите ова навистина брзо.
>> Ајде да видиме како да го направите тоа.
Ние ќе се отвори нова датотека.
Ние ќе се стави во нашите PHP тагови.
Ние ќе го наречеме concentrations.php,
и сега кога го правиш ова, вид на добра работа да се размислува за
кога ќе се обидуваш да се меша и натпревар на вашиот PHP и HTML-
се пронајдат, во ред, што е дел кој сакам да програмски генерира?
Што е делот кој јас програмски може да генерира?
Точно е дека можете да направите сите од вашиот HTML
внатрешноста на PHP блокови.
Можете да ехо сите на HTML како жици.
На пример, ако сакам да започне да го изберете тагови внатрешноста на PHP
Можам да кажам ехо, велат изберете име = концентрација,
а потоа долу би можел да има уште еден ехо таг
или друг ехо наречен затвори изберете.
Ова е еден начин да го направи тоа затоа што тоа е буквално ќе направи
се печати од овој стринг кога е извршена преку преведувач PHP,
па резултатот ќе биде HTML.
Ако јас ја зачувате оваа датотека како што е сега
и јас се кандидира PHP concentrations.php
погледне во она што го добив.
Добив овој отворен во близина изберете таг.
>> Ако јас да го направи ова и јас да се спаси овој резултат во датотека,
да речеме, concentrations.html-чекај, тоа изгледа како л помина во текот на другата страна
сега ако не ми се отвори тука concentrations.html гледате Јас имам една валидна HTML датотека.
Е дека вид на чудно?
Ние сме користење на PHP да се создаде HTML, создаде валидна HTML.
Начинот на кој ние си го прави тоа е ние сме само има печати PHP
на HTML дека ние сакаме да се печати.
Ова е буквално како PHP веб-сајтови се работи.
Кога ќе ја посетите веб-сајт кој ви праќа на нешто како
нешто, нешто, нешто dot com коса црта index.php
компјутерот е буквално повикување index.php,
трчање преку преведувач PHP, и она ѓубре излегува
тоа е испраќање назад на прелистувачот и велејќи еј, интернет пребарувач, интерпретираат тоа како HTML.
На убаво нешто е дека тоа може да биде болка постојано да пишуваат ехо, ехо, ехо, ехо
и приложете се што е во наводници, како таков, па ако сакате да напишете
HTML кодот кој нема да бидат статични себе може да го направи тоа како оваа,
стави надвор, затворете го,
а потоа тука можете само стави во внатрешноста на PHP тагови она што го знаете
дека сакате да го програмски произведуваат, а во овој случај тоа е оние опција тагови
кои се болка да произведуваат.
>> На пример, ние би можеле да генерираат илјади опција тагови
правејќи нешто како ова, $ i <1000, i + +
и велејќи ехо опција вредност = $-Whoops, не можам да го направите тоа.
Па, ајде да го даде се обиде и да видиме што се случува.
$ I, а потоа велејќи $ i </ опција.
Наместо да напишеш дека опцијата таг илјада различни времиња
Јас сум со користење на PHP код да го генерира автоматски, програмски.
Вид на Вешта. Да.
Се сеќавам ова е спомната ниту во предавање или Walkthrough,
но она што е разликата помеѓу наводници,
нормално оние кои и овие единствено работите?
Тоа е всушност нешто што го направив погрешно тука дека ќе одам да ви покаже.
На единечен наводник не дозволуваат некои посебни знаци,
така што во еден Цитираниот текст се толкува буквално.
Ако имав \ n внатрешноста на единечен наводник и јас го спаси ова, на пример,
а сега одам долу тука и да ја стартувате-
Упс, каде одам?
Ох, тоа е затоа што сум заборавил долари.
>> Сега, ако јас се отворат-всушност, тука, ние ќе се ослободи од него пишување во датотека.
Ние само ќе го прочита.
Тука ќе видите дека имам овој буквален \ n во низа, како не е вистински нова линија,
и, исто така, наместо всушност interpolating вредноста на оваа променлива
тоа ми даде $ i себе, што е еден вид на болка.
На начин околу ова е да се користи двојни наводници,
а потоа кога користите двојни наводници тоа всушност ќе
правилно интерполирам вредностите на сите овие променливи тука
и исто така, признава овој \ n да биде нова линија дека тоа е
а не \ n.
Со користење на еден од нив е убаво кога имате
карактери кои може да се толкува како специјални карактери бидејќи тогаш не треба да се
избега нив постојано.
Работите може да се добие неуредна, и често начинот на кој јас го направи тоа,
само да се направат нештата лесно, е дека ако јас ќе одам да имаат ништо
HTML како во мојот код ќе се уреди во рамките единечен наводник
и потоа користете го овој сплет оператор
да concatenate променливи внатре
Ова е уште еден начин да се направи тоа
каде што ние го добивме точка што се случува да се поврзете овој е стринг
со овој со овој со ова,
и сега не мора да се избега овие двојни наводници.
Јас не мора да го користите овој човек да избега.
Тие буквално ќе бидат испечатени како двојни наводници, а потоа овој човек овде.
Ова е уште еден начин на мешање сето заедно.
>> [Студентски] Исто така, кога ќе се повтори gettype немаше наводници на сите.
Право, па ехо е вид на специјални, во смисла дека не треба загради.
Вие не треба да имаат наводници значи околу варијабли,
како што е валидна да се каже echo $ i, а тоа ќе интерпретираат тоа како стринг.
Тоа се случува да се направи за кастингот, па ние би можеле да го направите ова, и тоа е валиден исто така, но ние не треба.
Тоа е задолжително.
Во проблем сет оваа недела внимавате многу на овој вид на работи
каде си мешање и за појавување на HTML со PHP
исто како и оваа, и сега ако ние дојдете назад и ние ја извршите оваа
можеме да видиме дека имаме еден куп на опција вредности
дека само што влегов печатени надвор.
Имаме сето ова HTML кој доби генерирана навистина брзо за нас.
Ќе го оставиме тоа како вежба.
Тоа е многу сличен на датотека за читање како да сме направиле порано.
>> Постои concentrations.txt датотека што можете да ги повлечат надолу од CDN,
и можете да го отворите со користење на истите foreach трик што го правевме претходно,
и foreach едноставно мора да ехо опција и приклучок во
соодветните вредности, соодветни клучеви и индекси,
а потоа ќе добиете паѓачкото кои буквално создава
програмски за вас сите на различни концентрации на Харвард.
А корисна работа да се има.
Има многу на конфигурација нешта за оваа задача.
Ако не сте го направиле тоа веќе го направи следниот половина час, час,
некое време вечерва дефинитивно сигурно,
прошетка низ проблем сет спецификации,
да видиме што се случува со поставување на vhosts, локалната домаќин, сите нешта.
Една работа е да се истакне во моментов е дека
во повеќето проблем поставува ние се случува во вашиот Dropbox папка
а потоа симнување на проблемот сет zip датотека и unzipping тоа.
За овој проблем сет не сакате да.
Сакате да одат во овој vhosts директориум.
Ќе сакаат да одат во vhosts и да одат во локалната домаќин директориум во него,
и ова е местото каде што ќе сакаат да ги повлечат надолу на zip датотека,
отпакувате, и се подготвени да одат.
Ќе мора да ги следат чекорите тесно.
>> Ако имате било какви прашања, испратете e-mail, пост на Дискутирај, дојде до работното време.
Благодарение момци. Следната недела ние ќе имаат преглед сесија за квиз.
Уживајте во вашиот последен проблем во собата. Се надевам дека сето тоа оди навистина добро.
[CS50.TV]