[Powered by Google Translate] [Section 8] [Mas kaunti kumportableng] [Nate Hardison] [Harvard University] [Ito ay CS50.] [CS50.TV] Maligayang pagdating sa aming ikalawang sa huling seksyon. Sa linggong ito kami ay upang makipag-usap tungkol sa PHP, at pagkatapos ay sa susunod na linggo gagawin namin ang isang maliit na pagsusuri para sa Quiz 1. Kami ay pagpunta sa magsimula sa pahina 3 ng problema nagtatakda pack, at makikipagtulungan kami sa pamamagitan ng seksyon ng tanong medyo mabilis. Sa pahina 3, magsisimulang namin ang pakikipag-usap tungkol sa pagkakaiba sa pagitan ng C at PHP sa kamalayan na PHP ay isang dynamic na-type na wika, samantalang ang C ay statically-type, at sinuman talagang mabilis tapos anumang coding sa isang bagay tulad ng PHP o Python o Ruby bago, JavaScript? Lubos bago? Okay. Ang lahat ng mga wikang ito na nabanggit ko lang ay ibang-iba mula sa mga wika tulad ng C at C + + at Java sa kamalayan na kapag idedeklara ka ng variable ay hindi mo idedeklara kung ano ang uri ng variable na ito ay, sa gayon sa C tayo ay natigil hindi palaging sabihin ito ay pagpunta sa maging isang int variable, o ito ay pagpunta sa isang pansamantalang trabaho * variable, kung saan gamit ang PHP, sa Python, na may Ruby, na may maraming mga mas modernong mga wika ay hindi mo na kailangang gawin iyon sa lahat. Mo lang ipinapahayag ang iyong variable, at sa kaso ng PHP mo idineklara na ang isang variable sa pamamagitan ng prefixing ito na may $ sign, at pagkatapos ay ang uri ng variable ay natutukoy sa pamamagitan ng anumang halaga ito na may hawak, na uri ng mga cool. Upang i-play sa paligid na ito ng kaunti, mayroon kaming sample PHP code dito mismo in sa pagitan ng mga tag ng pagsisimula at pagtatapos. Ginagamit namin ang ganitong uri ng tulad ng HTML sa kamalayan na Mayroon namin ang mga anggulo bracket dito upang buksan at isara. Makikita mo ang ang mga ito sa HTML. Makikita mo ang parehong uri ng syntax na may XML. Ito ay nagpapahiwatig ng simula ng isang bloke ng PHP. Ito? Php ay partikular sa PHP. Namin isara ang lahat na may?> Pati na rin. Natin buksan ang isang file sa aming appliance gamit ang kahit anong gusto mo. Sa ganitong packet sinasabi nito upang tawagan ang dynamic.php. Sa katotohanan, maaari kang tumawag ito anumang gusto mo, ngunit ang pangalan ng file ay darating at mahalaga mamaya, kaya lamang tandaan anumang tawagan ka. Ako pagpunta upang lumipat sa appliance na ang, at ako pagpunta sa gumawa ng isang direktoryo para sa seksyon 9 Naniniwala akong hindi namin sa ngayon. At kami na pumunta sa seksyon 9, at ako pagpunta sa gamitin ang gedit. Natin makita, gedit, at ako pagpunta sa tumawag sa minahan dynamic.php. Boom. Sa loob dynamic.php, dahil ito ay isang PHP file at Gusto kong patakbuhin ito sa pamamagitan ng interpreter PHP Kailangan ko bang magsimula ng lahat na may mga bukas na tag, kaya ako pagpunta upang simulan ang mga kaagad, bigyan ang aking sarili ng isang maliit na espasyo sa pagitan ng mga tag, at pagkatapos ay ang punto ng pagsasanay na ito ay upang i-play sa paligid na may function na ito na tinatawag gettype, kaya gettype, ito function na dito mismo. Pansinin na mayroong walang salungguhit o puwang o gitling o anumang bagay tulad na naghihiwalay ang 2 salita, makakuha ng at i-type, isang salita lamang sa kabuuan. Ngunit ano ito ay gawin ay kung pumasa ako sa isang variable sa gettype, sabihin $ var o $ x, ito ay sabihin sa akin ang uri ng sa isang format ng pag-debug kung ano ang pangalan ng na uri. Kami ay pagpunta sa eksperimento dito. Sa partikular, kung titingnan mo sa pset spec Mayroon kami ng ilang iba't ibang mga linya ng code dito. Sa unang linya ng code namin initialize ito variable, $ var, katumbas ng 7, at pagkatapos ay mayroon kaming printf linya na ito na nagsasabing hey, printf var ay blangko. Printf ay isa sa maraming mga paraan na maaari naming i-print ang mga bagay sa PHP. Madalas makikita mo ang echo function na ginagamit sa halip ng printf, ngunit printf hindi namin ang lahat ng mga pamilyar sa pagkakaroon ng pag-coding sa C para sa isang habang. Ano ang maaari mong aktwal na gawin ay sabihin makita kung gumagana kopyahin at i-paste ang. Ako pagpunta upang bigyan ito ng isang subukan. Susubukan naming bumalik sa sa appliance. Okay, at doon pumunta kami. At paglalagay ng puwang ay isang maliit na funky, ngunit dito kami. Mayroon kaming ang code na ito sa dito. [Mag-aaral] hindi magandang estilo sa tab na ito? Paumanhin? [Mag-aaral] maginoo sa tab na ito? Karapatan, kaya Sam nagtatanong kung ang convention sa tab na ito o hindi. Karaniwan oo. Sa kasong ito pinili ko na hindi. Totoo lang, makikita mo ang iba't ibang bagay sa iba't ibang mga programmer. PHP ay karaniwang ginagamit madalas sa kumbinasyon na may HTML at iba pang mga wika, at sa gayon minsan sa pag-print ay tumingin ng kaunti funky kung i-indent sa loob ng PHP sa pagsisimula at pagtatapos tag. Ito ay talagang dumedepende. Sa kasong ito kopyahin at i-paste ang hindi ilagay ang mga tab sa para sa akin, ngunit ito tiyak ay, tulad ng sinabi mo, gawin itong mas malinaw. Lahat ng karapatan, kung ikaw ay i-save ang code na ito sa dynamic.php pagkatapos kung ano ang maaari mong gawin ay bumaba sa iyong terminal na window kung nasaan ako karapatan down na dito sa gedit, at upang gawin ang mga katumbas ng makatipon gamit ang gumawa at pagkatapos ay tumatakbo ang iyong code sa C lahat ng mayroon kang gawin kasama ang file ng PHP ay simulan ang PHP interpreter, kung saan ay isang maliit na programa na tinatawag na PHP, at ang argumento na magbibigay sa iyo sa interpreter ay ang file na nais mong i-interpret. Sa kasong ito, dynamic.php. Whoops, kung saan ay ko bang ilagay ito? Oh, ko bang ilagay ito sa seksyon 9, at dito Ako ay. Iyon ang dahilan kung bakit. Ngayon kung nagpatakbo ako na muli nakita namin na sa ang aking unang tawag gettype function na var ay isang integer. Sa susunod na isa var ay isang string, at pagkatapos ay sa ikatlong isang var ay isang boolean. Ano ang mga kawili-wiling tungkol sa kung mag-scroll namin pabalik hanggang makita namin na ito ay uri ng katulad sa mga na nagkaroon kami sa C. Nagkaroon kami ng ints sa C. Namin uri ng nagkaroon string sa C, kaya string ay hindi lubos legit uri sa kamalayan na aming CS50 string ay talagang kung ano? Paumanhin? Missy? [Missy] magpasinda *. Oo, ito magpasinda * ginamit namin. Sa pinakadulo simula ng semestre namin ay gumagamit ng uri ng string, ngunit ito ay talagang isang pansamantalang trabaho * sa ilalim ng hood. I-type lamang kami tinukoy ito, samantalang sa PHP ang mga string na ito ay isang aktwal na uri. Walang higit pa ng ito magpasinda bagay * uri. Makikita mo na maaari naming gawin mas maraming mga bagay na may string mas madali sa PHP kaysa sa magagawa namin sa C, at pagkatapos ay sa wakas, mayroon kaming ito boolean uri, at ang malaking pagkakaiba dito ay na kung mag-scroll namin pabalik pababa nakita namin na ang pangalan sa mga uri ng ngayon integer, string, at boolean sa halip ng int at bool, at bilang pumili ka up ng iba't ibang mga wika ng programming, ipagpalagay na sa ilang mga punto sa iyong buhay, ikaw ay dumating sa contact na may ibang mga mapapansin mo maliit quirks tulad nito kung saan ang C tawag ints integer. Ang ilang mga tumawag ito integer. May iba pang mga tuntunin na kailangan mong patakbuhin sa. Big int nakita natin ngayon sa SQL. Mayroon ding mga numero at pagkatapos bool, boolean, sa lahat ng mga uri ng mga pagkakaiba doon. Ito ay hindi masyado kawili-wiling ngunit ako ngayon upang bigyan ka ng kaunting panahon- kung namin mag-zoom out upang gumana sa pamamagitan ng pagsasanay na ito sa ibaba ng pahina 3 kung saan ito nagtatanong kung anong uri tumutugma sa mga halagang ito dito sa ibaba. Mayroon kaming 3.50. Mayroon kaming karapatan ang bagay na ito dito, na kawili-wili. Hindi namin nakita na bago, kahit na kung ikaw ay sumusunod na kasama sa panayam malamang na malaman kung ano na. Pagkatapos kami ay may ito, kung saan ang uri ng funky. Makilala ka ito. Ano ito sa C? Sam? Ano ang gusto ito magbibigay sa iyo sa C? Ay buksan ang isang file na tinatawag na dynamic.php at gawin itong nababasa. Oo, at kung ano ang magiging ang uri ng variable na namin magtalaga ito? >> File star. Eksakto, gusto naming italaga ito sa isang bituin file. Ito ay lehitimong PHP. Patakbuhin na. Tingnan kung ano ang mangyayari kapag pumasa ka na sa gettype. At pagkatapos suriin din kung ano null ay, kung ano na maaaring sa PHP. Bibigyan kita ng ilang minuto. Maaari mong literal kopyahin at i-paste ang mga halaga na ito sa, at pagkatapos ay gagawin namin ang isang maliit na random na tawag sa iyo at makita kung ano ba kayong. [Mag-aaral] Mayroon akong tanong. << Oo. Sa isa sa mga aralin David sinabi mayroong isang bagay na maaari mong ilagay sa tuktok ng iyong mga file sa gayon ay hindi mo na kailangang i-type sa PHP bawat oras. Ano iyon? Marahil siya ay pakikipag-usap tungkol sa pound na putok, ang hash putok. Ang isang direktiba na kung markahan mo ang iyong file bilang executable pagkatapos kung ano ang ginagawa nito ay kapag execute ang file ito ay sabihin sa shell programa gamitin ang PHP interpreter i-interpret ang mga nilalaman ng file. Ang tanong sa pagiging kung ano ang espesyal na linya na maaaring maisama namin sa tuktok ng aming PHP file hindi upang isama ito linya ng PHP o ang PHP utos na ito sa tuwing gusto naming isagawa ang file? At maaari mong aktwal na gawin ito gamit ang isang grupo ng mga iba't ibang mga file. Tingin ko ito ay depende sa kung saan ang PHP binary ay naka-imbak, ngunit madalas usr / bin / php ay isang magandang lugar upang magsimula. Maaari mong malaman ito nang eksakto sa pamamagitan ng pagpunta muli pababa sa iyong appliance at pag-type kung aling php. Ang kung aling mga utos figure out kapag naka-execute ng binary o isang utos kung saan ang kaukulang file. Na ito ay nagsasabi sa akin na PHP ay talagang aliasing binary file na ito na naka-imbak sa usr / bin, na kung saan maraming ng binaries ng sistema ay naka-install. Halimbawa, kung mag-scroll ko sa itaas, ngayon ko na ilagay ang #! linya sa dito Maaari ba akong mag-scroll pababa, at ang maaari kong subukan upang tumakbo dynamic.php, ngunit nakukuha ko ang error na ito tungkol sa pahintulot na tinanggihan, at kung ano ang nangangahulugan iyon na ang file na ito ay hindi kasalukuyang pagbibigay ng executable pahintulot. Hindi ito minarkahan bilang isang file na may maaaring tumakbo. Kapag pinatakbo mo Magsagawa ng o kumalatong at nakakuha ng isang executable mula dito tagatala ay na smart sapat upang malaman na hey, ako ang pagbuo ng isang executable. Marahil ay gusto mo upang maisagawa ito, kaya ay ito awtomatikong i-configure ang mga pahintulot para sa iyo. Ay hindi ito ang kaso, bagaman, kapag lumikha ka ng isang normal na file mula sa simula, dahilan na karaniwang hindi mo nais na magkaroon ng anumang file sa iyong system executable, upang iyong aktwal na pumunta sa at mano-manong gawin ito. Ang pinakamadaling paraan upang gawin ito ay gamit ang command ng chmod, at chmod + x nagsasabing idagdag ang executable bit dahil doon ang read-bit, ang pagpapawalang bit at ang executable bit, r, w at x, at sinasabi ng chmod + x ay i-on ang bit executable para pagkatapos ang file na aming tinukoy, na sa kasong ito ay dynamic.php. [Mag-aaral] Ay na naka-on para sa lahat? Natin itong tingnan, kaya kung paano ko suriin upang makita ang mga pahintulot? Alam mo ba kung paano Gusto ko suriin upang makita ang mga pahintulot ng isang file? [Hindi marinig na mag-aaral ng tugon] Paumanhin? >> [Mag-aaral] XSD. XSD nagbibigay sa amin ng file sa hack. Naglilista ng lahat ng mga file,-l, ipakita sa akin ang lahat ng mga file sa aking direktoryo uri ng sa kanilang mahaba, masyadong masalita listahan, at iba pa dito makita namin na dynamic.php file na ito huling binago Nobyembre 5 sa 16:21. Ang may-ari ng file na ito ay jharvard. Na ang gumagamit na naka-log in. Na ang gumagamit na ako nagtatrabaho bilang, at kung hindi ka din sa appliance ring nagtatrabaho ka ng gumagamit jharvard. Ikaw sa pangkat ng mga mag-aaral, at ang mga bagay na makikita mo madalas sapat. Maaari naming pumunta sa ng maraming detalye dito, ngunit para sa pinaka-bahagi kung ano ang nais mong upang tumingin sa kapag tumitingin ka upang makita man o hindi ang isang file executable ay pangunahing ng user na nagmamay-ari ng file, may-ari, kaya ito jharvard, at pagkatapos ay mayroon kaming ang mga pahintulot na bit sa paglipas dito sa kaliwa, at ang mga paraan upang mabasa ito ay na ang huling sandali karaniwang ginagamit para sa pagmamarka man o hindi na hindi bababa sa sa kasong ito ito huling sandali ay madalas na nakatakda sa ad upang isaad na ang file ay isang direktoryo at hindi lamang ng isang normal na file. Pagkatapos ang mga sumusunod na 3 bit dito mismo matukoy ang mga pahintulot na ang may-ari ng file ay, kaya sa kasong ito jharvard, bilang ang may-ari ng file, maaari basahin at isulat ang file na ito, ngunit nagkaroon ng gitling nagsasabi na Ang jharvard ay hindi maaaring magsagawa ng ang file na ito. Ang susunod na 3 bit para sa grupo, kaya ito ay ang mga mag-aaral grupo, kaya kung mayroong maramihang mga gumagamit sa aking appliance, at nagkaroon kami ng maraming mga user bilang bahagi ng grupo ng mga mag-aaral, maaari lahat ng mga ito ay basahin ang file na ito, ngunit hindi nila maaaring magsulat ito, at din sinumang iba pa, ang mundo maaari lamang basahin ang file na ito pati na rin. May isang magandang, mahabang writeup tungkol dito, sa gayon ay maaari mong basahin ang online. Sa spec ng set ng problema namin pumunta sa ito nang mas detalyado. [Mag-aaral] ba ang 218 nagre-refer sa mundo? Ang 218-off sa tuktok ng aking ulo ako forgetting, ngunit hindi. Natin makita. Ako blanking sa karapatang iyon ngayon. Bumalik sa kung ano ang namin gawin na ito chmod + x kung saan gusto naming bigyan ng dynamic.php pahintulot executable, at ang tanong sa man o hindi ito ay magbibigay sa pahintulot ng executable sa lahat o lamang jharvard, at maaari naming makita ito sa pamamagitan ng patakbuhin ang mga utos at pag-type ng ls-l, at ngayon nakita namin na ito ay minarkahan bilang executable. Nakikita mo na may isang kulay pagbabago. Ngayon dynamic.php ay nakalista sa berde, at mukhang ang sagot sa tanong na ano, Charlotte? [Charlotte] Tanging jharvard. >> Tanging jharvard, oo. Kung gusto naming upang i-on ang executable bit para sa lahat kung paano namin gawin iyon? Anumang saloobin? >> A + x? Oo, eksakto. Charlotte sinabi ang maaari naming gawin ang chmod ng isang + x ng dynamic.php, at ngayon kung patatakbuhin namin ls-l makita namin na ang mga bit ng executable ay sa katunayan naka-on para sa lahat. At maaari mong aktwal na gawin ang reverse ng ito, kaya mo maaaring i-on ito off para sa lahat gamit ang minus. Ngayon naka-off, at ngayon maaari naming i-on muli para sa jharvard upang maaari naming aktwal na patakbuhin ito ngayon, at ngayon mo makita kapag nagpatakbo namin ang code na ito espesyal na #! linya sa itaas, #! linya, sinabi shell, Sinabi aming terminal hey, kapag ang file na ito ay tumakbo, gamitin ang / usr / bin / php upang bigyang-kahulugan ang file na ito at pagkatapos ay i-print ang output ng. [Hindi marinig na mag-aaral tanong] Sigurado, ipaalam sa akin na mag-scroll back up. Tulad lamang ito. Makikita mo ang lahat ng mga utos magsimula sa pound na ito at pagkatapos ay exclamation point, minsan ay tinatawag na isang shebang, hash putok. [Mag-aaral] Paano namin patakbuhin ito sa php dynamic.php bago namin ito executable? Ang tanong ay kung paano namin patakbuhin ito gamit ang PHP binary habang dynamic.php ay hindi executable? Ito ay sobrang mahalaga dahil ito ay eksakto kung paano ito upang gumana kapag sumulat ka ng problema sa set 7. Karamihan ng mga file sa oras ng PHP ay hindi direktang executable. Ang paraan na gumagana dahil ito ang PHP binary na executable. Interpreter ay ang bagay na pinaandar, at kaya kung ano ang ginagawa ay literal slurping sa kabuuang nilalaman ng aming dynamic.php file at pagpunta linya sa pamamagitan ng linya at execute ang mga utos, kaya ito gamit ang aming PHP file bilang isang listahan ng mga tagubilin. Hindi ito direktang execute ito. Na kung saan sinasabi namin na ang mga file na ito ay kahulugan sa run oras. Run wika ng oras sa halip ng isang bagay na tinutukoy sa ipunin ang oras, hindi inipon na wika tulad ng C. Mayroon bang isang paraan upang makakuha ng isang run wika oras upang kumilos bilang kung ito ay isang makatipon ng oras ng wika, bang kung mayroon kang lahat ng mga tumatakbo tapos sa server sa halip na alam mo kung ano ang ibig sabihin ko? Oo, kaya tanong ay mayroong isang paraan upang makakuha ng patakbuhin ang wika ng oras upang kumilos mas katulad ipunin ang mga uri ng panahon ng mga wika? At doon, Ibig kong sabihin, na isang aktibong lugar ng pananaliksik para sa isang maraming ng mga kumpanyang ito. Naniniwala akong Facebook ay tapos ng maraming trabaho sa PHP at kino-compile ang mga ito, ginagawa itong mas mabilis, na-optimize ito dahil ang kanilang site ay binuo sa PHP. Kung ikaw ay sumusunod na node.js sa lahat, na uri ng isang interpreter ng JavaScript upang magpatakbo ng JavaScript sa labas ng browser, sa labas ng iyong web browser, dahil tradisyonal JavaScript ay lamang tumakbo sa loob ng Firefox o Chrome, at ito ay ginagamit upang gumawa ng mga cool na animation mangyayari sa isang pahina ng web at gawing dynamic ang iyong web page. Na binuo sa maraming trabaho na ang Google ay tapos gumawa ng JavaScript at C + + bukluran, kaya may maraming ng mga aktibong pananaliksik sa makakuha ng mga wikang ito upang makipag-ugnay at i-optimize ang mga ito, pangunahing dahil maraming mga tao ay maaaring code sa PHP at JavaScript dahil ito ng maraming mas madali. Ng maraming nicer. Hindi mo na kailangang payo. Hindi mo na kailangang uri ng lumulutang sa paligid. Gusto nila upang makakuha ang mga benepisyo ng mga makatipon wika ng oras sa lahat ng mga uri ng checking at ang bilis at ang mas mababang paggamit ng memory at ang lahat ng na habang pagpapanatili ng kakayahang umangkop at kadalian ng paggamit ng mga mas bagong mga. Bumalik sa aming orihinal na plano ng pag-atake. Mayroon kaming ilang ng mga tanong na ito dito sa aming hanay ng problema ng spec. Natin pumunta sa pamamagitan ng mga ito ay talagang mabilis, at kami na pumunta sa paligid ng room. Charlotte, ano uri ay 3.50? [Charlotte] Iyon ay isang double. >> Ito ay isang double. Jimmy, ano ito kasunod? >> Isang array. Isang array, kahanga-hangang, at Jared, ano ang fopen? [Jared] ang mapagkukunan. >> Ang mapagkukunan. Na uri ng ng isang bago, hindi star ang isang file, hindi isang file. Mapagkukunan ng uri sa PHP, at ako ng paumanhin, Ella, ang huling null ang? Null. Null, paano ito nabaybay nang sa PHP? >> Ang parehong paraan. Ang parehong paraan, capitals? >> Oo. Oo, lahat ng karapatan. Narito kami, Mayroon kami ng double, Mayroon namin ang isang array, Mayroon namin ang mapagkukunan, at pagkatapos Mayroon kami null. Natin makita ngayon ikaw ay may nakita- sabihin makita, kaya ngayon hulaan ko kung ano ang gusto ko ring gawin ay makuha ang ang web page na ito dito mismo, ito php.net / manu-manong, kaya kung kopyahin ang mga guys na at buksan up ng isang web browser. Ako pagpunta upang makuha ang Chrome, ilagay na. Gusto ko upang ipakita sa iyo na ito hindi lamang dahil maaari naming makipag-usap sa lahat ng araw tungkol sa mga uri at ang lahat ng mga bagay na masaya ngunit sa halip dahil ito ang manu-manong PHP, at may mga ng maraming PHP programmer out doon. May ng maraming PHP website out doon, at bilang isang resulta, nagkaroon ng maraming babasahin sa PHP, at ang manu-manong, ang php.net na ito, ay talagang magandang lugar upang pumunta sa tuwing nagkakaroon ka ng mga tanong tungkol sa kung ano ang pinakamahusay na paraan upang gawin ang X sa PHP o kung ano ang function na hitsura? Basta uri ng pagkuha ng pamilyar sa kung ano ang mukhang dahil makikita mo ang darating dito madalas, ang isang bit para sa problema itakda 7. Kung ikaw ay paggawa ng isang pangwakas na proyekto na gumagamit ng PHP ito ay isang lugar na makikita mo maging mahusay na pamilyar sa. Madalas ang paraan ng tao gawin ito nila gamitin ang Google upang maghanap para sa site, at hindi nila gamitin ang search box na dito sa kanang tuktok, na kung saan ay uri ng maliliit na. Kung ikaw ay Googling sa paligid para sa isang bagay na gawin sa PHP at nakikita mo isa ng manu-manong na link pop up maaari mong karaniwang umasa sa na bilang isang medyo magandang mapagkukunan. Kahanga-hanga, kaya out sa mga uri ng, sa labas ng pag-usisa, kung alin ang hindi namin nakikita? Anumang bagay na hindi namin nakita dito? [Mag-aaral] Resource. >> Nakakita kami ng mapagkukunan sa tawag ng fopen. [Mag-aaral] Objects. >> Objects hindi pa namin nakikita para bang. Callbacks hindi namin nakita. May ilan sa mga palsipikado-uri. Namin talagang lamang nakita integer at i-double. Hindi namin makita ang ilang ng iba, kaya kung namin i-click ang sa integer maaari naming makita Mayroon bang anumang iba pang mga integer na mayroon sila dito? Ang mga ito ay lahat-kaya integer, integer, integer. Ilang mga wika ay may mas malaking integer uri, tulad ng nakita natin sa MySQL ngayon nagkaroon int at pagkatapos malaking int. Cool. Kaya, PHP manu-manong. Natin bumalik sa aming spec ng set ng problema, at magpapadala kami ngayon mag-scroll pababa sa pahina 4. Isa ng mga bagay na mangyayari kapag kumuha ka ng mga wikang ito na hindi na ito static pagta-type, kaya ang mga mga wika na kung saan mayroon kang idedeklara ang uri ng isang harap ng variable up ay mo makakuha ng mga kaso kung saan maaari mong simulan ang pagkakaroon ng mga variable ng mga iba't-ibang uri pakikipag-ugnay sa bawat isa, at PHP ito bagay kung saan ito sinusubukan na gawin kung ano ang isinasaalang-alang nito ang pinaka-makabuluhang bagay na gawin kapag mayroon kang 2 iba't-ibang uri makipag-ugnay sa bawat isa. Halimbawa, kung tiningnan namin sa mga linya ng code dito mismo makikita mo na kami nakakuha ano ang mangyayari kapag namin na subukan at idagdag ang string 1 sa integer 2. Ano ang mangyayari kung namin subukan at magdagdag ng isang string na ay hindi isang numerong halaga ngunit sa halip na aktwal na mga character, CS sa bilang 50? Pagkatapos namin kung mayroong anumang ibang na mangyayari kung saan sa halip ng pagdaragdag ng isang string sa isang bilang namin ang pagdaragdag ng isang bilang sa isang string, at iba pa at iba pa sa punto kung saan kami ay nakakakuha ng ang ilang mga uri ng kakaiba mga bagay-bagay dito mismo kung saan kami nakakuha 7 + totoo. Ano ang ano ba ay na ibig sabihin nito? Kung ikaw guys sige at i-paste ang ilan sa ang code na ito sa iyong appliance. Maaari mong panatilihin ang mga ito sa dynamic.php. Susubukan naming makita kung ano ang mangyayari. [Mag-aaral] lamang gumamit ng print, hindi printf? Oo, kaya makikita mo na naka-print ay din ng isang wastong function para sa pag-print sa PHP. Mayroong maraming iba't ibang mga paraan ng paggawa nito. Susubukan naming makita na may ilang mga halimbawa sa ibang pagkakataon sa sa sandaling simulan namin ang pakikipag-usap tungkol sa mga natatanging problema na kami ay pagpunta sa sumulat at pagkatapos ay ang mga concentrations ng problema na kami ay pagpunta sa sumulat na kahit na mayroon kaming fopen at fclose na madalas na hindi ang pinakasimpleng paraan upang basahin sa mga nilalaman ng isang file. PHP ay may maraming mga C-tulad ng holdovers. [Mag-aaral] Kapag ko bang ilagay sa lahat ng mga 6 ng mga bagay na lamang ako makakuha ng isang numero bilang isang output. [Nate H.] Kapag inilagay mo sa lahat ng mga 6 ng mga bagay na ito. Natin makita ito dahil ito ay posibleng- isang bagay na mga naka-print na mga tawag ay hindi winakasan sa dulo na may mga bagong linya. Mayroong walang bagong linya na naghihiwalay sa bawat isa ng mga tawag sa naka-print, kaya marahil nakakakuha ka ng isang malaking bilang, at ito ay talagang lamang amalgam ng mga bagong mga character ng linya. [Mag-aaral] Okay, paano gumawa ako bang- Well, may mga ng grupo ng mga iba't ibang paraan. Maaari mong manu-manong ilagay sa isang print ng isang bagong linya ng character, isang echo ng isang bagong linya ng character, -print ng bagong linya. [Mag-aaral] Kaya echo ang parehong bagay bilang printf? Printf ay tulad C printf kung saan ka pag-print ng isang format na string. Ka ng pagbibigay ito ang string ng format at pagkatapos ang lahat ng mga placeholder variable. Ito ay madalas na isang bagay na hindi ginagamit- sabihin makita, bilang isang disclaimer, Ako ay hindi gaanong pamilyar sa PHP kaysa Kasama ko ang iba pang mga wika sa web, at kapag ako ay nag-program sa PHP ko karaniwang hindi gamitin ang printf dahil mahanap ko ito nang mas mabilis upang gamitin ang string agaw kakayahan na ito ay may, na gagamitin namin pumunta sa at kukunin ko na ipakita sa iyo sa loob lamang ng pangalawang, samantalang sa C namin uri ng upang gawin ito hacky bagay upang makakuha ng mga ito upang i-print ang maayos. Maaari mong aktwal na ilagay ang mga variable direkta sa mga string sa PHP. Printf ay uri ng masyadong mahaba para sa kung ano ang ko karaniwang gawin. Oo, Ella. [Ella] Sa pangkalahatan kung ikaw ay makakuha parse error na ibig sabihin- tulad ng sa C ito ay hindi magsasabi sa iyo nang eksakto kung saan ang pagkakamali ay at kung ano ito ay, kaya ay na ibig sabihin ng hitsura sa pamamagitan ng iyong buong code at malaman ang mga ito? Ito ay karaniwang mas naka-target kaysa sa. Tingin ko sa kasong iyon ay isang maliit na off, kaya tingin ko sa kasong iyon namin ang nawawalang may semicolon. Ito ay sinusubukan sa kabuluhan ng lahat, kaya tulad ng mga kahulugan na wika, interpreter ay upang subukan at gawin ang lahat upang gumawa ng lahat ng trabaho naaangkop. Makikita mo ang, halimbawa, sa JavaScript bibigyan ka kadalas-line mga pahayag pagtatapos na may semicolon tulad ng ginagawa nila sa PHP, tulad ng ginagawa nila sa C. Sa JavaScript ang ilan ng mga interprete JavaScript sa maraming mga browser ay ilalagay sa semicolons para sa iyo kung mangyari mong nawawala ang mga ito. Makikita nila subukan at tumanggap para sa ilang sloppiness sa iyong bahagi. Iyon ay kung saan maaaring sinusubukan at sinusubukan at sinusubukan upang gumawa ng mga bagay sa trabaho, at pagkatapos ay sa wakas ito sa isang punto kung saan ito sabi ni okay, Hindi ako maaaring gumawa ng mga bagay-bagay sa bailing, at na kung saan makakakuha ka ng isang linya bilang na maaaring tila isang maliit na off mula sa eksaktong lugar. Okay, kaya sabihin pumunta sa pamamagitan ng talagang mabilis. Namin tumigil sa Ella, kaya sabihin pumunta sa Missy, at Missy, ano ang naka-print ng string 1 pati na rin ang bilang 2 magbibigay sa iyo? [Missy] 3. >> 3. Ba na magkaroon ng kahulugan? -Uri-uriin ng? Ba magbibigay sa iyo ng isang numero? Ba magbibigay sa iyo ng isang string? [Missy] Ang numero. >> Ito ay isang numero. Subalit pag-print ito, kaya ito ay upang bigyan ka ng ilang mga uri ng string. Ang isang bagay na maaari naming gawin upang suriin ito kung gagawin namin $ var = 1 + 2 at pagkatapos ay sabihin namin echo ng gettype, kaya namin gamit ang isang ikatlong uri ng pag-print dito. Ngayon ay maaari naming makita kung ano ang mangyayari dito. Narito kung ano ang namin ang nakakuha kami ay nakakuha ng isang integer ng ito. Kahit na namin ang pagdaragdag ng ang string na ito sa isang numero, hindi namin makakuha ng isang string nito, tulad ng Missy sinabi. Namin ng isang integer. Okay, kaya sabihin makita, sa tabi up, Kevin. CS + 50? >> [Kevin] 50. [Nate H.] 50. Ba na magkaroon ng kahulugan? [Kevin] Oo. [Nate H.] Bakit? Bakit ang kabuluhan sa iyo? [Kevin] Dahil lang may string, nagkakaroon ng halaga bilang zero. Oo, mahusay. Uri ng hindi maliwanag sitwasyon, ngunit ito ay handa na upang malaman kung ano ang mangyayari. Stella, kung ano ang susunod na mangyayari na may numerong 1 + string 2? [Stella] 3. >> 3 muli. At sa kasong ito, namin makakuha ng isang string o isang numero? Natin bigyan ito ng isang subukan. Sinuman ay mas mabilis kaysa sa akin ang sagot? Charlotte? Oh, didn't ko okay, sabihin makita, kami ay pagpunta sa gawin ang parehong uri ng bagay kung saan kami nakakuha numero kasama ang isang string, at kami ay pagpunta sa echo ang uri, makita kung ano ang nakukuha namin. Din kami makakuha ng isang integer. Hindi mahalaga kung saan ang isa ay ang string, kung saan ang isa ay ang bilang. Pa rin kami upang makakuha ng isang integer. Pa rin ito pagpunta sa gawin kung ano ang maaari naming asahan. Lahat ng karapatan, kaya Sam, kung ano ang tungkol sa 90 + 9 na bote ng beer sa pader? [Sam] 99. >> 99. Walang mga bote ng beer sa pader, bagaman. Ito ay nagbibigay sa amin ng kaunti sa karagdagang impormasyon tungkol sa kung ano ang nangyayari. [Sam] Kung ikaw ay nakasulat 9 sa titik gusto mong magkaroon ng 90, i-right? [Nate H.] Oo. Ang tanong ay kung gusto naming nakasulat na 9 bilang N-I-N-E namin nakuha ng 99 o 90? Gusto naming makakuha ng 90. Literal Ito ay naghahanap para sa mga digit na mga character. Ito ay hindi sapat na smart upang makilala ang mga salita ng numero at na mga bagay-bagay. Oo. [Mag-aaral] Mayroon bang tulad ng isang bagay bilang typecasting sa PHP? May, at ito eksaktong paraan nais mong gawin ito sa C. Ano ang 10/7, Charlotte? [Charlotte] 1.4285. [Nate H.] Oo, kaya kung ano ang maaaring maging kagulat-gulat tungkol sa? Kung ano ang mangyayari kung ginawa mo ang parehong uri ng bagay sa C, kung ginawa mo 10/7 sa C? [Charlotte] ay ito lamang magbibigay sa iyo depende sa kung paano mo typecasted hulaan ko ay ito bigyan ka lamang ng isang limitadong bilang ng mga digit pagkatapos ng decimal. Oo, kaya isang limitadong bilang ng mga digit pagkatapos ng decimal. Ano pa ang maaaring maging-gusto ito magbibigay sa iyo ng anumang mga digit pagkatapos ng decimal? Madalas na hindi, kaya muli, depende sa kung paano ka typecasting ito maaaring o hindi maaaring-convert ito sa bilang isang lumulutang point. Narito ito ay uri ng magaling na ito ginawa. Ay namin ipinapakita ang likod na ito kapag kami makapagsimula sa paggawa ng ganitong uri ng mga bagay-bagay sa C marahil ito ay ng kaunti pa sa pakiramdam na hindi ito ay pumunta lamang sa 1. At pagkatapos ay sa wakas, Jamie, kung ano ang tungkol sa 7 + totoo? [Jamie] 8. >> 8. Ano ang na ibig sabihin nito? Hulaan ko ito lamang ay nagbibigay ng tunay na ang halaga ng 1. Oo. Ano ang mangyayari kung baguhin namin na sa False? [Mag-aaral] 7. Oo, kaya tandaan kung saan namin makipag-usap tungkol sa mga halaga ng binary, 1 pagiging, 0 pagiging off? Ngayon ay mayroon kaming totoo ay 1, 0 false, at hindi mo maaaring nakikita ito sa mga halimbawa sa C tapos kami na ito nakaraang semestre, ngunit kasaysayan sa bool uri sa C ay hindi isang real uri, kaya ang mga tao na ginagamit ng 0 at 1 sa lugar ng totoo at mali. Ito ay isang paghahayag ng na. Okay, kaya ang isang mahalagang bahagi tungkol sa lahat ng ito na mayroon kami ng mga iba't ibang mga uri. Maaari silang makipag-ugnay sa bawat isa. Maaari silang madalas makipag-ugnay sa bawat isa sa mga paraan na magaling, pati na nakakita kami dito. Magaling sa string 1 at ang bilang 2, idagdag ang mga ito nang sama-sama at makakuha ng 3. Na saysay. Gayunpaman, kapag sumusulat ka website, at lalo na kapag Pinoproseso ka input ng gumagamit, kaya sabihin mo na nakasulat sa isang web form na nangongolekta ng impormasyon mula sa gumagamit at pagkatapos ay pupunta upang iproseso ito sa likod ng pagtatapos, sa server side sa iyong PHP code kung ikaw ay umaasa na halaga na ang gumagamit na nai-type sa at isinumite sa iyong form sa isang integer o lumulutang bilang punto o isang bagay tulad na Kailangan mong tahasang pinalayas ito at pagkatapos ay gawin ang ilang mga uri ng checking. Hindi mo nais na lamang umasa sa system na ito ng uri ng juggling upang gumawa ng mga bagay-ehersisyo ang, lalo na para sa mga kadahilanang pang-seguridad at para sa katabaan ng iyong website. Lamang ng isang bagay na dapat tandaan na sa tuwing ka sa paghawak ng mga data ng form, anumang bagay na nagmumula sa post o ang get superglobals tiyakin na palagi kang patunayan ito at i-convert ito at pumili ng aktor ito. At tulad namin ang pakikipag-usap tungkol sa isang sandali ang nakalipas na typecasting sa PHP ay eksaktong kapareho ng sa C kung saan mayroon kang ang mga panaklong at pagkatapos ay ang uri. Panatilihin na sa isip. Ang isang function na ay darating sa madaling-gamiting kapag ginagawa mo ito ay namin ang ginagamit at ito ay uri ng bilang isang bukod- kami gamit ang gettype function na dito mismo upang malaman ang uri ng variable, at habang ito ay madaling-gamiting para sa pag-debug at upang makita kung ano ang uri ng variable hindi mo nais na gamitin ito, halimbawa, sa isang kondisyon kung saan ka check upang makita kung gettype ng $ var = integer gawin ang isang bagay. Ito ay masama, masama, masamang. Sa halip may mga function na tinatawag ay integer, string, array na gusto mong gamitin sa halip, kaya sa kasong ito kung ano ang Gusto ko nais na gawin sa halip na ito tao dito mismo ay gamitin ang integer var. At madalas na sila ay tinutukoy ay is_ * sa kamalayan na maaari mong palitan ang * na may integer, string, at iba pa, at upang matiyak na talagang mabilis ay ito ay int php. Mukhang maaari mong gawin alinman ay int o may integer pati na rin? Oo, alias, kaya int integer mga alias. Cool. Paano kami paggawa? Natin makuha ang makasabay ng kaunti. Ngayon kami ay pagpunta sa makipag-usap tungkol sa mga array, sa gayon ay maaari mong makita ang sa susunod na bahagi ng spec makipag-usap namin tungkol sa kung paano array sa PHP ay bahagyang naiiba kaysa sa mga ito sa C. Sa katotohanan, hindi sila ang uri ng isang amalgam ng ang array mo na ang ay malaman at mahalin sa C kung saan ang lahat ay ng parehong uri naka-imbak sa sunud-sunod at contiguously sa memorya, at mayroon kang mga numeric mga indeks. Mayroon kang index 0, index 1, index 2, at mag-imbak ka ng mga halaga sa mga indeks ng. Mo ring sa C, kapag ikaw ay sinulat ni Speller, maraming ginawa ang hash talahanayan diskarte, at nakita mo na may nagkaroon kami ng iba't ibang uri ng imbakan na kung saan tayo ay pagma-map isang susi sa isang halaga, kaya kapag sinubukan mo upang mag-imbak ng isang bagay sa hash talahanayan mayroon kang upang tukuyin na nais upang mag-imbak ang mga ito sa isang tiyak na key, at ang key na natukoy ang lokasyon ng ang halaga at kung saan ito ay naka-imbak. Mo na ang uri ng nakuha ang parehong mga konseptong iyon nangyayari sa parehong oras sa isang array PHP, at bilang isang resulta, madalas naming tumawag sa mga nag-uugnay array kung saan kami ay uugnay ng isang susi sa isang halaga. Sa susunod na bahagi makipag-usap namin tungkol sa isang simpleng PHP array kung saan mayroon kaming susi sa a, b, at c, lahat ng mga string, pagma-map sa integer 1, 2, at 3. At maaari kang magkaroon ng mga susi ng mga iba't-ibang uri. Maaari kang magkaroon ng ilang mga key na string, ilang mga susi na integer. Maaari kang magkaroon ng mga halaga ng mga iba't-ibang uri. Maaari kang magkaroon ng isang halaga na isang string, ang isang halaga na isang integer, isang halaga na ang isang bagay o isa pang array, halimbawa, lahat sa ang parehong bagay sa array, na kung saan ay uri ng kakaiba. Hindi mo na kailangang magkaroon ng isang array na Naging isang uri ng elemento sa loob nito. Maaari kang magkaroon ng maraming iba't ibang mga bagay pagpunta sa may. Ang iba pang mga bagay upang tandaan ay na kapag mong makita ang isang bagay tulad nito sa iyong code, na wastong PHP upang idedeklara isang array tulad ng ito, 0, 1, 2, 3, 4, 5, na ipinapahayag ng isang nasimulan $ arr ito array. Ngunit ano ang aktwal na nakakakuha ka ng sa ilalim ng hood ito uri ng implicit henerasyon ng mga key kung saan namin Mayroon 0 hanggang 0, 1 sa 1, 2 hanggang 2, 3 sa 3. At ito ay lumiliko out na kahit na mayroon kang isang array tulad ng tao na ito up dito kung saan mayroon kang a, b at c bilang ang mga pindutan ng at pagkatapos ay simulan mo gamit ang array paraan ng push upang simulan ang paggamit ng ito array tulad ng isang stack, sa gayon ay maaari mong makita na ang bagay na ito array, array na ito ay talagang nagiging overload. Maaari naming gamitin ang mga ito bilang isang array. Maaari naming gamitin ang mga ito bilang isang hash table. Maaari naming gamitin ang mga ito bilang isang stack. Kapag sinimulan mo ang pagtulak ng mga bagay papunta sa array na ito ang unang bagay na itulak papuntang ito ay index 0 at pagkatapos ay i-index 1 at index 2. Maaari kang makakuha ng ganitong uri ng implicit na henerasyon ng mga susi maliban kung tinukoy mo ang mga ito nang tahasan. Ang paraan kung paano mo tukuyin ang mga key tahasang, siyempre, ay sa pamamagitan ng paggamit ng bracket pagtatanda na ito, na ay katulad sa mga array maliban sa halip na lamang ang nagpapahintulot sa integer mga indeks sa dito, ngayon pinapayagan namin ang anumang. Kung nais mo ang iyong key sa isang string, na nais mong tukuyin ang mga ito tulad nito. Kung gusto mo ito sa isang int, tinukoy mo ito may int na nais mong gamitin. Tanong na ngayon? Isa ng magaling na mga bagay tungkol sa ideya na ito ay na maaari ka lamang sakaling magkaroon ng isang halaga na naka-imbak sa isang partikular na key. Kung pumunta namin pabalik sa aming appliance ipaalam sa akin tanggalin ang ilang ng mga bagay na ito. At sabihin nating ko simulan ang isang array 0, 1, 2, tapos. Kung alam ko na ngayon na, halimbawa, kung echo ko $ arr [0] Ako pagpunta upang makakuha ng 0 ang halaga na naka-print ang, at dahil doon ay maaari lamang sakaling maging isang halaga na nakaimbak para sa isang partikular na key kung imbak ng ko ng isang bagay sa $ arr [0], sabihin ng, Alam ko kapag echo ko $ arr [0] muli Hindi ako pagpunta upang makakuha ng 0 print tulad ng dati. Lamang ako pagpunta upang makakuha ng. Kaya ito ay isa lamang sinasabi na hindi ko maaaring magkaroon ng $ arr [0] pag-iimbak ng 2 iba't ibang mga halaga. Hindi ito maaaring iimbak ng parehong 0 at ang string ng, tulad ng ito literal pumapalit kung ano ang sa $ arr [0] dati. Ang dahilan dalhin ko up na ito ay patakbuhin ito, tingnan kung ano ang mangyayari. Tingnan dito na Nakatanggap ako 0-print at pagkatapos pababa dito. Walang bagong linya doon dahil ako ay tamad at ay hindi ilagay na in Ano ang mga cool na tungkol sa ay na maaari naming gamitin ito bilang isang paraan upang makuha ang ideya na ito ng isang hanay kung saan hindi namin maaaring magkaroon ng maramihang mga susi sa loob ng isang array. Hindi namin ay may magkaparehong mga susi sa loob ng isang array. Hindi ko maaaring magkaroon ng key na 0 at halaga 1 at key 0 at ang halaga ng o key 0 at tunay na halaga. Ang mga pindutan ng lahat na may lamang ng 1 key sa array. Kahit na maaari kang magkaroon ng parehong halaga na naka-imbak maraming beses sa array sa ilalim ng iba't ibang mga susi hindi posibleng magkakahawig na mga key nang maraming beses sa iyong PHP array. Kung titingnan namin sa susunod na problema, unique.php, kung saan nais namin upang buksan up ng isang PHP file na naglalaman ng isang listahan ng mga string, isang string sa bawat linya, at gusto naming upang mahanap ang lahat ng mga natatanging string sa file na iyon lahat kami ay may sa gawin ay gamitin ang isa sa mga PHP array at gamitin ang mga string sa file bilang susi sa array na ito at patuloy na ina-update ang aming array bilang imbak ng namin mga bagong key. Bilang nabasa na namin ang bawat linya ng file maaari kaming mag-imbak ang mga ito sa array, at sa dulo magkakaroon kami ng aming mga susi sa aming array lahat ng natatanging string sa loob ng file. Ba na magkaroon ng kahulugan? Natin makita kung paano ito gumagana. Kami ay pagpunta sa buksan up, ayon sa spec, isang bagong file na tinatawag na unique.php. Buksan. Oops, paumanhin, bagong file. Kami ay pagpunta upang simulan ito na may parehong simula at wakas na mga tag. Kami ay pagpunta sa i-save ang mga ito sa seksyon 9, at kami ay pagpunta sa tumawag ito unique.php. Okay, ngayon mag-zoom in. Ang ideya dito ay buksan ang isang file, basahin sa linya ng file sa pamamagitan ng linya. Para sa bawat linya sa file magpapadala kami ng isang array kung saan mayroon kaming  linya ng aming key. At pagkatapos ay kapag makuha namin sa dulo dito Ng susi ng $ arr ang mga natatanging mga linya mula sa file dahil alam namin na kung ko bang ilagay ang linya na ito array nang maraming beses ay ito ay patuloy na-override ang lumang halaga, at maaaring aktwal na namin ilagay ang array linya sa bilang mismo tulad na. Ito ay uri ng kakaiba. Namin ang pag-iimbak muli ang parehong key halaga ng pares paulit-ulit at mahigit, ngunit dahil kami ay katiyakan na magkakaroon lamang ng 1 key tinatawag na linya kaya kung mayroon kaming isang file na nagsasabing isang file ng mga noises ng hayop at mayroon itong mga damit, tela, ngiyaw, ngiyaw, unga, unga, at sa bawat oras na binabasa namin ang isang hayop ingay out tulad ng damit at hindi na namin iimbak ito sa aming array makuha namin tela, at pagkatapos ay ang pangalawang pagkakataon imbak ng namin ang mga hibla na pahalang ito patungan ang unang pagkakataon na naka-imbak namin ito. Sa dulo lamang namin ng isang entry sa array para sa bawat isa sa noises ng hayop sa aming noises file hayop. Ka ba guys huwag mag-tiwala na maaari mong matugunan ang pagbubukas ng isang file sa PHP? Ang isang paraan upang gawin ito sabihin pumunta sa ito mabilis-isang paraan upang gawin ito ay may fopen, tulad ng nakita natin mas maaga. Maaari mong fopen some_file.txt. Maaari mong buksan ang mga ito sa basahin mode, tulad ng sa C. Iyon ay isang perpektong mahusay na paraan upang gawin ito. Ka ring para sa pagbabasa sa linya ng file sa pamamagitan ng linya ang parehong pag-andar, marami sa kanila, na ginawa mo sa C. Mayroon kang fgets. Mayroon kang feof, bagaman hindi namin gusto ang paggamit ng na dahil, tandaan, na hindi mahusay sa C. Maaari mong gawin ito sa parehong paraan, ngunit dito ay isang talagang cool na bagay. Paumanhin, hindi ko gusto mong gawin $ file, ngunit may isang function na tinatawag na file sa PHP, at ang function na ito dito mismo ay cool na dahil ito ay bumabasa ang buong nilalaman ng file na iyong tinukoy, kaya some_file.txt, bumabasa ang buong nilalaman ng file na ito sa isang array at pagkatapos ay nagbibigay-daan sa iyo upang umulit sa paglipas ng mga ito, na medyo nakakatawang. Kung pumunta kami, halimbawa, upang aming web browser at inaasahan naming sa Google para sa PHP file maaari mong makita dito na ang sabi ng aming manu-manong file na bumabasa ng buong file sa isang array, at maaari naming file_get_contents upang ibalik ang mga nilalaman ng isang file bilang isang string, ngunit karaniwang lamang pagkuha ito bilang isang array talagang magaling dahil kung ano ang ginagawa nito ito Pinaghihiwa-up ito sa gayon ang bawat elemento sa array ay isang linya ng file, kaya kung tinitingnan namin ang file 0, na ang unang linya ng file. File 1, ang pangalawang linya, file 2, ikatlong linya, at iba pa at iba pa. Hindi magiging magaling kung na ang lahat ng mayroon kang gawin sa C? Medyo nakakatawang. David ay nagpakita ito sa panayam, at idyoma na ipinakita niya ay na sa karagdagan sa aming mga pamantayan para sa loop-in PHP nagkaroon kami na para sa ($ i = 0; i <10; i + +), at maaari mong gawin ito sa PHP masyadong, parehong bagay- din namin ang cool na bumuo ng tinatawag na foreach. Foreach ay talagang madaling gamiting kapag iterating sa array o mga data kaayusan dahil ito ay nagbibigay-daan sa iyo upang hilahin ang bawat elemento ng array nang hindi na kinakailangang upang mano-manong gawin ang pag-i-index ang iyong sarili, nang hindi na kinakailangang upang mano-manong lumikha ng isang index variable, dagdagan ang mga ito, hilahin ang halaga sa array sa puntong iyon, dahil na isang napaka-karaniwang bagay na gawin. Maaaring nagawa na tonelada ng mga beses kapag ikaw ay paggawa ng C bagay sa ibabaw ng semestre, kaya may ganitong foreach Maaari namin ng loop sa ibabaw array file na ito, at syntax ay na gusto namin sa ngayon loop sa paglipas ng array na ito at tukuyin na ang mga variable na kami ay pagpunta upang gamitin upang mag-imbak elemento ng ito array sa lokal, lokal na ang saklaw ng ito foreach loop, ay kami ay pagpunta sa tumawag ito linya. Kung ito ay isang file ng mga salita lamang at may isang salita sa isang linya kami maaaring tumawag ito salita pati na rin, talaga lang mo bigyan ito ng isang pangalan, kahit anong gusto mong tawagan ito, at pagkatapos ay sa loob ng loop maaari mong gawin ang anumang gusto mong may ganitong variable linya. Kung ito ay hindi sapat upang makuha ang halaga ng array at gusto mo ring upang makakuha ng index kasama dito, maaari mong tukuyin ang isang pangalan para sa index pati na rin ang halaga, at ngayon ay mayroon kang access sa 2 variable. Mayroon kang $ i at line kung saan $ i index sa array, at linya ay ang linya na iyong nakuha mula sa file. Halimbawa, kung gusto naming upang i-print ang echo linya 0 ng file bilang na ito, maaari naming gawin ito tulad ng ito, "Linya $ i ng file ay $ linya," at dito ay isang bagay na rin naming hindi pa nakikita alinman kung saan ko na lubos na nilaktawan sa paglipas ng ito buong% s% d negosyo na nagkaroon kami upang harapin ang sa C, at sa halip nawala ko na diretso sa pagsusulat ng mga variable sa linya sa aking string. Ito ay tinatawag na variable agaw, string agaw kung saan ka Pagpupuno mga variable sa, at ang PHP interpreter ang smart sapat na kapag ito ay pagbabasa sa pamamagitan ng isang string na nagsisimula sa double quote- hindi single quote, sa iisang naka-quote na string ay hindi mo maaaring gawin ito- ngunit may double naka-quote na string tulad ng bumabasa ng ito sa pamamagitan ng ito ay naghahanap para sa mga variable. Ito ay pangangaso iyon, at kung ito ay nakikita ng mga variable ay ang halaga ng variable at bagay-bagay na ang mga ito sa string kung maaari itong i-convert ito sa isang string na representasyon, na medyo nakakatawang. Sa ngayon, sabihin magkomento ang kabuuan ng lahat, i-save ito, at kung ano ang maaari naming gawin ngayon ay maaari naming buksan ang isang file na maaari naming tumawag some_file.txt-Hayaan ang 's lumikha ng isang bagong file at maaari naming ilagay sa isang bungkos ng mga walang katuturang bagay in dito upang subukan ang lahat ang, i-save ito, tawagan itong some_file.txt, bilang ako ginagawa dito sa tuktok, at ngayon kung ako mag-zoom out lamang upang matiyak na ang lahat ng bagay ay sa parehong directory- Mukhang mayroon akong unique.php at some_file.txt sa parehong directory. Kung nagpatakbo ako ng php unique.php makita kung paano ito ng mga Kopya bawat linya sa aking file at kung ano ang linya sa? Na medyo malakas na, i-right? Hanapin, kinuha ito ng 3 linya ng code upang buksan ang isang file. Well, 4 na linya ng code. Hindi ko maaaring bilangin ngayon, malinaw. Ngunit talagang may 2 kawili-wiling mga linya ng code, dahil ang iba pang mga 2 kulot tirante, ngunit sa ganito karami code namin ay upang buksan ang isang file, umulit sa pamamagitan nito, hilahin ang numero ng linya at ang line mismo at i-print ito. Cool na bagay. Charlotte. [Charlotte] Mayroon akong tanong tungkol sa syntax. Kaya foreach ng mga deal sa bawat isang linya ng file na buksan mo, at pagkatapos ay kapag gusto mong gawin ang mga bagay sa bawat solong linya mo lamang gawin ito bilang at pagkatapos ay iugnay ang halaga. [Nate H.] Ano ang maaari mong gawin dito mismo ang tanong ay ang foreach may gawin gamit ang array, kaya ang foreach syntax ay talagang foreach, at paunawa na ang walang espasyo o anumang bagay sa pagitan ng at sa bawat. Mayroon silang pumunta sa tabi mismo sa bawat isa, at pagkatapos ay tumatagal ito sa isang array, at pagkatapos ay mayroon kang ang iba pang mga keyword na tinatawag na bilang na ay doon, at pagkatapos matapos ang bilang maaari mong alinman sa ilagay ang isang pangalan ng variable, sa kung saan ka na kumukuha ang mga halaga ng array, hindi ang mga indeks, o kung gagawin mo ito bilang namin na nakasulat sa ibaba sa makuha mo ang mga susi at ang mga halaga. Foreach elemento ng array o pares ng array bilang isinara sa pamamagitan ng susi sa halaga o bilang lamang halaga. Depende sa kung ano ang kailangan mong, kung hindi mo kailangan ang mga key, maaari kang pumunta sa ang halaga. Kung gusto mong ang mga key, maaari kang pumunta sa kanila. [Charlotte] ko rin natanto namin kailanman ipinahayag i o linya. Paano ito kahit na malaman kung ano ang mga ito? [Nate H.] Ano ang gagawin mo bang sabihin sa pamamagitan ng ipinapahayag? [Charlotte] namin kailanman sinabi sa kanila kung ano ang i o linya paraan. [Nate H.] hindi namin sinabi ang computer kung ano ang i o linya ay nangangahulugan sa mga tuntunin ng [Charlotte] Na sila ay na-index o na they're- [Nate H.] hindi namin sinabi na ito ay dapat na ang index o ang susi at ang halaga, at na dahil na ang PHP interpreter. Ito ay nagsisilbing deklarasyon at sabi okay, ang key ay magiging variable na tinatawag i naka-imbak sa isang variable na tinatawag na i. Halaga ay pagpunta sa naka-imbak sa isang variable na tinatawag na linya, kaya ito ay nagsisilbing bilang ang deklarasyon ng mga variable na ito at sabi ni $ i isang susi, at $ linya ay isang halaga. Oo, Ella. [Ella] Kung ang mga key ay hindi nagawa ayon sa bilang paano ang magpasya anong pagkakasunud-sunod na ito upang i-print ang lahat? Ay ito ng ang pagkakasunod-sunod na ito ay ipinasok sa? [Nate H.] natin bigyan ito ng isang subukan. Natin lumikha ng isang variable na tinatawag arr, at maaari naming gawin ang isang napupunta sa 7. Sabihin nating 0 napupunta sa isa pang array sa 1, 2, o mansanas. Sabihin nating 7 napupunta sa 1, b napupunta sa 2, at 3 napupunta sa 4. Ito ay uri ng isang nakatutuwang naghahanap Halimbawa dahil kami ay paghahalo up string at integer sa buong lugar. Mayroong hindi tunay na upang array na ito. Ibig kong sabihin, maaari naming order ng lahat sa alpabetikong pagkakasunod-sunod sa pamamagitan ng ang mga key. Maaari naming i-order ang lahat ayon sa alpabeto sa pamamagitan ng halaga. Maaari naming subukang at isinasaalang-alang na ang ilang mga string, ang ilang mga ints, at maaari naming subukang at i-convert ang lahat ng mga ito sa parehong uri at makita kung ano ang mangyayari, o maaari naming isaalang-alang ang mga ito sa ang halaga na kung saan namin na ipinasok ang mga iyon kung saan inilalagay namin ang tao na ito sa unang, ito tao sa ikalawang, ang tao na ito sa ikatlong, ang tao na ito sa ika-apat, at iba pa. Natin makita kung ano ang mangyayari kapag nagpatakbo namin ang code na ito. Kung mag-scroll namin down at gawin ang parehong uri ng bagay, at dito ay hindi ito pag-print ang mga bagong linya. Kapag basahin ito ng mga bagay ng file ito ay kabilang ang mga bagong linya sa ang mga halaga, na kung bakit ito print mo mabuti, kung saan dito ito ay hindi, kaya na ang dahilan kung bakit ang lahat ay sama-sama smushed. Natin idagdag sa na ang mga bagong linya upang gumawa ng mga bagay magaling. Natin muling patakbuhin ang mga ito, at kaya dito tingnan kung ano ang nangyari. -Print ito ang lahat sa pagkakasunud-sunod kung saan inilalagay namin ito sa array. Ito ay mapanatili order sa pakiramdam na. Pagpunta pabalik ang problemang ito ng mga walang-kapares na kung saan nais namin upang umulit sa isang file, at bibigyan namin ito some_file.txt, at kami ay umulit sa paglipas ng mga ito tulad nito. Sinabi namin na gusto naming gamitin ang isang array upang matiyak na gusto namin nakuha ang lahat ng mga natatanging linya ng doon, at hindi namin maaaring gawin na talagang madali sa pamamagitan ng lamang ang pag-iimbak sa isang array na namin siyempre ay ipinapahayag sa labas ng saklaw ng isang loop, at sinabi namin na kung ginamit namin ang mga linya sa file bilang susi sa aming array kung ipinasok namin ng duplicate na linya gusto namin override ang nakaraang halaga. Hindi ito kailanman posible 2 key na ay magkapareho sa parehong array. Maaari naming gawin lamang na. Susubukan naming mapupuksa ng echo pahayag na ito sa dito. Narito kami ay itinatago ang linya sa file sa aming array gamitin ang sarili nito bilang ang susi. Wala dito, at lumiliko ito na hindi namin kailangan ang key na ito. Hindi namin kailangan na i variable. Sa puntong ito kung namin na gawin ang isa pang foreach loop at kami ay sa loop sa paglipas ng bawat arr at linya ngayon kung echo-oops namin, paumanhin. Hindi namin maaaring gamitin ang kuwit. Mayroon kaming upang gamitin ang mga ito bilang keyword. Ngayon kung echo namin linya ang dapat naming makakuha ng lahat ng natatanging mga salita sa file. Kung kami hanggang sa some_file.txt, at sabihin nating ginagawa namin mansanas, saging, mansanas, mansanas, saging, kung kami ay pag-print ang lahat ng mga natatanging mga salita sa file na ito ay dapat lamang namin mansanas at saging sa i-print. Kung naming i-save ang, ngayon dito magpapadala kami mag-zoom in muli, php unique.php, at salamat-da. Matagumpay naming uniqued file. Ang huling bahagi ng ang problemang ito na humihiling sa iyo upang pag-uri-uriin ang array na ito bago na-print mo ito dahil sa simpleng halimbawa na ito na tapos kami na kami ay masuwerteng sa kamalayan na ang file- ginawa namin ito contrived halimbawa sa apples and bananas. Na ito ay pinagsunod-sunod. Ngunit gamit ang simpleng function na-uri-uriin maaari mong pag-uri-uriin ang isang array, na medyo nakakatawang. Ang huling bagay na nais kong makipag-usap sa iyo guys tungkol talagang mabilis na ang ganitong uri ng PHP ay lahat ng mahusay at magandang, at ito ay sobrang madaling gamiting malaman kung paano gawin kung sakaling kailanganin mong gawin ng kaunti, mabilis na mga bagay sa programa. Halimbawa, kung kailangan ko upang magsulat ng isang programa na, sabihin nating, Inilalagay ng lahat sa mga seksyon na hindi ako pagpunta sa pumunta at isulat ang mga ito sa C. Ito ay pagpunta sa mahaba. Ito ay pagpunta sa uri ng isang sakit, lalo na kung may mga file kasangkot, tulad ng guys na nakikita. Kaya magaling na may ganito karami code dito mismo nagawa naming punitin sa pamamagitan ng isang file, hilahin ang lahat ng mga natatanging halaga at i-print ang mga ito pabalik out. Gayunpaman, para sa iyong mga asignatura, para sa iyong mga proyekto, kung ikaw ay pagbuo ng mga website na may PHP ay ang kapangyarihan na kami ay tumatakbo ang aming PHP file sa pamamagitan ng interpreter, at ang interpreter ang pinoproseso ang lahat sa loob ng mga tag PHP, umaalis sa lahat ng iba pa hindi nagalaw at pagsigam ang mga resulta. Maaari naming gawin ito upang bumuo ng HTML programming. Ngayon, kung pumunta namin pabalik sa spec, ang huling problema sa spec -uusap tungkol sa ideya ng mga concentrations at ang paglikha ng isang drop-down menu, kung saan mo maaaring o hindi maaaring gusto mong gawin, depende sa kung ano ang iyong panghuling proyekto ay ginagawa, na ay nagbibigay-daan sa user na pumili mula sa isang listahan ng lahat ng posibleng mga concentrations kanilang isang konsentrasyon. Ngayon, ito ay uri ng isang sakit i-type ito at may gawin ang lahat ng ito nang manu-mano, lalo na kapag nagkakaproblema ka sa upang matiyak na na mayroon ka ng lahat ng mga anggulo bracket sa tamang lugar at ang lahat ng mga quote sa tamang lugar, ito na may PHP maaari mong gawin ito sa programa, at maaari mong gawin ito talagang mabilis. Natin makita kung paano gawin ito. Kami ay pagpunta upang buksan ang isang bagong file. Kami ay pagpunta sa ilagay sa aming mga PHP tag. Kami ay pagpunta sa tumawag ito concentrations.php, at ngayon kapag ginagawa mo ito, uri ng isang magandang bagay upang isipin ang tungkol kapag sinusubukan mong i-ihalo at tumutugma sa iyong PHP at ang iyong HTML ay ang pag-uunawa, okay, ano ang bahagi na gusto kong programa makabuo ng? Ano ang bahagi na maaari ko programa makabuo ng? Ito ay totoo na maaari mong gawin ang lahat ng iyong HTML sa loob ng PHP mga bloke. Maaari mong echo ang lahat ng HTML bilang mga string. Halimbawa, kung nais kong magsimula ng paggawa ng mga piling mga tag sa loob ng PHP Maaari kong sabihin echo, sabihin piliin ang pangalan = konsentrasyon, at pagkatapos ay pababa sa ibaba maaari ba akong magkaroon ng isa pang echo tag o echo isa pang tinatawag na malapit sa piliin. Ito ay isang paraan upang gawin ito dahil kung ano ang Literal na gawin ay i-print ang string na ito kapag ito ay tumatakbo sa pamamagitan ng interpreter PHP, kaya resulta ang HTML. Kung ko bang i-save ang file bilang ngayon at nagpatakbo ako ng php concentrations.php tingnan kung ano ang nakuha ko. Nakatanggap ako ito bukas malapit piliin ang tag. Kung ako ay upang gawin ito at ako ay upang i-save ang resulta sa isang file, sabihin, concentrations.html-paghihintay, tinitingnan nito tulad ng l ay nawala sa sa iba pang mga bahagi ngayon kung buksan ko dito concentrations.html mo ang mayroon akong isang wastong file na HTML. Na uri ng kakaiba? Kami ay gamit ang PHP upang lumikha ng HTML, lumikha ng wastong HTML. Ang paraan na ginagawa namin ito ay lamang namin ang pagkakaroon ng naka-print na PHP ang HTML na gusto namin ito upang i-print. Ito ay literal kung gaano PHP website ay nagtatrabaho. Kapag binisita mo ang isang website na nagpapadala ka sa isang bagay tulad ng isang bagay, isang bagay, isang bagay na dot com slash index.php computer Literal na pagtawag up index.php, tumatakbo ito sa pamamagitan ng interpreter PHP, at anumang junk ay ang ito pagpapadala ng pabalik sa browser at sinasabi hey, browser, bigyang-kahulugan ito bilang HTML. Ang magaling na bagay ay na maaari itong maging isang sakit sa patuloy na magsulat echo, echo, echo, echo at ilakip lahat sa mga quote tulad nito, kaya kung nais mong magsulat ang HTML na static ang iyong sarili maaari mong gawin ang mga ito tulad nito, ilagay ang mga ito sa labas, isara ang mga ito, at pagkatapos dito mo lamang ilagay sa loob ng PHP tag na kung saan alam mo gusto mong bumuo ng programa, at sa kasong ito ang mga pagpipilian sa tag ay isang sakit upang bumuo ng. Halimbawa, maaari kaming bumuo ng isang libong tag pagpipilian sa pamamagitan ng paggawa ng isang bagay na tulad nito, $ i <1000, i + + at sinasabi ang halaga ng echo pagpipiliang = $-Whoops, hindi ako makapag gawin iyon. Well, sabihin bigyan ito ng isang subukan at makita kung ano ang mangyayari. $ I at pagkatapos ay sinasabi $ i