Deze tutorial, die oppakt waar deel 1 van deze serie was gebleven, zal je blijven begeleiden door aan de slag te gaan met PHP-arrays en -loops. Basisbeginselen worden samen met hun gelijkwaardige partners behandeld in populaire software zoals Wordpress.
Beginners: om deze concepten volledig te begrijpen, is het ten zeerste aan te raden eerst deel 1 te lezen. Deel twee van deze serie zal doorlopen met behulp van kern-PHP-principes die helpen bij dagelijkse codering. Dit omvat het maken en gebruiken van arrays en loops om gegevens op te slaan en op te halen wanneer u wilt.
Een array is waar je naar toe gaat wanneer je merkt dat je steeds dezelfde variabelen creëert. Twee woorden worden gebruikt bij het verwijzen naar de inhoud van een array. Die woorden zijn "sleutel" en "waarde". Elke array heeft ten minste 1 sleutel en waarde. Ze komen altijd in paren als de sleutel naar de waarde verwijst. Er zijn drie soorten arrays: Associatief, Numeriek en Multidimensionaal. Multidimensionale arrays zijn eenvoudig arrays binnen arrays. Laten we de eerste twee kort bekijken.
Een associatieve array is nuttig omdat het sleutel wordt ergens door de programmeur verklaard en geeft daarmee context aan de waarde. Ik zal bijvoorbeeld een array maken met persoonlijke informatie over mezelf. Hieronder ziet u twee manieren om de array op te stellen in PHP. Het doel van de tweede is alleen voor organisatie en leesgemak. Zoals Jeffrey in deel een van deze serie vermeldde, is PHP niet wit-ruimtegevoelig.
"Erik Reagan", "occupation" => "Web Developer", "location" => "Savannah, GA USA"); ?>
'Erik Reagan', 'occupation' => 'Web Developer', 'age' => 23, 'location' => 'Savannah, GA USA'); ?>
Dat is geweldig en zo - maar hoe kan ik mijn informatie laten weergeven in HTML? Ik ben blij dat je het vroeg! Het lijkt erg op het weergeven van een variabele, maar u voegt een beetje extra gegevens toe: de sleutel.
Mijn naam is =$personalInfo['name']?> en ik ben een =$personalInfo['occupation']?> in =$personalInfo['location']?> en ben =$personalInfo['age']?> jaar oud.
Wacht even? Wat is dit =… ?> ruk ineens? Goed gebruik =?> is een afkorting voor PHP voor . In deel een heb je geleerd dat het echo commando lijkt op afdrukken in andere talen. De verkorte versie van PHP is slechts één manier om tijdens het werken minder code te schrijven.
Soms hoeft u geen woord aan een waarde binnen een array te koppelen. In dat geval gebruikt u een numerieke array die standaard in PHP is gemaakt. Hierboven gebruikten we het gelijkteken gevolgd door het groter dan teken (=>) om matrixwaarden in te stellen op toetsen. Met numerieke arrays kunt u eenvoudig de waarden instellen en wordt de sleutel stapsgewijs aangenomen. Laten we kijken:
'Erik Reagan', 'occupation' => 'Web Developer', 'age' => 23, 'location' => 'Savannah, GA USA'); $ fruit = array ('apple', 'orange', 'grapes'); ?>
Zoals je ziet hebben we niets anders gedaan dan zetten waarden in deze array. PHP zorgde voor de sleutels voor ons. Wat betreft uw beginners toetsen ALTIJD begin bij het getal 0 en verhoog met 1 met elk nieuw arrayelement. Naarmate je dieper in het leren van arrays leert, zul je leren dat je ze naar believen kunt manipuleren - maar dat wordt hier vandaag niet behandeld. "Hoe weet ik welke sleutel ik moet gebruiken", kunt u vragen. De eenvoudige manier om in ons voorbeeld te beginnen is om bij nul te beginnen en je element te vinden. De sleutel voor "appel" is bijvoorbeeld 0, de sleutel voor "oranje" is 1 en de sleutel voor "druiven" is 2. Vrij eenvoudig, he. Nou, soms zullen je arrays enorm worden en in de 10s en mogelijk honderden opgaan. Niemand wil daar zitten en die rotzooi tellen. Je eerste instinct zou kunnen zijn om gewoon "echo $ fruit" uit te voeren, maar het spuugt alleen het woord "Array" uit. PHP geeft ons een paar eenvoudige manieren om onze array-gegevens te bekijken. Laten we naar twee van hen kijken.
'Erik Reagan', 'occupation' => 'Web Developer', 'age' => 23, 'location' => 'Savannah, GA USA'); $ fruit = array ('apple', 'orange', 'grapes'); print_r ($ personalInfo); var_dump ($ fruit); ?>
Houd er rekening mee dat het uitvoeren van deze in uw browser iets heel smerigs kan opleveren. De eerste array zal vooral onaantrekkelijk zijn en misschien moeilijk te lezen. Het kan je helpen gooien
tags rond die twee opdrachten, zodat de witte ruimte correct is opgemaakt. Ervan uitgaande dat u deze tags rond de opdracht hebt geplaatst, moet u het volgende aan u laten afdrukken:Array ([0] => apple [1] => orange [2] => grapes) array (4) ["name"] => string (11) "Erik Reagan" ["occupation"] => string ( 13) "Webontwikkelaar" ["age"] => int (23) ["location"] => string (16) "Savannah, GA USA"
De eerste functie, print_r (), zal gewoon de structuur en inhoud van uw array afdrukken. De sleutels staat links tussen haakjes en de waarden bevindt zich rechts van de bijbehorende toetsen. In de tweede functie, var_dump (), je leert en snapt meer over je gegevens. Let op de "age" -sleutel in de array $ personalInfo. De waarde staat niet tussen aanhalingstekens zoals de andere waarden zijn. Ik deed dit zodat je een onderscheid kon maken tussen twee soorten gegevens in PHP. Alles in aanhalingstekens wordt als een beschouwd draad en in het geval van de "leeftijd" -gegevens is het een geheel getal. Ik ga niet in op de details van de andere soorten gegevens, maar ik wijs dit erop omdat het var_dump () functie geeft u nuttige informatie.
Let op het eerste bit dat in de eerste regel voorkomt "array (4)"Het eerste bit dumpte en zei:" Dit is een array en het bevat 4 datasets. "Als je naar de volgende regel gaat, krijg je je sleutel, zie je de eerste sleutel en dan staat er"draad(11)"Dit zegt" Dit is een tekenreeks en het is 11 tekens lang "(houd er rekening mee dat een lege spatie als een teken wordt beschouwd). Spring naar de" leeftijd "-toets en merk op dat het zegt int (23). Dit zegt: "Dit is een geheel getal met een waarde van 23".
Nu dat je weet hoe te gebruiken print_r () en var_dump () we gaan verder met het doorlopen van deze gegevens.
Zoals hierboven vermeld, is een multidimensionale array gewoon een array die ten minste één extra array als waarde bevat. Ik zal lopen met het "personalInfo" -voorbeeld en een array maken voor een stafenteam.
$company = array( 'info' => array ('name' => 'Awesome Web Company', 'location' => 'Savannah, GA', 'website' => 'http://weAreAwesome.com'), 'staff' => array (array (' name '=>' Kermit the Frog ',' position '=>' CEO '), array (' name '=>' Hiro Nakamura ',' position '=>' Art Director '), array (' name '=> 'Willy Wonka', 'position' => 'Web Developer'))); ?>
Zoals je kunt zien, kunnen multidimensionale arrays ingewikkeld worden. Dit is een vreemd voorbeeld, omdat dit type gegevens doorgaans in een database worden opgeslagen en later met PHP worden opgehaald. Voor het leren van arrays zullen we echter beginnen met de gegevens binnen PHP. De eerste sleutel in deze array wordt 'info' genoemd en de waarde ervan is eigenlijk een associatieve array die bedrijfsinformatie bevat. De tweede sleutel van onze array $ company is 'staff' en de waarde ervan is een numerieke array. Laten we de structuur eens bekijken voordat we beginnen. hardlopen print_r ($ company) zal het volgende produceren:
Array ([info] => Array ([naam] => Awesome Web Company [location] => Savannah, GA [website] => http://weAreAwesome.com) [staff] => Array ([0] => Array ([name] => Kermit the Frog [positie] => CEO) [1] => Array ([naam] => Hiro Nakamura [positie] => Art Director) [2] => Array ([naam] = > Willy Wonka [positie] => Web Developer)))
Nu staat onze bedrijfsinformatie klaar om te worden geraadpleegd. We hebben toegang tot de interne arrays op dezelfde manier als waarop we eerder toegang hadden tot onze persoonlijke gegevens. Hier is een voorbeeld van het gebruik van gegevens uit deze multidimensionale array:
=$company['info']['name']?>
Gevestigd in =$company['info']['location']?> en online op ">=$company['info']['website']?>.
Onze CEO
=$company['staff'][0]['name']?>
Nu we een greep hebben op arrays, kunnen we in lussen springen die de tijd die we besteden aan het parseren van de arraygegevens minimaliseren.
Loops zullen best handig zijn naarmate de hoeveelheid data waarmee je werkt toeneemt. We zijn in arrays gegaan, dus dat brengt ons vanzelf naar de loops. In het laatste codefragment hebben we een medewerker vermeld binnen de $ bedrijf matrix. Wat als we door elk personeelslid willen fietsen of lussen en de informatie op een uniforme manier willen weergeven? Nou komt de foreach lus. Net zoals de functie klinkt, voert deze een specifieke actie uit voor elk van de elementen binnen een array of object. Het ziet er meestal als volgt uit:
$ waarde) ... enige code hier?>
Let op de drie variabelen die aan deze functie zijn doorgegeven. De eerste is gewoon de array waarmee we werken. De tweede en derde variabelen worden door JOU gedefinieerd en kunnen alles zeggen wat je maar wilt. Dit zijn de gegevens die verwijzen naar de gegevens van de array binnen de accolades. We zullen dit in een moment bekijken. Maar eerst, net als de echo opdracht heeft een afkorting of een alternatieve syntaxis, foreach heeft iets dat dwars tussen PHP en HTML zal helpen. Op deze manier wordt de code zo schoon mogelijk gehouden. Het ziet er zo uit:
foreach($array as $key => $ waarde):?>Sommige html en sommige php gaan hier naartoe
endforeach; ?>
Je ziet dit formaat in als verklaringen en terwijl loops (bijvoorbeeld in Wordpress). Nu we hebben gekeken naar het formaat van deze functie, laten we het in actie brengen. Ga terug naar de bedrijfsinformatiereeks en bouw een mooie pagina met die gegevens
$company = array( 'info' => array ('name' => 'Awesome Web Company', 'location' => 'Savannah, GA', 'website' => 'http://weAreAwesome.com'), 'staff' => array (array (' name '=>' Kermit the Frog ',' position '=>' CEO '), array (' name '=>' Hiro Nakamura ',' position '=>' Art Director '), array (' name '=> 'Willy Wonka', 'position' => 'Web Developer'))); ?>=$company['info']['name']?>
Gevestigd in =$company['info']['location']?> en online op ">=$company['info']['website']?>.
Onze medewerkers
In dit geval de foreach loop door elk personeelslid en toont de HTML en PHP die we hebben verteld. Ik weet precies hoeveel personeelsleden er in de array zitten, dus het stopt als het eenmaal aan het einde is. Ik weet zeker dat je kunt zien hoe nuttig dit kan zijn.
Hoewel deze tutorial lijkt te 'ontketenen de kracht van arrays en loops' het eigenlijk gewoon krassen op het oppervlak. Ik moedig iedereen die geïnteresseerd is (en dat betekent JIJ als je dit nog steeds leest) sterk aan om de PHP online-documenten te lezen voor de versie die je gebruikt. Je kunt ze vinden op php.net. We hebben slechts één type lus gebruikt in deze zelfstudie, de foreach lus. Er zijn anderen zoals voor, doen terwijl en terwijl waar je ook gebruik van kunt maken door er meer over te weten.