login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Variabelen tutorial

Offline ece - 22/07/2006 22:58
Avatar van eceHTML interesse Hallo.
Ik heb nu zelf 'PHP4 zonder stress'. Handig boek maar ze behandelen variabelen en variabele variabelen niet zo uitgebreid (vind ik). Ik vind het nog niet duidelijk genoeg en snap het dus niet.
Dit geldt ook voor Arrays.
Weet iemand een goede uitgebreide tutorial waar ze alles in uitleggen en e.v.t (dat zou het mooiste zijn) enkele problemen behandelen die voor kunnen komen.

De tutorial van SiteMasters vind ik ook niet niet heel uitgebreid. Dus dat snap ik nog niet goed.

Hopelijk kan iemand me helpen.

Gr, ece.

44 antwoorden

Gesponsorde links
Offline Nrzonline - 22/07/2006 23:13 (laatste wijziging 22/07/2006 23:18)
Avatar van Nrzonline PHP ver gevorderde Nevermind deze post, plaats inderdaad maar even wat precieser
wat je moet weten.. Dat was namelijk ietswat te basic wat ik
poste 
Offline ece - 22/07/2006 23:16 (laatste wijziging 22/07/2006 23:24)
Avatar van ece HTML interesse Ja dat snap ik. Wacht effe. Ik zal zsm effe iets scannen uit het boek wat ik niet begrijp.
Check:
http://www.computermasters.nl/overige/variabelen
Vanaf: $var1 = 'Hallo';
TOT
Constanten.
Hoe kan je ineens van $var1 = 'Hallo';
$hallo maken? Ik zou graag meer uitleg willen weten over dit stukje.
Offline Maarten - 22/07/2006 23:26 (laatste wijziging 22/07/2006 23:31)
Avatar van Maarten Erelid Mjah z'n doos theorie klopt niet 100% 

Je hebt dus een blad papier. Je kan dat blad papier een naam geven, zodat je het later makkelijker terugvindt tussen je ander papier.
Ik neem een blad papier, noem het 'naam' en schrijf er 'Murfy' op:
  1. <?php
  2. $naam = 'Murfy';
  3. // Dit is een gewone variabele dus
  4. ?>


Maar nu wil ik meer dan 1 naam gaan bijhouden, en $naam1, $naam2 vind ik geen zo'n goede naam.
Ik neem dus een map, waar ik dan allemaal blaadjes kan in stoppen.
Ik schrijf 'namen' op m'n map, en ik nummer alle bladzijden.
  1. <?php
  2. $namen = array();
  3. $namen[] = 'Murfy':
  4. $namen[] = 'svm';
  5. // Dit zijn arrays
  6. // Met [ ] duidt je aan dat hij de volgende key neemt, oftewel dus bladzijde
  7. ?>


Nu wil ik echter een map met voornamen en achternamen. Ik kan dit oplossen door in plaats van m'n pagina's een nummer te geven, de pagina's naar de naam te noemen, en dan de voornaam erop te schrijven.
  1. <?php
  2. $namen = array();
  3. $namen['Ureel'] = 'Maarten':
  4. $namen['Alders'] = 'Michiel';
  5. // Nu heb je de keys 'Ureel' en 'Alders'
  6. ?>

Dit is mooi, maar ik wil nu ook nog de nickname (wat ben ik een lastige kneuter)
IK ga dus m'n blad indelen in kleinere blaadjes (hokjes tekeken ).
  1. <?php
  2. $namen = array();
  3. $namen['Murfy'] = array('Maarten','Ureel');
  4. $namen['Ontani'] = array('Michiel','Alders');
  5. ?>

Je ziet dat ik nu de array()-functie gebruik. Even duidelijker:
  1. <?php
  2. $array = array();
  3. $array[] = 'Blaat';
  4. $array[] = 'Zooi';
  5. // Dit is exact hetzelfde als:
  6. $array = array('Blaat','Zooi');
  7.  
  8. // Ander voorbeeld
  9. $array = array();
  10. $array['blaat'] = 'zooi';
  11. $array['w00p'] = 'taart';
  12. // Dit is exact hetzelfde als:
  13. $array = array('blaat' => 'zooi',
  14. 'w00p' => 'taart');
  15. ?>


Nu je dit weet, kan ik dus de waarde 'Maarten' uit het vorige voorbeeld opvragen op deze manier:
  1. <?php
  2. echo $namen['Murfy'][0];
  3.  
  4. // Of anders:
  5. echo 'Mijn voornaam is '.$namen['Murfy'][0].', en m\'n achternaam is '.$namen['Murfy'][1];
  6. ?>

Je ziet dat ik hier niet m'n typ, maar m\'n. Reden:
als ik m'n zou typen, zou PHP denken dat ik klaar ben met m'n echo. Als dat zo zou zijn, dan zou die "n achternaam.." erna niet correct zijn (geen functie etc), en dit dus errors geven. Door een backslash (\) voor die ' te zetten, duiden we aan dat hij dit letterlijk moet op het scherm zetten en het niet 'interpreteren'.


_______________________
Uitleg over het stukje dat je niet snapt:

Een variabele wijs je toe met
$blaat = 'zooi'.

Als ik nu dus wil een variabele maken, die heet zoals de waarde van $blaat, dan zou ik dus dit moeten doen:
$[de_waarde_van_$blaat] = 'iets';

Maar hoe bekom je die waarde? Simpel, das gewoon $blaat.
Dus $$blaat = 'iets';

Je kan hetzelfde doen met functies.
Stel je dat je ofwel de functie doeIets of doeNiets moet gebruiken.
Je hebt een stukje code die bepaalt welke functie er moet gebruikt worden, aan de hand van een aantal voorwaarden en zo, en dan is het resultaat in het ene geval
$gebruikFunctie = 'doeNiets';
en in het andere
$gebruikFunctie = 'doeIets';

Hoe gebruik je nu de functie als je niet op voorhand kan weten welke het zal zijn? Simpel
$gebruikFunctie(hier dan de parameters van de functie);
Offline Martijn1989 - 22/07/2006 23:26 (laatste wijziging 22/07/2006 23:31)
Avatar van Martijn1989 PHP ver gevorderde Wat wil je weten overvariablen ? Het zijn gewoon reserveplekjes met een inhoud. Er valt niet zoveel over te vertellen.

  1. <?php
  2.  
  3. $naam = "Martijn"; // Tekst tussen ""
  4. $leeftijd = 17; // Getallen niet tussen ""
  5.  
  6. $volgendjaar = $leeftijd + 1;
  7.  
  8. echo $naam ." is volgend jaar ". $volgendjaar ." jaar oud!";
  9.  
  10. ?>


omg, Murfy dat was een mooie uitleg

Alleen dit is zonde :


Citaat:
Je ziet dat ik hier niet m'n typ, maar m'n.
[..code..]


Doe het gewoon zo :

  1. <?php
  2. echo "Mijn voornaam is ". $namen['Murfy'][0] .", en m'n achternaam is ".$namen['Murfy'][1];
  3. ?>
Offline ece - 22/07/2006 23:29 (laatste wijziging 22/07/2006 23:31)
Avatar van ece HTML interesse Jaja ik snap het een beetje.
Maar hoe weet ie nou wat Voornaam, Achternaam en Nickname is.
Of maakt dat niet uit zolang je het zelf maar weet .

En waar staat die 0 en die 1 voor. Voor dat die weet welke waarde die uit de array moet halen?
Offline Martijn1989 - 22/07/2006 23:31
Avatar van Martijn1989 PHP ver gevorderde Dat is gewoon een naam die je voor jezelf opgeeft.

Je kan hem ook:

  1. <?php
  2.  
  3. $pietmetdelangesnor = 5;
  4.  
  5. ?>


noemen
Offline Maarten - 22/07/2006 23:32 (laatste wijziging 22/07/2006 23:33)
Avatar van Maarten Erelid
Citaat:
Doe het gewoon zo :
Ja, en dan gaan ze HTML ook 'gewoon zo' echo'en, en moeten ze tienduizend keer backslashen. Als hij een boek voor PHP beginners aan het leren is zie je dat hij het dus nog niet weet, en kan je hem beter gelijk de goeie methode aanleren.

Die 1 en die 0 zijn keys.

  1. <?php
  2. $array = array();
  3. $array[] = 'zooi'; // Deze krijgt key 0
  4. $array[] = 'blaat'; // Deze krijgt key 1
  5. // enzovoort
  6. ?>
Offline Nrzonline - 22/07/2006 23:33 (laatste wijziging 22/07/2006 23:33)
Avatar van Nrzonline PHP ver gevorderde Zoals het in het book staat met variabele variabelen:

  1. <?PHP
  2. $var1 = "hallo";
  3. $$var1 = " nederland";
  4.  
  5. echo $var1 . ${$var1};
  6. ?>


is vrijwel hetzelfde als:
  1. <?PHP
  2. $var1 = "hallo";
  3. $var1 .= " nederland";
  4.  
  5. echo $var1;
  6. ?>


Alleen is het beter te scheiden volgensmij, maar waarom
iemand het überhaupt op zo'n manier zou doen, heb ik geen
idee van =)
Offline Maarten - 22/07/2006 23:34 (laatste wijziging 22/07/2006 23:35)
Avatar van Maarten Erelid Kunnen de mensen die niet weten waarover ze het hebben aub gewoon niks zeggen in plaats van hem enkel in de war te posten en zooi te vermelden waar een beginner niks aan heeft?

http://nl.wikib...Variabelen
Offline ece - 22/07/2006 23:35 (laatste wijziging 22/07/2006 23:36)
Avatar van ece HTML interesse ^^Aha ik begrijp het al iets meer.
  1. <?php
  2. $naam = "Jeroen";
  3. $leeftijd = "14";
  4. $hobby = "Computeren";
  5.  
  6. echo $naam ." is". $leeftijd ."en houd van". $hobby;
  7. ?>

Doe ik het zo goed?
Offline Ultimatum - 22/07/2006 23:36
Avatar van Ultimatum PHP expert @martijn ik denk dat murfy duidelijk wil maken hoe je dat ech0-ed buiten en binnen een zin 

dat weet je door wat in de eerste [] staat, als ik je vraag goed begrijp
Offline Martijn1989 - 22/07/2006 23:36
Avatar van Martijn1989 PHP ver gevorderde Haha, ik vind gewoon dat je het in 1 keer goed moet leren :

$naam = "Martijn's";

en niet

$naam = 'Martijn\'s'
Offline Maarten - 22/07/2006 23:37 (laatste wijziging 22/07/2006 23:38)
Avatar van Maarten Erelid Ja ece.

Maar ik raad je toch aan enkele quotes te gebruiken, ook al doen ze het in het boek anders 

Want als je dan HTML in een variabele wilt stoppen, zul je iedere " die er in voorkomt moeten voorafgaan door een \, terwijl je dat bij een enkele quote niet moet doen (omdat: zie m'n lange post).

En Martijn, je zult je erin verbazen als je ziet hoeveel mensen 1 keer dubbele quotes gebruiken en het dan ALTIJD doen, of het nu HTML is en gewone tekst.

Aangezien de kans dat je HTML echo'ed groter is dan dat je zinnen met ' gaat echo'en, gebruik je dus betere enkele quotes, het vertraagt niks aan het parsen en het is idiot proof 'Ik ben $naam' geef 'Ik ben $naam' en niet 'Ik ben Murfy' zoals bij enkele quotes.
^ BAD
Offline Nrzonline - 22/07/2006 23:37
Avatar van Nrzonline PHP ver gevorderde $leeftijd = "14";
een numeriek getal, mag buiten quotes:
$leeftijd = 14;
Offline ece - 22/07/2006 23:38 (laatste wijziging 22/07/2006 23:47)
Avatar van ece HTML interesse Ik heb het zoiets geleerd.
$naam = "Jeroen\*'\*s";

Edit:
Ok zal ik doen (Enkele quotes) en getal buiten quotes.
Dus het is ook mogelijk om dit te doen.
  1. <?php
  2. $ip = "HTTP blaat blaat (ip ophaal script dus)";
  3.  
  4. echo 'Welkom' .$ip. 'op www.sitemasters.be';
  5. ?>
Offline Maarten - 22/07/2006 23:39 (laatste wijziging 22/07/2006 23:39)
Avatar van Maarten Erelid Ece, dat slaat helemaal nergens op 

En kben blij dat je het zo zult doen. Ik zal goed slapen 
Offline Martijn1989 - 22/07/2006 23:39 (laatste wijziging 22/07/2006 23:41)
Avatar van Martijn1989 PHP ver gevorderde
Citaat:
Ja.

Maar ik raad je toch aan enkele quotes te gebruiken, ook al doen ze het in het boek anders

Want als je dan HTML in een variabele wilt stoppen, zul je iedere " die er in voorkomt moeten voorafgaan door een , terwijl je dat bij een enkele quote niet moet doen (omdat: zie m'n lange post).


Daarom moet je dan ook gewoon dit doen :

$naam = "<font face='Verdana'>Tekst</font>";

dat staat netter dan allemaal \' of \"

Citaat:
Edit:
Ok zal ik doen (Enkele quotes) en getal buiten quotes.


Slaat nergens op, dubbele quotes gebruiken is veel beter.
Offline Maarten - 22/07/2006 23:40 (laatste wijziging 22/07/2006 23:42)
Avatar van Maarten Erelid NEEN DAT MOET JE NIET WANT DAT IS GEEN HTML.

HTML is met DUBBELE QUOTES, niet met ENKELE QUOTES.

En daarom doe je dus
  1. <?php
  2. $naam = '<font face="Verdana">Tekst</font>';
  3. ?>


Is dat nu ZO moeilijk 

En ece, het moet
  1. <?php
  2. echo 'Welkom' .$ip. 'op www.sitemasters.be';
  3. ?>
zijn.
Offline Martijn1989 - 22/07/2006 23:41 (laatste wijziging 22/07/2006 23:43)
Avatar van Martijn1989 PHP ver gevorderde Helemaal onzin man, je kan gewoon ' gebruiken in plaats van " :/

  1. <?php
  2. $naam = "<font face='Verdana'>Tekst</font>";
  3. ?>


staat veel mooier!

  1. <?php
  2. echo "Welkom ". $_SERVER['REMOTE_ADDR'] ." op www.sitemasters.be";
  3. ?>
Offline ece - 22/07/2006 23:42 (laatste wijziging 22/07/2006 23:44)
Avatar van ece HTML interesse Ik zal goed slapen^^

Fieuw gelukkig .
Zie mijn post hierboven /\ voor de edit.

Edit:
Oja kan ook maar als ze velden gaan invullen dan kan je zoiets doen. Maar het is toch allebei mogelijk of niet of gaat het script dan tragen lopen ofzo?
Offline Nrzonline - 22/07/2006 23:44
Avatar van Nrzonline PHP ver gevorderde of gebruik een template parser (bijv. templatePower), heb je van dat gezanik ook geen last =)
Offline Maarten - 22/07/2006 23:44 (laatste wijziging 22/07/2006 23:45)
Avatar van Maarten Erelid
Citaat:
Helemaal onzin man, je kan gewoon ' gebruiken in plaats van " :/

OMG.. ik zeg gewoon NIKS meer in dit topic, als idioten als jij maar niet willen ophouden met LULLEN.

Je kan ook perfect
<li> typen ipv <li></li>, dat gaat ook, maar dat is gewoon niet volgens de richtlijnen, snap je dat nu niet 

Als jij het niet kunt hebben dat ik mensen aanspoor om te werken volgens officiele richtlijnen, dan kun je beter vertrekken.

En wat heeft MOOIER er nu mee te maken, het gaat over een QUOTE, niet over de kleur van je muur 
Offline ece - 22/07/2006 23:46
Avatar van ece HTML interesse Tsja ik weet niet wat handiger is. Is het dus allebei mogelijk?
Zowel in een variabele zetten of gewoon gelijk het script in de echo zetten.
Offline Maarten - 22/07/2006 23:47 (laatste wijziging 22/07/2006 23:49)
Avatar van Maarten Erelid ece; dat is het punt van de discussie nu niet.

Citaat:
Alle attribuutwaarden dienen omsloten te worden door aanhalingstekens (double quotes).

bron

Dus dan moet je WEL gaan escapen in echo's met dubbele quotes, dus is het WEL beter om enkele quotes te gaan gebruiken, en omdat een normaal scripter/programmeur een vaste gewoonte aanneemt en niet gaat afwisselen tussen dubbel of enkel, gebruik je gewoon enkele.
Offline ece - 22/07/2006 23:49 (laatste wijziging 24/07/2006 00:26)
Avatar van ece HTML interesse Ok.
Maar ik ben er in iedergeval wat wijzer uit geworden en zal het een gaan proberen.

Als ik vragen heb hoor je het wel .

Oja Murfy... Good night haha lol.

Edit:
Ik kom nu ergens niet uit.
www.computermasters.nl/oefenen/ik.php
Dit is mijn code.
  1. <?php
  2. $naam = 'Jeroen';
  3. $achternaam = 'de Haar';
  4. $leeftijd = 14;
  5. $woonplaats = 'Duiven';
  6. $hobbys = 'computeren, muziek maken en tv kijken';
  7.  
  8. echo 'Hallo ik heet' .$naam',' $achternaam. 'en ik ben' .$leeftijd. 'jaar. Ik woon in' .$woonplaats. 'en mijn hobbys zijn' .$hobbys;
  9. ?>

Wat is er fout? Ik vermoed zelf iets tussen de 2 variabelen (naam en achternaam) dus dat daar nog iets tussen moet ofzo.
Offline Xtent - 24/07/2006 02:33 (laatste wijziging 24/07/2006 02:34)
Avatar van Xtent Onbekend je fout zit in de echo bij ' .$naam',' $achternaam. '

  1. <? echo 'Hallo ik heet' .$naam',' $achternaam. 'en ik ben' .$leeftijd. 'jaar. Ik woon in' .$woonplaats. 'en mijn hobbys zijn' .$hobbys; ?>


Je bent achter $naam een punt vergeten en voor achternaam een punt vergeten.

  1. <? echo 'Hallo ik heet' .$naam. ',' .$achternaam. 'en ik ben' .$leeftijd. 'jaar. Ik woon in' .$woonplaats. 'en mijn hobbys zijn' .$hobbys; ?>
Offline Ibrahim - 24/07/2006 02:48
Avatar van Ibrahim PHP expert en nog toevoeging aan " " en ' '

single quotes is altijd beter om de reden die murfy noemt, dus ook om te voorkomen dat men variabelen binnen een quote gaan gebruiken. Mocht dit om een of andere reden wel nodig zijn (vars in quotes) dan zul je wel dubbele quotes moeten gebruiken. En om het netter te houden is dit ook slim { }

  1. <?php
  2. $var = 'Ece';
  3. echo "{$var} Dit is onnodig, maar bestaat wel ;-)";
  4. echo $var.' Dit is veel beter ;-)';
  5. ?>
Offline ece - 24/07/2006 13:47
Avatar van ece HTML interesse Het werkt nu maar nu staat alles tegen elkaar aan.
Ik weet dat '\n' ofzoiets een enter is maar wat is een spatie.
&nbsp; binnen de quotes dus zo?
  1. <? echo 'Hallo ik heet&nnbsp;' .$naam. ',' .$achternaam. 'en ik ben&nspb;' .$leeftijd. 'jaar. Ik woon in&nspb;' .$woonplaats. 'en mijn hobbys zijn&nspb;' .$hobbys; ?>

Maar nu heb ik tussen Naam en Achternaam nog niks staan.
Of is dat een andere code in php om een spatie te krijgen.
Offline Xtent - 24/07/2006 16:25
Avatar van Xtent Onbekend Een spatie is gewoon het zelfde in PHP als in HTML, maar bij een spatie tussen bepaalde woorden is die code niet nodig.

Dus het kan gewoon zo:
  1. <? echo 'Hallo ik heet ' .$naam. ', ' .$achternaam. ' en ik ben ' .$leeftijd. ' jaar. Ik woon in ' .$woonplaats. ' en mijn hobbys zijn ' .$hobbys; ?>
Offline ece - 24/07/2006 19:39 (laatste wijziging 24/07/2006 19:41)
Avatar van ece HTML interesse Ja nu is het goed.
Nu nog 1 ding: Tussen mijn voor en achternaam staat een komma die moet er niet staan kan ik dan ook dit doen?
  1. <? echo 'Hallo ik heet ' .$naam. .$achternaam. ' en ik ben ' .$leeftijd. ' jaar. Ik woon in ' .$woonplaats. ' en mijn hobbys zijn ' .$hobbys; ?>

Edit:
Onee dat werkt niet ik krijg dan een fout. Zie hier.
Hoe moet ik het dan doen?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.447s