[Powered by Google Translate] [Deel 8] [minder comfortabel] [Nate Hardison] [Harvard University] [Dit is CS50.] [CS50.TV] Welkom op onze voorlaatste hoofdstuk. In deze week gaan we praten over PHP, en dan volgende week we doen een beetje beoordeling voor Quiz 1. We gaan om te beginnen op pagina 3 van het probleem stelt pack, en wij werken via de rubriek van vragen vrij snel. Op pagina 3, beginnen we het over dit verschil tussen C en PHP in die zin dat PHP een dynamisch getypeerde taal terwijl C is statisch getypt, en heeft iemand echt snel gedaan een codering in iets als PHP of Python of Ruby eerder JavaScript? Totaal nieuw? Oke. Al deze talen die ik net noemde zijn zeer verschillend van talen zoals C en C + + en Java in de zin dat wanneer u een variabele declareren je hoeft niet te verklaren wat voor soort variabele het is, dus in C we hadden pech hebt dat u altijd zeggen dit gaat om een ​​int variabele te zijn, of dit gaat om een ​​char * variabele, terwijl met PHP, met Python, met Ruby, met veel van de volgende moderne talen die u niet hoeft te dat te doen. U zojuist verklaart de variabele en in het geval van PHP je dat het een variabele declareren door voor aan het met een $-teken, en het type van de variabele wordt bepaald door welke waarde het belemmert, dat is wel cool. Om te spelen met deze een beetje, we hebben monster PHP-code hier tussen begin en eind tags. We gebruiken dit soort van HTML in de zin dat we hebben deze punthaken hier om te openen en te sluiten. Je ziet dit met HTML. Je ziet dezelfde soort syntax met XML ook. Dit geeft het begin van een blok PHP. Dit? Php is specifiek voor PHP. We sluiten alles met een?> Ook. Laten we het openen van een bestand in onze apparaat met behulp van wat je wilt. In dit pakket het zegt te bellen dynamic.php. In werkelijkheid kun je het noemen wat je wilt, maar de bestandsnaam zal komen en later van belang zijn, dus vergeet hoe je het noemen. Ik ga om over te schakelen van het apparaat, en ik ga naar een map te maken voor hoofdstuk 9 Ik geloof dat we op nu. En we gaan in artikel 9, en ik ga gedit gebruiken. Laten we eens kijken, gedit, en ik ga de mijne dynamic.php bellen. Boom. Binnen dynamic.php, want dit is een PHP-bestand en ik wil deze lopen door de PHP-interpreter Ik moet alles beginnen met die open-tags, dus ik ga aan die direct aan de slag, geef mezelf een beetje ruimte tussen de tags, en dan de punt van deze oefening was om te rotzooien met deze functie genaamd gettype, dus gettype, deze functie hier. Merk op dat er geen is of ruimte of koppelteken of iets dergelijks underscore het scheiden van de 2 woorden, te krijgen en te typen, slechts een woord helemaal. Maar wat dit zal doen, is als ik langs in een variabele te gettype, zeggen $ var of $ x, dit zal mij vertellen soort in een debugging-formaat wat de naam van dat type is. We gaan hier experimenteren. In het bijzonder, als je kijkt terug op de PSET spec we hebben een paar verschillende regels code hier. In de eerste regel van de code initialiseren we deze variabele, $ var, gelijk aan 7, en dan hebben we dit printf lijn dat hey zegt: printf var leeg. Printf is een van de vele manieren waarop we dingen kunnen afdrukken in PHP. Vaak zie je de echo functie in plaats van printf gebruikt, maar printf we zijn allemaal bekend met te zijn codering in C voor een tijdje. Wat kun je eigenlijk doen is laten we eens kijken of kopiëren en plakken werkt. Ik ga dit eens te proberen. We zullen terug te gaan naar het apparaat. Oke, en daar gaan we. En afstand is een beetje funky, maar hier gaan we. We hebben deze code hier. [Student] Is het niet een goede stijl naar het tabblad het? Sorry? [Student] Is het gebruikelijk om het tabblad het? Juist, dus Sam vraagt ​​of het verdrag tabblad of niet. Typisch ja. In dit geval heb ik ervoor gekozen niet te doen. Eerlijk gezegd, zie je verschillende dingen tussen verschillende programmeurs. PHP wordt meestal vaak gebruikt in combinatie met HTML en andere talen, en dus soms het afdrukken wordt er een beetje funky als je streepje binnen PHP start en eind tags. Het hangt echt. In dit geval is de kopiëren en plakken niet plak de tabs in voor mij, maar het is zeker, zoals je zei, het duidelijker. Goed, als u bespaart deze code in dynamic.php dan wat je kunt doen is naar beneden gekomen om uw terminal venster waar ik gelijk heb hier beneden in gedit, en doen het equivalent van compile met behulp van te maken en dan het runnen van uw code in C alles wat je hoeft te doen met de PHP-bestand is het opstarten van de PHP-interpreter, dat is een klein programma genaamd PHP, en het argument geef je aan de interpreter is het bestand dat u wilt interpreteren. In dit geval dynamic.php. Oeps, ik heb waar het ook alweer? Oh, ik zet het in artikel 9, en hier ben ik. Dat is waarom. Nu als ik zonder dat opnieuw zien we dat in mijn eerste gettype functie-aanroep var een geheel getal. In de volgende var een string is, en vervolgens in de derde var een boolean. Wat interessant aan is, is als we schuiven een back-up te zien we dat Dit zijn types vergelijkbaar met degenen die we hadden in C. We hadden ints in C. We hadden soort van strings in C, dus snaren waren niet een totaal legit type in de zin dat onze CS50 reeks was echt wat? Sorry? Missy? [Missy] Char *. Ja, het was dit char * we gebruikten. Helemaal aan het begin van het semester waren we met behulp van de string type, maar het was echt een char * onder de motorkap. We hebben net het type gedefinieerd is, terwijl in PHP deze snaren zijn een echte type. Er is niet meer van deze char * soort dingen. Je zult zien dat we nog veel meer dingen te doen met snaren veel gemakkelijker in PHP dan konden we in C, en dan eindelijk, we hebben dit boolean type, en het grote verschil hier is dat Als we scrollen naar beneden zien we dat de naam van deze typen zijn nu integer, string, en boolean in plaats van int en bool, en als je pick-up verschillende programmeertalen, in de veronderstelling dat op een bepaald punt in je leven zul je in contact komen met verschillende die je zult merken kleine eigenaardigheden als dit waarbij C gehele getallen ints noemt. Sommigen noemen het gehele getallen. Er zijn andere termen die je zult tegenkomen. Big int zagen we vandaag in SQL. Er zijn ook tal en dan bool, boolean, allerlei verschillen zijn. Dit is niet erg interessant, maar nu ga ik om u een beetje tijd- Als we weer uit te zoomen-om te werken via deze oefening aan de onderkant van de pagina 3 waar het vraagt ​​welke soorten hier overeenkomen met deze waarden aan de onderkant. Wij hebben 3,50. We hebben dit ding hier, dat is interessant. Wij hebben dat niet eerder gezien, maar als je hebt gevolgd mee in lezing u waarschijnlijk al weet wat dat is. Dan hebben we dit, dat dit is een soort van funky. Je herkent dit. Wat is dit in C? Sam? Wat zou dit je in C? Het zou openen een bestand met de naam dynamic.php en leesbaar te maken. Ja, en wat zou het type variabele dat we deze toe te wijzen aan? >> Bestand ster te zijn. Precies, zouden we toewijzen aan een bestand ster. Dit is legitiem PHP ook. Run dat. Zie wat er gebeurt als je voorbij dat in gettype. En dan ook controleren wat null is, wat dat zou kunnen zijn in PHP. Ik geef je een paar minuten. U kunt letterlijk kopiëren en plakken deze waarden in, en dan zullen we wel een beetje willekeurige oproep op u en zien wat je hebt. [Student] Ik heb een vraag. << Ja. In een van de lezingen David zei dat er iets is wat je kunt zetten op de top van uw dossier zodat je niet hoeft te typen in PHP elke keer. Wat was dat? Hij was waarschijnlijk over het pond knal, de hash bang. Het is een richtlijn dat als je markeert het bestand als uitvoerbaar dan wat het doet is als je uit te voeren van het bestand het zal u vertellen de shell-programma de PHP interpreter gebruiken om de inhoud van het bestand te interpreteren. De vraag is wat was deze bijzondere lijn dat we ten bovenaan onze PHP bestanden niet opnemen dit PHP lijn of dit PHP commando wanneer we willen het bestand uit te voeren? En kun je eigenlijk doen met een bos van verschillende bestanden. Ik denk dat het hangt af van waar de PHP binary wordt opgeslagen, maar vaak usr / bin / php is een goede plek om te beginnen. U kunt dit oplossen precies door terug te gaan naar uw apparaat en typen welke php. De welke opdracht cijfers uit als je het uitvoeren van binaire of een opdracht waar het betreffende bestand is. Dit vertelt me ​​dat het PHP is echt aliasing dit binair bestand die is opgeslagen in usr / bin, dat is waar een groot deel van de binaire systeembestanden zijn geïnstalleerd. Bijvoorbeeld, als ik omhoog naar de top, nu ik dit # gezet! lijn hier Ik kan naar beneden scrollen, en ik kan proberen te lopen dynamic.php, maar krijg ik deze foutmelding over toestemming wordt geweigerd, en wat dat betekent is dat dit bestand op dit moment niet uitvoerbaar permissies geven. Het is niet gemarkeerd als een bestand dat iemand kan draaien. Wanneer u liep maken of Clang en je hebt een uitvoerbaar van het de compiler was slim genoeg om te weten dat he, ik ben een uitvoerbaar bouwen. U wilt waarschijnlijk het uit te voeren, dus het zou automatisch te configureren de machtigingen voor jou. Dit is niet het geval, echter, wanneer u een normaal bestand vanuit het niets, De reden hiervoor is meestal dat u niet wilt dat een bestand op uw systeem uitvoerbaar, zodat je eigenlijk moeten gaan en handmatig doen. De eenvoudigste manier om het te doen is met het chmod commando, en chmod + x zegt toe de uitvoerbare bit want er is de lees-bit, de schrijf bit en de uitvoerbare bit, r, w en x, en zeggen chmod + x gaat branden en de uitvoerbare bit voor het bestand dat we geven, die in dit geval dynamic.php zijn. [Student] Is dat aangezet voor iedereen? Laten we dit zien, dus hoe zou ik controleren om de machtigingen te zien? Weet je hoe ik zou controleren om de permissies van een bestand zien? [Onverstaanbaar student reactie] Sorry? >> [Student] XSD. XSD geeft ons het bestand in hacks. Een lijst van alle bestanden,-l, maakt mij alle bestanden in mijn directory soort in hun lange, uitgebreide lijst, en dus even zien we dat dit dynamic.php bestand is het laatst bewerkt 5 november om 16:21. De eigenaar van dit bestand is jharvard. Dat is de gebruiker die is ingelogd Dat is de gebruiker Ik ben net zo werken, en als je ook in het apparaat dat je ook werkzaam als gebruiker jharvard. Je bent in de studenten-groep, en dit zijn dingen die je vaak genoeg zien. We kunnen hier gaan in een veel detail, maar voor het grootste deel wat je wilt kijken wanneer u op zoek bent om te zien of een uitvoerbaar bestand is voornamelijk de gebruiker die eigenaar van het bestand, de eigenaar, dus dit jharvard, en dan hebben we de rechten bits over hier links, en de manier om dit te lezen, is dat het laatste stukje gewoonlijk wordt gebruikt voor het markeren of, althans in dit geval dit laatste stukje zal vaak worden ingesteld op de ad om aan te geven dat het bestand is een directory en niet alleen een normaal bestand. Dan is de volgende 3 bits hier bepalen de machtigingen die de eigenaar van het bestand, dus in dit geval jharvard, als eigenaar van het bestand, kan lezen en schrijven dit bestand, maar er is een vleugje zeggen dat jharvard niet kan dit bestand uit te voeren. De volgende 3 bits zijn voor de groep, dus dit is de studenten-groep, dus als er meerdere gebruikers op mijn toestel, en we meerdere gebruikers hadden als onderdeel van de groep studenten, dan kunnen ze allemaal lezen dit bestand, maar ze kunnen niet schrijven, en ook iemand anders, de wereld kan alleen lezen dit bestand ook. Er is een goede, lange writeup over dit, zodat u kunt lezen online. In het probleem set spec gaan we in dit in meer detail. [Student] Is de 218 verwijst naar de wereld? De 218 is-uit de top van mijn hoofd ben ik vergeten, maar nee. Laten we eens kijken. Ik ben blanking op dat moment. Terug naar waar we stonden op het doen met dit chmod + x waar we wilden dynamic.php uitvoerbare permissies te geven, en de vraag was of dit, dat uitvoerbaar permissies te geven aan iedereen of om gewoon jharvard, en we kunnen dit zien door het uitvoeren van de opdrachten en het typen van ls-l, en nu zien we dat het is gemarkeerd als uitvoerbaar. Je ziet dat er een kleurverandering. Nu dynamic.php is opgenomen in groen, en het lijkt erop dat het antwoord op de vraag is wat, Charlotte? [Charlotte] Alleen jharvard. >> Alleen jharvard, ja. Als we wilden de uitvoerbare bit te schakelen voor iedereen hoe kunnen we dat doen? Elke gedachten? >> A + x? Ja, precies. Charlotte zei dat we kunnen chmod doen van a + x van dynamic.php, en nu als we lopen ls-l zien we dat de uitvoerbare bits zijn inderdaad ingeschakeld voor iedereen. En kun je eigenlijk het omgekeerde doen van dit, dus je kunt uitschakelen voor iedereen met behulp van min. Nu is het uitgeschakeld, en nu kunnen we weer aan voor jharvard zodat we daadwerkelijk kunnen nu draaien, en nu zie je wanneer we de code uitvoert deze speciale #! lijn aan de top, #! lijn, vertelde de schaal, vertelde onze terminal hey, wanneer dit bestand wordt uitgevoerd, Gebruik / usr / bin / php om dit bestand te interpreteren en druk vervolgens de uitgang. [Onverstaanbaar student vraag] Tuurlijk, laat me omhoog terug. Net als dit. Je ziet al deze richtlijnen te beginnen met deze pond en dan het uitroepteken, ook wel een keet, hash bang. [Student] Hoe kunnen we draaien met php dynamic.php voordat we het uitvoerbaar? De vraag was hoe kunnen we run this behulp van de PHP binary terwijl dynamic.php is niet uitvoerbaar? Dit is super belangrijk, want dit is precies hoe het gaat werken wanneer je schrijft probleem set 7. De meeste van de tijd PHP-bestanden zijn niet direct uitvoerbaar. De manier waarop dat werkt is omdat het de PHP binary dat is uitvoerbaar. De tolk is het ding dat wordt uitgevoerd, en dus wat het doet is letterlijk slurpen in de volledige inhoud van onze dynamic.php bestand en gaat regel voor regel en het uitvoeren van deze opdrachten, dus het is het gebruik van onze PHP-bestand een lijst van instructies. Het is niet direct uit kan voeren. Dat is waar we zeggen dat deze bestanden worden geïnterpreteerd tijdens runtime. Het is een runtime taal in plaats van iets dat bepaald tijdens het compileren, niet een gecompileerde taal als C Is er een manier om een ​​runtime taal te krijgen om op te treden alsof het een compilatie taal, graag als je alle lopende gedaan op de server in plaats van-je weet wat ik bedoel? Ja, dus de vraag is is er een manier om runtime talen te krijgen om op te treden meer op de compilatie vormen van talen? En er zijn, ik bedoel, dat is een actief gebied van onderzoek voor veel van deze bedrijven. Ik denk dat Facebook is veel werk gedaan met PHP en samenstellen van het naar beneden, waardoor het sneller, het optimaliseren van het omdat hun site is gebouwd op PHP. Als u hebt gevolgd node.js helemaal niet, dat is een soort van een JavaScript-interpreter in staat zijn om JavaScript uit te voeren buiten de browser, buiten uw web browser, omdat van oudsher JavaScript zou alleen nog maar de binnenkant van Firefox of Chrome, en het zou worden gebruikt om koele animaties gebeuren op een webpagina en maak uw webpagina dynamisch. Dat is al gebouwd op een hoop werk dat Google heeft gedaan je JavaScript en C maken + + samenbinden, dus er is veel actief onderzoek naar krijgen deze talen te communiceren en te optimaliseren, in de eerste plaats omdat er zoveel mensen kunnen coderen in PHP en JavaScript want het is een stuk makkelijker. Het is een stuk mooier. Je hoeft niet pointers. Je hoeft niet typen rondzweven. Ze wilden de voordelen van deze compilatie talen te winnen alle type checking en de snelheid en de onderste geheugengebruik en dat alles met behoud van de flexibiliteit en het gemak van het gebruik van deze nieuwere. Terug naar onze oorspronkelijke plan van aanval. We hebben een paar van deze vragen hier in ons probleem set spec. Laten we gaan door hen heel snel, en dan gaan we in de kamer. Charlotte, wat voor soort is 3,50? [Charlotte] Dat is een dubbele. >> Het is een dubbele. Jimmy, wat is dit volgende? >> Een array. Een array, geweldig, en Jared, wat is de fopen? [Jared] Het is een bron. >> Het is een bron. Dat is een soort van een nieuwe, niet een bestand ster, niet een bestand. Het is een bron is het type in PHP, en het spijt me, Ella, de laatste nul is wat? Null. Null, hoe wordt het gespeld in PHP? >> Op dezelfde manier. Op dezelfde manier, hoofdsteden? >> Ja. Ja, oke. Daar gaan we, we hebben een dubbele, we hebben een array, we hebben een bron, en dan hebben we null. Laten we eens kijken nu heb je gezien- laten we eens kijken, dus nu ik denk dat wat ik ook wil doen is omhoog te trekken deze webpagina hier, dit php.net / handleiding, dus als jullie kopiëren dat en het openen van een web browser. Ik ga trekken Chrome, zet dat binnen Ik wil je laten zien dat niet alleen omdat kunnen we de hele dag praten over soorten en al die leuke dingen maar omdat dit de PHP handleiding, en er zijn een heleboel van PHP programmeurs die er zijn. Er zijn een heleboel van PHP-websites die er zijn, en als gevolg daarvan is er veel documentatie over PHP, en de handleiding, dit php.net, is echt een goede plek om te gaan wanneer je met vragen over wat is de beste manier om X te doen in PHP of hoe ziet een functie eruit? Gewoon een soort van kennis te maken met hoe dit eruit ziet, omdat je zult hier komen vaak een beetje voor te stellen probleem 7. Als je uiteindelijk het doen van een afstudeeropdracht die PHP gebruikt zal dit een plaats waar je je erg goed op de hoogte zijn. Vaak is de manier waarop mensen dit doen is dat ze gebruik maken van Google om te zoeken naar de site, en ze maken geen gebruik van het zoekvak dat is hier in de rechterbovenhoek, dat is een beetje klein. Als je rond Googlen naar iets te doen met PHP en je ziet een van de handmatige koppelingen pop-up kunt u meestal beroep doen op deze als een redelijk goede bron. Geweldig, dus uit deze types, gewoon uit nieuwsgierigheid, welke hebben we niet gezien? Alles wat we niet hebben gezien hier? [Student] Resource. >> We zagen hulpbron worden voor de fopen gesprek. [Student] Objecten. >> Objecten we niet gezien hebben zeker. Callbacks hebben we niet gezien. Er zijn enkele van deze pseudo-types. We zijn zeker zagen alleen integer en dubbele. We hebben niet een aantal van de anderen te zien, dus als we op gehele getallen we kunnen zien zijn er nog andere getallen die ze hier hebben? Zijn ze allemaal-zo integer, integer, integer. Sommige talen hebben grotere integer types, zoals we zagen op MySQL vandaag was er int en vervolgens grote int. Cool. Dus, PHP handleiding. Laten we terug gaan naar ons probleem set spec, en we zullen nu naar beneden scrollen naar pagina 4. Een van de dingen die er gebeurt als je de volgende talen dat dit niet statisch te typen, dus de volgende talen waar je moet aangeven het type van een variabele vooraan wordt krijg je wanneer je zou kunnen beginnen met variabelen van verschillende types interactie met elkaar, en PHP doet dit ding waar het probeert te doen wat het beschouwt als de meest verstandige om te doen wanneer u 2 verschillende types met elkaar. Bijvoorbeeld, als we kijken naar de volgende regels code hier zie je dat we hebben wat er gebeurt als we proberen en voeg de string 1 tot en met het gehele getal 2. Wat gebeurt er als we proberen en voeg een string die niet is een numerieke waarde maar eigenlijke betekenis, CS het nummer 50? Dan zullen we zien is er iets anders dat gebeurt waar in plaats van het toevoegen van een string naar een getal dat we een nummer toe te voegen aan een string, en zo verder en zo voort tot het punt waar we krijgen een soort van rare dingen hier, waar we hebben 7 + waar. Wat de heck betekent dat? Als jullie doorgaan en plak een deel van deze code op uw apparaat. U kunt houd het in dynamic.php. We zullen zien wat er gebeurt. [Student] Gewoon gebruik maken van afdrukken, niet printf? Ja, dus je zult zien dat print is ook een geldige functie voor het afdrukken van in PHP. Er zijn veel verschillende manieren om het te doen. We zullen zien met een paar van de voorbeelden later als we eenmaal beginnen te praten over de unieke probleem dat we gaan schrijven en dan de concentraties probleem dat we gaan schrijven dat ook al hebben we fopen en fclose dat vaak niet de eenvoudigste manier te lezen in de inhoud van een bestand. PHP heeft veel van deze C-achtige overblijfselen. [Student] Toen ik in alle 6 van die dingen die ik alleen maar een nummer als een uitgang. [Nate H.] Als je in alle 6 van deze dingen. Laten we eens kijken is het omdat het mogelijk- een ding is dat deze afdruk oproepen niet worden beëindigd op het einde met nieuwe lijnen. Er is geen nieuwe lijn tussen elk van deze afdruk oproepen, dus misschien dat je het krijgen van een groot aantal, en het is echt gewoon amalgaam van nieuwe lijn karakters. [Student] Oke, hoe kan ik er zeker van- Nou, er zijn een heleboel verschillende manieren. Je zou handmatig in een afdruk van een nieuwe lijn karakter, een echo van een nieuwe lijn karakter, af te drukken van de nieuwe lijn. [Student] Dus echo is hetzelfde als printf? Printf is als C printf waar je het afdrukken van een geformatteerde string. Je levert het de format string en vervolgens alle tijdelijke aanduiding variabelen. Het is vaak iets dat niet wordt gebruikt- laten we eens kijken, als een disclaimer, Ik ben minder vertrouwd zijn met PHP dan ik ben met andere web talen, en toen heb ik geprogrammeerd in PHP ik meestal niet printf gebruiken want ik vind het sneller in het gebruik de string interpolatie mogelijkheden die het heeft, die gaan we in en ik zal je laten zien in slechts een seconde, terwijl in C hebben we soort van moeten dit hacky ding te doen om het te krijgen om goed te printen. Je kunt eigenlijk direct gezet variabelen in strings in PHP. Printf is een soort van overdreven verlangen naar wat ik meestal doe. Ja, Ella. [Ella] In het algemeen als je parse error krijgt wil dat zeggen- zoals op C het niet u precies vertellen waar de fout is en wat het is, zodat betekent dat kijken door je hele code en figure it out? Het is meestal meer gericht dan dat. Ik denk dat in dat geval was het een beetje af, dus ik denk dat in dat geval waren we een puntkomma ontbreekt. Het was proberen te begrijpen van alles te maken, dus als deze geïnterpreteerde talen, wordt de tolk gaan proberen en doet haar best om alles werk op de juiste wijze te maken. Je zult, zie bijvoorbeeld, in JavaScript Je zult vaak-line verklaringen eindigen met een puntkomma, net zoals ze doen in PHP, net zoals ze doen in C. In JavaScript een aantal van de JavaScript-tolken in een groot deel van de browsers zal in puntkomma's voor u als je toevallig te ontbreken ze. Ze zullen proberen en geschikt voor een aantal slordigheden van uw kant. Dat is waar het zou kunnen worden proberen en proberen en proberen om dingen te laten werken, en dan eindelijk het zal tot een punt waar het zegt oke, Ik kan geen dingen werken op bail, en dat is waar krijg je een regelnummer dat misschien een beetje af van de exacte plaats lijken. Oke, dus laten we gaan door dit heel snel. We vertrokken af ​​met Ella, dus laten we over te gaan naar Missy, en Missy, is afdruk van string 1 plus het aantal wat 2 geven? [Missy] 3. >> 3. Is dat logisch? Sorteren van? Geeft het je een nummer? Geeft het je een string? [Missy] Een getal. >> Het is een nummer. Maar het is deze af te drukken, zodat het gaat om u een soort van string. Een ding dat we kunnen doen om dit uit te checken is als we $ var = 1 + 2 en dan zeggen we echo van gettype, dus we zijn met behulp van een derde soort afdrukken hier. Nu kunnen we zien wat er gebeurt hier. Hier is wat we hebben is dat we een geheel getal uit deze. Ook al waren we het toevoegen van deze string naar een getal, we hebben niet een string van te maken, net als Missy zei. We kregen een geheel getal. Oke, dus laten we eens kijken, next up, Kevin. CS + 50? >> [Kevin] 50. [Nate H.] 50. Is dat logisch? [Kevin] Ja. [Nate H.] Waarom? Waarom is het zinvol voor u? [Kevin] Omdat het gewoon de string met, met getal nul. Ja, geweldig. Kind van ambigue situaties, maar het is goed om te weten wat er gebeurt. Stella, wat er vervolgens gebeurt met nummer 1 + string 2? [Stella] 3. >> 3 opnieuw. En in dit geval, krijgen we een string of een nummer? Laten we dit eens te proberen. Iedereen sneller dan ik het antwoord te krijgen? Charlotte? Oh, ik didn't-oke, laten we eens kijken, we gaan naar dezelfde soort te doen waar we hebben een aantal plus een string, en we gaan het type echo, zien wat we krijgen. We krijgen ook een geheel getal. Het maakt niet uit welke de string, die een is het nummer. We zijn nog steeds gaan naar een geheel getal te krijgen. Het is nog steeds te doen wat we kunnen verwachten. Oke, dus Sam, wat ongeveer 90 + 9 flessen bier op de muur? [Sam] 99. >> 99. Geen flessen bier op de muur, dat wel. Het geeft ons een beetje meer informatie over wat er gebeurt. [Sam] Als je had geschreven 9 in brieven dan zou je 90, toch? [Nate H.] Ja. De vraag was of we hadden geschreven 9 op als N-I-N-E zouden we hebben gekregen 99 of 90? We zouden krijgen 90. Het is letterlijk gewoon op zoek naar cijfers karakters. Het is niet slim genoeg om het aantal woorden en dat soort dingen te herkennen. Ja. [Student] Is er zoiets als typecasting in PHP? Er is, en het is precies zoals u zou doen in C. Hoe zit het met 10/7, Charlotte? [Charlotte] 1,4285. [Nate H.] Ja, dus wat zou verrassend zijn over dit? Wat zou er gebeuren als je dat deed ditzelfde soort dingen in C, als je wel 10/7 in C? [Charlotte] Het zou alleen geven u-afhankelijk van hoe je typecasted denk ik het zou geven u slechts een beperkt aantal cijfers achter de komma. Ja, dus een beperkt aantal cijfers achter de komma. Wat zou kunnen zijn, zou het geeft je de cijfers na de komma? Vaak niet, dus nogmaals, afhankelijk van hoe je typecasting het het al dan niet om te zetten in een getal met drijvende komma. Hier was het wel leuk dat het deed. Hadden we zien je dit terug toen we begonnen met dit soort dingen in C het waarschijnlijk zou hebben gemaakt een beetje meer gevoel dat het niet gewoon naar 1. En dan tot slot, Jamie, hoe zit het met 7 + waar? [Jamie] 8. >> 8. Wat betekent dat? Ik denk dat het gewoon waar is geeft de waarde van 1. Ja. Wat gebeurt er als we dat veranderen op false? [Student] 7. Ja, dus onthouden waar we praten over deze binaire waarden, 1 is op, 0 is uit? Nu hebben we waar is 1, 0 is vals, en je misschien niet hebben gezien dit in de C-voorbeelden die we in het afgelopen semester gedaan, maar historisch gezien het bool type C is niet een echte soort, dus mensen gebruik hebben gemaakt van 0 en 1 in de plaats van waar en onwaar. Dit is een manifestatie van dat. Oke, dus het een belangrijk deel over dit alles dat we deze verschillende types hebben. Ze kunnen met elkaar. Ze kunnen vaak met elkaar op een manier die zijn mooi, zoals we hier hebben gezien. Het is leuk om te kunnen snaar 1 en de nummer 2 te hebben, ze bij elkaar optellen en 3 te krijgen. Dat klinkt logisch. Echter, wanneer je websites schrijven, en vooral als je de verwerking van input van de gebruiker, dus dat je een webformulier schriftelijke die verzamelt informatie van de gebruiker en gaat dan naar verwerken op de back-end, op de server in uw PHP-code als je verwacht dat de waarde die de gebruiker heeft ingevoerd in en ingediend om uw formulier naar een geheel getal te zijn of om een ​​floating point getal of iets dergelijks zijn je nodig hebt om expliciet wierp hem en doe dan een soort controle. U wilt niet alleen vertrouwen op dit soort jongleren systeem om dingen uit te werken, vooral om redenen van veiligheid en alleen voor de robuustheid van uw website. Gewoon iets om in gedachten te houden dat wanneer u de behandeling formuliergegevens, alles wat komt in de post of de get superglobals Zorg ervoor dat u altijd het valideren en te converteren en typeren het. En net als we het over een moment geleden dat typecasting in PHP is precies hetzelfde als in C waar de haakjes en dan het type. Hou dat in gedachten. Een functie die van pas komen wanneer je dit doet is dat we al gebruik van-en dit is een soort van als een terzijde- We hebben gebruik gemaakt van deze gettype functie hier om erachter te komen het type van een variabele, en terwijl dit is handig voor het debuggen en te zien wat een variabele type is u niet wilt dat deze, gebruik bijvoorbeeld in een toestand waarbij je controleren of gettype van $ var = geheel getal iets doen. Dit is slecht, slecht, slecht. In plaats daarvan zijn er deze functies aangeroepen is integer, is string, is array die u wilt gebruiken in plaats, dus in dit geval wat ik zou willen doen in plaats van deze kerel hier is gebruik maken van de is integer var. En ze zijn vaak aangeduid is is_ * in de zin dat je de * te vervangen door geheel getal is, string, et cetera, en gewoon om er zeker heel snel Dit is int php. Het lijkt erop dat je kunt doen is ofwel int of wordt er geheel getal ook? Ja, alias, dus int geheel getal aliassen. Cool. Hoe doen we het? Laten we halen het tempo een beetje. Nu gaan we het hebben over arrays, zodat u kunt zien in het volgende deel van het spec we praten over hoe arrays in PHP zijn iets anders dan in C. In werkelijkheid, ze zijn soort van een amalgaam van de arrays die u hebt leren kennen en liefhebben in C waar alles van hetzelfde type achtereenvolgens aaneengesloten en in het geheugen, en je hebt deze numerieke indices. U heeft index 0, index 1, index 2, en u de waarden opslaan op die indices. U kunt ook in C, als je Speller schreef, veel van je deed de hash-tabel benadering, en je zag dat daar hadden we een ander soort opslag waar we in kaart brengen een sleutel tot een waarde, dus als je geprobeerd om iets op te slaan in hash-tabel je moest opgeven dat je wilde het op te slaan met een specifieke sleutel, en toets bepaalt de plaats van de waarde en waar het opgeslagen. Je hebt soort van kreeg zowel van die begrippen gebeurt op hetzelfde moment in een PHP array, en als gevolg daarvan, hebben we vaak noemen deze associatieve arrays waar we het associëren van een sleutel in een waarde. In het volgende deel gaan we praten over een eenvoudige PHP array waar we toetsen a, b en c, alle snaren, het in kaart brengen van de gehele getallen 1, 2, en 3. En kunt u sleutels van verschillende types. U kunt een aantal toetsen die zijn snaren, een aantal toetsen die zijn gehele getallen. Kunt u waarden van verschillende types. U kunt een waarde die een string, een waarde die is een geheel getal, een waarde die een object of een andere array, bijvoorbeeld allemaal in dezelfde array object, dat is een beetje raar. Je hoeft niet naar een array dat is gewoon een soort element kreeg in hebben. U kunt veel verschillende dingen aan de hand daar. Het andere ding om op te merken is dat wanneer je iets als dit in uw code, die geldig te verklaren PHP een array zoals deze, 0, 1, 2, 3, 4, 5, dat zal verklaren een geïnitialiseerd $ arr deze array. Maar wat je eigenlijk krijgt onder de motorkap is dit soort van impliciete generatie toetsen waar we heeft 0 tot 0, moet een 1, 2 op 2, 3 en 3. En het blijkt dat zelfs als je een array als deze kerel hebben hier waar je a, b en c als de toetsen en dan begin je met behulp van de array push-methode om met behulp van deze array te starten als een stapel, zodat u kunt zien dat deze array object, deze array is echt overbelast wordt. We kunnen het gebruiken als een array. We kunnen het gebruiken als een hash-tabel. We kunnen het gebruiken als een stapel. Als je begint te duwen dingen op deze array het eerste wat je te duwen op dit index 0 en vervolgens index 1 en index 2. U kunt dit soort impliciete generatie van sleutels tenzij u expliciet specificeren. De manier waarop je expliciet toetsen, is natuurlijk door het gebruik van deze beugel notatie, die vergelijkbaar is met arrays behalve in plaats van alleen toestaan integer indices in hier, nu we ervoor dat er niets. Als u wilt dat uw sleutel tot een string te zijn, zou je opgeven als dit. Als je wilt dat het een int zijn, geeft u het met de int die u wilt gebruiken. Vragen over dat tot nu toe? Een van de leuke dingen over dit idee is dat je alleen maar over een waarde die is opgeslagen met een bepaalde sleutel. Als we terug gaan naar onze appliance-laat me verwijdert u een aantal van dit spul. En laten we zeggen dat ik een array initialiseren op 0, 1, 2, gedaan. Als ik weet nu dat, bijvoorbeeld, als ik echo $ arr [0] Ik ga om de waarde 0 uitgeprint, en aangezien er altijd maar een opgeslagen waarde voor een bepaalde toets als ik bewaar er iets op $ arr [0], laten we zeggen een, dan weet ik wanneer ik echo $ arr [0] te drukken Ik ga niet in op 0 afgedrukt als voorheen te krijgen. Ik ben alleen gaan om een ​​te krijgen. Dus dit is eigenlijk te zeggen dat ik niet kan $ arr [0] het opslaan van 2 verschillende waarden hebben. Het kan niet opslaan zowel 0 als de string een, zoals deze letterlijk vervangt wat er op $ arr [0] eerder. De reden dat ik breng dit naar voren wordt het uit te voeren, zien wat er gebeurt. Zie hier dat ik kreeg 0 uitgeprint en dan een hier beneden. Er is geen nieuwe regel er, want ik was lui en niet zet dat binnen Wat heb je aan dit is dat we kunnen gebruiken als een manier om om dit idee van een set vast te leggen waar we niet kunnen meerdere sleutels in een array. We kunnen geen identieke sleutels in een array. Ik kan geen toets 0 en waarde 1 en toets 0 en de waarde van een of de toets 0 en waarde true. De toetsen zijn all-er is maar 1 sleutel in de array. Ook al kunt u de opgeslagen dezelfde waarde meerdere keren in de array onder verschillende sleutels het is niet mogelijk om identieke sleutels meerdere keren in uw PHP array. Als we kijken naar het volgende probleem, unique.php, waar we willen openen van een PHP-bestand met een lijst van strings, een snaar per regel, en we willen allemaal van de unieke snaren te vinden in het bestand alles wat we hoeven te doen is het gebruik van een van deze PHP arrays en het gebruik van de snaren in het bestand als de sleutels om deze array en zorgen voor een actualisering ons aanbod zoals we slaan deze nieuwe sleutels. Zoals we lezen elke regel uit het bestand kunnen we opslaan in de array, en aan het eind zullen hebben als sleutels in ons aanbod alle unieke snaren in het bestand. Is dat logisch? Laten we eens kijken hoe dit werkt. We gaan open te stellen, op basis van de specificaties, een nieuw bestand met de naam unique.php. Open. Oeps, sorry, nieuw bestand. We gaan het beginnen met dezelfde begin-en eind tags. We gaan het op te slaan in artikel 9, en we gaan om te spreken van unique.php. Oke, nu zoomen Het idee hier is het openen van een bestand, lezen in bestand regel voor regel. Voor elke regel in het bestand we hebben een scala waar we  de lijn als onze belangrijkste. En toen we aan het einde hier $ Arr de sleutels zijn de unieke regels uit het bestand, omdat we weten dat als ik lijn in deze array meerdere keren het zal gewoon blijven het overschrijven van de oude waarde, en we kunnen scala lijn daadwerkelijk ingevoerd als zich net zo. Dit is een beetje raar. We slaan onder dezelfde toets bevindt waarde paar over en over en weer, maar omdat we hebben de garantie dat er maar 1 sleutel genaamd lijn dus als we een bestand dat zegt-een bestand van dierengeluiden en het heeft woof, woof, miauw, miauw, boe, boe, en elke keer dat we lezen een dier lawaai zoals inslag en we opslaan in ons aanbod krijgen we inslag, en vervolgens de tweede keer slaan we inslag zal het de eerste keer dat we het opgeslagen te overschrijven. Uiteindelijk zullen we slechts een vermelding in de array voor elk van de dierengeluiden in onze dierengeluiden file. Hebben jullie er zeker van dat u de opening van een dossier in PHP aan te pakken? Een manier om het te doen, laten we gaan over deze snel een manier om het te doen is met fopen, zoals we eerder zagen. U kunt fopen some_file.txt. U kunt het openen in de leesmodus, net als in C. Dat is een heel goede manier om het te doen. Ook dan voor het lezen in het bestand regel voor regel hebben dezelfde functie, velen van hen, die u deed in C. Je hebt fgets. Je hebt feof, hoewel we niet graag met behulp van dat want, vergeet niet, dat was niet groot in C. Je kunt het op dezelfde manier, maar hier is echt een cool ding. Sorry, ik wil niet te $ do-bestand, maar er is een functie genaamd bestand in PHP, en deze functie hier is cool want het leest de volledige inhoud van het bestand dat u opgeeft, zo some_file.txt, leest de volledige inhoud van dit bestand in een array en dan laat je itereren over het, dat is vrij handig. Als we bijvoorbeeld naar onze web browser en we kijken naar Google voor PHP-bestand kun je hier zien dat onze handleiding zegt dat bestand leest hele bestand in een array, en we kunnen file_get_contents de inhoud van een bestand terug als string, maar meestal net als een array is echt mooi, want wat het doet wordt het breekt het op, zodat elk element in de array een regel van het bestand, dus als we kijken naar bestand 0, dat is de eerste regel van het bestand. Bestand 1, tweede regel, bestand 2, derde lijn, enzovoort, enzovoort. Zou het niet mooi zijn als dat was alles wat je moest doen in C? Mooie handige. David liet dit in lezing, en het idioom dat hij liet zien was dat in aanvulling op onze standaard voor loop-in PHP hadden we dat for ($ i = 0; i <10; i + +), en je kunt ook dit doen in PHP, hetzelfde: we hebben ook deze coole constructie genaamd foreach. Foreach is echt handig als itereren over arrays of deze datastructuren omdat het u toestaat te trekken uit elk element van de array zonder dat u handmatig doen het indexeren zelf, zonder dat u handmatig een index variabele, verhoog dit met trek de waarde in de array op dat moment, want dat is een veel voorkomend ding om te doen. Je hebt waarschijnlijk gedaan hebben ton van momenten waarop je C stuff doen over het semester, dus met deze foreach kunnen we lus over dit bestand array, en de syntaxis is dat we willen nu lus over deze array en aangeven dat de variabele die we gaan gebruiken om op te slaan het element van de matrix lokaal plaatselijke het toepassingsgebied van deze foreach lus, is gaan we noemen lijn. Als het een bestand van alleen maar woorden en er is een woord in een lijn konden we noemen het woord ook, eigenlijk gewoon geef je deze een naam, wat je ook wilt noemen, en dan in de lus kun je wat je wilt doen met deze variabele lijn. Als het niet genoeg is om de waarde van de array te krijgen en u ook wilt krijgen de index, samen met deze functie kunt u een naam voor de index alsmede de waarde, en nu heb je toegang tot 2 variabelen. Je hebt $ i en lijn waarbij $ i de index in de array, en lijn is de lijn die u opgehaald uit het bestand. Bijvoorbeeld, als we wilden om uit te printen echo regel 0 van het bestand als dit, we kunnen het doen net als dit, "regel $ i van het bestand is $ lijn," en hier is iets wat we ook nog niet gezien, hetzij waar ik heb gewoon helemaal overgeslagen% dit hele% s d bedrijf dat we te maken gehad met in C, en in plaats daarvan heb ik meteen gegaan naar het schrijven van de variabelen in de lijn in mijn string. Dit is de zogenaamde variabele interpolatie, string interpolatie waar je vulling van de variabelen rechts in, en de PHP interpreter is slim genoeg als het lezen door middel van een string die begint met dubbele aanhalingstekens- niet enkele aanhalingstekens, met enkele aanhalingstekens kunt u dit niet doen- maar met dubbele aanhalingstekens als het leest doorheen zoekt variabelen. Het jacht op ze, en als zij dat variabelen zal de waarde van de variabele nemen en spullen in de string als het kan omzetten in een string representatie, dat is vrij handig. Voor nu, laten we commentaar uit de rest van alles, sla dit, en wat we nu kunnen doen is dat we kunnen openen van een bestand dat we kunnen bellen some_file.txt-laten we een nieuw file- en we kunnen in een hoop onzin dingen hier alleen maar om alles uit te testen, opslaan, noem het some_file.txt, zoals ik aan het doen ben hier tot aan de top, en nu als ik gewoon uit te zoomen om ervoor te zorgen alles is in dezelfde directory- het lijkt erop dat ik heb unique.php en some_file.txt in dezelfde directory. Als ik zonder php unique.php zien hoe het drukt elke regel in mijn dossier en wat de lijn is? Dat is vrij krachtig, toch? Kijk, het duurde 3 regels code om het openen van een bestand. Nou, 4 regels code. Ik kan niet tellen vandaag de dag, duidelijk. Maar echt alleen maar 2 interessante lijnen van de code, omdat de andere 2 waren de accolades, maar in dit veel code waren we in staat om een ​​bestand te openen, door middel van het herhalen, trek het lijnnummer en de lijn zelf en print het uit. Cool stuff. Charlotte. [Charlotte] Ik heb een vraag over de syntaxis. Dus foreach deals met elke regel van het bestand dat u opent, en dan als je wilt om dingen te doen met elke lijn die je gewoon doen als en vervolgens koppelen de waarde. [Nate H.] Wat u kunt goed doen hier-de vraag was de foreach heeft te maken met het array, waardoor de foreach syntax is echt foreach, en merk op dat er geen ruimte of iets tussen de voor-en de elk. Ze moeten rechtsaf naast elkaar, en dan duurt in een array, en dan heb je die andere zoekwoord genoemd als dat moet er zijn, en dan na het als je kunt zetten een variabele naam, in welk geval je gaat worden het uittrekken van de waarden van de array, niet de indices, of als je het zoals we hebben geschreven hieronder krijg je de sleutels en de waarden. Je hebt foreach element van de array of het paar van de array als verwijzen naar waarde of gewoon waarde. Afhankelijk van wat je nodig hebt, als je het niet nodig hebt de sleutels, dan kan je met de waarde. Als u wilt dat de toetsen die u kunt ook gaan met hen. [Charlotte] Ik realiseerde me ook dat we nooit de i of lijn verklaard. Hoe werkt het eens weet wat ze zijn? [Nate H.] Wat bedoel je met te verklaren? [Charlotte] We hebben nooit verteld wat ik of lijn middelen. [Nate H.] We hebben nooit verteld de computer wat ik of lijn betekent in termen van- [Charlotte] Dat ze geïndexeerd of dat Ze zijn- [Nate H.] Wij hebben nooit verteld dat het dat dit wordt verondersteld om de index of de sleutel en de waarde, en dat is, want dat is de PHP-interpreter. Dit dient als de verklaring en zegt oke, is de sleutel zal zijn een variabele genaamd i opgeslagen in een variabele genaamd i. De waarde zal worden opgeslagen in een variabele genaamd lijn dus dit dient als verklaring van deze variabelen en zegt $ i is een sleutel, en $ lijn is een waarde. Ja, Ella. [Ella] Als de toetsen niet numeriek gedaan hoe werkt het beslissen welke volgorde het gaat om alles af te drukken? Is het net als de bestelling het is ingeschreven in? [Nate H.] Laten we het eens proberen. Laten we een variabele genaamd arr, en wat we kunnen doen een gaat naar 7. Stel 0 naar een andere array met 1, 2 of appel. Stel 7 gaat naar 1, b gaat naar 2, en 3 gaat naar 4. Dit is een soort van een gek op zoek voorbeeld omdat we het mengen van strings en integers all over the place. Er is geen echte Om deze array. Ik bedoel, we kunnen alles bestellen in alfabetische volgorde op de toetsen. We konden alfabetisch alles bestellen door de waarde. We kunnen proberen en rekening mee houden dat sommige strings, sommige zijn ints, en we konden proberen om te zetten ze allemaal naar hetzelfde type en zien wat er gebeurt, of we kunnen overwegen ze in de waarde waarin wij reeds ingevoerde hen waar we deze man zet in de eerste, deze man in de tweede, deze man in de derde, deze man in de vierde, et cetera. Laten we eens kijken wat er gebeurt als we deze code uitvoert. Als we naar beneden scrollen en doen hetzelfde soort dingen, en hier is het niet afdrukken van de nieuwe lijnen. Wanneer dingen uitgelezen uit het bestand werd inclusief de nieuwe lijnen in de waarden, die werd waarom het uitgeprint mooi, terwijl het hier niet, dus dat is waarom alles samen is smushed. Laten we toevoegen in die nieuwe lijn gewoon om er leuke dingen. Laten we het opnieuw uit te voeren, en dus even kijken naar wat er gebeurde. Het gedrukte alles uit in de volgorde waarin we het plaatsen in de array. Het doet behouden om in die zin. Terug te gaan naar het probleem van de uniques waar we willen in staat zijn om itereren over een bestand, en we geven het some_file.txt, en we gaan over het herhalen als dit. We zeiden dat we wilden om een ​​array te gebruiken om ervoor te zorgen dat we allemaal van de gekregen unieke lijnen er uit, en we konden die echt gemakkelijk doen door gewoon te slaan in een matrix die we natuurlijk verklaren buiten het bestek van een lus, en we zeiden dat als we de regels in het bestand gebruikt als de toetsen in ons aanbod Als we in een dubbele lijn zouden we het overschrijven van de vorige waarde. Het is niet altijd mogelijk om 2 toetsen die identiek zijn in dezelfde array. We kunnen dat te doen. We zullen zich te ontdoen van deze echo statement hier. Hier zijn we het opslaan van de regel in het bestand in ons aanbod met zich als sleutel. Niets om het, en het blijkt dat we niet eens nodig deze sleutel. We hebben geen behoefte dat ik variabele. Op dit punt als we naar een ander foreach lus te doen en we moesten lus over elk arr en lijn nu als we-oops echo, sorry. We kunnen geen gebruik maken van de komma. We hebben om dit te gebruiken als zoekwoord. Als we nu echo lijn die we moeten krijgen alle unieke woorden in het bestand. Als wij gaan op naar some_file.txt, en laten we zeggen dat we doen appel, banaan, appel, appel, banaan, als we het afdrukken van alle unieke woorden in dit bestand moeten we alleen maar appel en banaan af te drukken. Als we sla dit, nu we hier weer terug in te zoomen, php unique.php, en ta-da. We hebben met succes uniqued het bestand. Het laatste deel van dit probleem is de vraag of u deze array te sorteren voordat u uitgeprint want in dit eenvoudige voorbeeld dat we net gedaan we hadden het geluk in de zin dat de file- we deden dit gekunstelde voorbeeld met appels en bananen. Het was al gesorteerd. Maar het gebruik van de eenvoudige soort functie u kunt sorteren een array, dat is vrij handig. Het laatste wat ik wilde met jullie praten over echt snel is dat dit soort PHP is allemaal goed en wel, en het is super handig om te weten hoe dat te doen als je ooit nodig hebt om programmatisch weinig doen, snelle dingen. Bijvoorbeeld, als ik een programma dat, laten we zeggen schrijven, zet alles en iedereen in secties Ik ben niet van plan om te gaan en te schrijven in C. Het zal lang duren. Het gaat om een ​​soort van pijn, vooral als er betrokken zijn bij bestanden, net zoals jullie gezien hebben. Het is zo leuk dat met slechts dit veel code hier waren we in staat om te rippen door middel van een bestand, trek alles uit de unieke waarden en print ze weer naar buiten. Echter, voor uw opdrachten, voor uw projecten, als je het bouwen van websites met PHP de macht is dat we lopen onze PHP-bestanden via deze tolk, en de tolk is de verwerking van alles wat binnen de PHP-tags, waardoor al het andere onaangeroerd en uitspugen van de resultaten. We kunnen dit doen om programmatisch te bouwen HTML. Nu, als we terug gaan naar de spec, de laatste probleem in de spec praat over dit idee van concentraties en het creëren van een drop-down menu, die u wel of niet te doen, willen afhankelijk van wat je uiteindelijke project aan het doen is, waarmee de gebruiker kiezen uit een lijst van alle mogelijke concentraties hun een concentratie. Nu, dit is een soort van een pijn om dit uit te typen en moet dit handmatig doen dit alles, vooral als je met om ervoor te zorgen dat je alle hoekbeugels op de juiste plaats en alle citaten op de juiste plaats, dus met PHP kunt u programmatisch doen, en je kunt dit doen heel snel. Laten we eens kijken hoe dit te doen. We gaan het openen van een nieuw bestand. We gaan in onze PHP-tags. We gaan noemen concentrations.php, en nu wanneer je dit doet, om een ​​soort van een goede zaak na te denken over als je probeert te mixen en matchen uw PHP en HTML is het uitzoeken, oke, wat is het deel dat ik wil programmatisch te genereren? Wat is het deel dat ik programmatisch kan genereren? Het is waar dat je kunt doen al uw HTML- binnenkant van PHP blokken. U kunt echo alle HTML-als strings. Bijvoorbeeld, als ik wil om te beginnen met het doen van de select-tags binnenkant van PHP Ik kan echo zeggen hebt, zeg selecteer naam = concentratie, en dan beneden kon ik nog een echo tag of een andere echo genoemd sluit de kiezen. Dit is een manier om het te doen, want wat dit is letterlijk gaat doen wordt afgedrukt deze string als het lopen door de PHP-interpreter, zo zal het resultaat HTML. Als ik sla dit bestand op als het goed is nu en ik run php concentrations.php kijken naar wat ik heb. Ik heb deze open dicht select tag. Als ik om dit te doen en ik waren om dit resultaat te slaan in een bestand, zeggen, concentrations.html-wachten, het lijkt erop dat de l is overgeschakeld op de andere zij- Nu, als ik open hier concentrations.html zie je ik heb een geldige HTML-bestand. Is dat een beetje raar? We gebruiken PHP naar HTML te creëren, geldige HTML te creëren. De manier waarop we het doen is dat we gewoon de PHP afdrukken met de HTML die we willen om te printen. Dit is letterlijk hoe PHP websites werken. Wanneer u een website bezoekt die u stuurt naar iets als iets, iets, iets dot com slash index.php de computer is letterlijk het oproepen van index.php, het runnen van het door de PHP-interpreter, en wat rommel komt uit het is terug sturen naar de browser en zeggen hey, browser, interpreteren dit als HTML. Het leuke is dat het kan een pijn zijn om constant schrijven echo, echo, echo, echo en omsluiten alles in citaten als deze, dus als je wilt schrijven de HTML die gaat worden statische jezelf dat je het kunt als dit, buiten het stelde, sluit, en dan hier je alleen zet in de PHP-tags die waarvan je weet u wilt programmatisch te genereren, en in dit geval is het de optie-tags die lastig te genereren. Zo kunnen we genereren duizend optie labels door iets te doen als dit, $ i <1000, i + + en zeggen echo optie value = $-whoops, dat kan ik niet doen. Nou, laten we het eens proberen en zien wat er gebeurt. $ I en dan zeggen $ i