Loop in een variable plaatsen
ik vroeg me af of het mogelijk is om een loop IN een variable te plaatsen
zoals dit :
$loop = if (selection==yes ){ echo"hallo"}
else { echo "doei"} ;
en dan later in een script dan bijvoorbeeld <span>'.($loop).'</span>
alvast bedankt
Gewijzigd op 09/04/2012 14:25:10 door Kav ixx
ik heb het door gelezen maar er is wel 1 ding dat ik niet snap:
er staat dus dat dat het wel mogelijk is om een loop in een variable te maken alleen kan ik niet vinden waar dan de echo staat ??
of is het zo dat de $_POST ervoor zorgt dat de uitkomst word gepost??
zou iemand mischien een ander voorbeeld kunnen geven want ik het erg veel moeite met dit voorbeeld te begrijpen
alvast bedankt
Zal het niet zo kunnen zijn dat je gewoon het een en ander dan zal meoten gaan proberen:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$iknietsnappe = 'niet';
echo $iknietsnappe == 'yes' ? 'Goh ik begrijp het toch' : 'mmm, ik begrijp het nog steeds niet';
?>
$iknietsnappe = 'niet';
echo $iknietsnappe == 'yes' ? 'Goh ik begrijp het toch' : 'mmm, ik begrijp het nog steeds niet';
?>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$iknietbegrijp = 'no';
$iknietsnapp = $iknietbegrijp == 'yes' ? 'Goh ik begrijp het toch' : 'mmm, ik begrijp het nog steeds niet';
echo $iknietsnapp;
?>
$iknietbegrijp = 'no';
$iknietsnapp = $iknietbegrijp == 'yes' ? 'Goh ik begrijp het toch' : 'mmm, ik begrijp het nog steeds niet';
echo $iknietsnapp;
?>
en bovenstaande code had je ook vanuit de handleiding kunnen opmaken, dus ik betwijfel ten zeerste of je uberhaupt er naar gekeken hebt.
Gewijzigd op 09/04/2012 15:05:07 door Noppes Homeland
en ja ik heb er wel naar gekeken maar bij de example of usage stond ( met jou voorbeeld ) dit : $iknietsnappe == 'yes' ? 'Goh ik begrijp het toch' : 'mmm, ik begrijp het nog steeds niet';
die echo stond daar niet voor dus toen ik een klein voorbeeld had gemaakt en had getes met wamp kreeg ik niks te zien.
nu doet hij het wel gewoon.
en over die php als een hobby; ik ben pas begonnen met php maar het mijzelf van alles op de hals gehaald waar ik een groot deel niet van snap.
ik denk dat als je de basis van php goed beheerd deze dingen inderdaad makkelijk te begrijpen zijn maar die basis begrijp ik soms ook nog niet helemaal goed dus vandaar dat zo'n uitleg op php.net voor mij vaak op het eerste gezicht een goocheltruc in het chinees lijkt.
in iedergeval bedank voor je hulp dit heeft voor mij een hoop duidelijk gemaakt.
Toevoeging op 09/04/2012 15:28:00:
en nu dit topic toch bestaat:
ik wil niet alleenmaar een if en else loop maken maar een if ifelse ifesle else loop :) en hoe moet ik dat dan bereiken met je iknietsnapp voorbeeld?
ik zal het een keer uitleggen ( een reactie hoeft niet eens meer )
1.) ik probeer iets te maken
2.) het lukt niet
3.) ik zoek naar oplossingen ( google , php.net , tutorials ect..)
4.) ik kan na 2 dagen nog steeds niks vinden
5.) ik stel mijn vraag hier
6.) ik vraag om een uitleg
7.) ik word terug gestuurt naar de plaats waar ik er 2 dagen geleden zelf niet uit kwam
en dan plaats jij zo'n bijdehante reactie en voorbeeld , waarbij het lijkt alsof je geen zin heb om te helpen ( omdat ik het niet in 1 keer snap ) .
volgende keer reageer dan niet ....
mocht je opeens van gedrag zijn verandert en daadwerkelijk willen helpen
dit is mijn vraag:
ik wil een if elseif elseif else lus maken en deze met 1 variable kunnen oproepen.
voorbeeld : ik heb een formulier met een selectielijst met 3 keuze's
dan wil ik verderop kunnen plaatsen $loop en dat dan vervolgens op die exacte plaats de geselecteerde keuzen met het juiste plaatje die bij die keuzen hoord word weer gegeven
Toevoeging op 09/04/2012 15:50:18:
dus niet een uitleg over de if elseif else lus want dat snap ik en dat is de vraag niet ..
en dus niet een voorbeeld met iknietsnappe met alleen een if en else
Even een begrip uit de wereld helpen: if else lus en if loop. Dit klopt allebei niet. Een loop is in scripttalen for en foreach enzo en dingen met if en else heten statements.
> (...)zo'n uitleg op php.net voor mij vaak op het eerste gezicht een goocheltruc in het chinees lijkt.
Heb je al eens deze tut gelezen? Die zorgt ervoor dat je PHPnet beter begrijpt: http://www.phphulp.nl/php/tutorial/overig/phpnet/757/
Tevens wat meer informatie over de zogenaamde ternary operator: http://phptuts.nl/view/10/
Tevens een antwoord op je echte vraag. We gaan het eerst even uitgebreid opschrijven:
Code (php)
Dit kun je ook schrijven als:
Code (php)
Ik hoop dat je deze stap begrijpt? Ga anders even na wat er gebeurd in het eerste voorbeeldje, stap voor stap, en dan wat er gebeurd in het 2e voorbeeldje. Het is belangrijk dat je dit snapt.
Nu hebben we dus eigenlijk 2 if ... else statements. 1tje voor $foo == 'baz' en in de else van deze statement hebben we de if ... else voor $foo == 'bax'.
Als we dit in de zogenaamde ternary operator vorm willen schrijven hebben we dus ook 2x de ternary operator nodig. 1tje voor de eerste if ... else en daarna in de else de 2e.
Laten we eerst de eerste if ... else ternary opschrijven:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$foo = 'bar';
$bar = ($foo == 'baz'
? 'something'
: '' // dit laten we even leeg
);
?>
$foo = 'bar';
$bar = ($foo == 'baz'
? 'something'
: '' // dit laten we even leeg
);
?>
Nu schrijven we in de else (dus na de eerste :) de 2e ternary operator en daarmee de if:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$foo = 'bar';
$bar = ($foo == 'baz'
? 'something'
: ($foo == 'bax'
? 'another something'
: 'nothing'
)
);
?>
$foo = 'bar';
$bar = ($foo == 'baz'
? 'something'
: ($foo == 'bax'
? 'another something'
: 'nothing'
)
);
?>
Nu hebben we de if ... elseif ... else dus opgeschreven in de versie met de ternary operator. De haakjes die er staan zijn voor het overzicht, zo weet je wat bij wat hoort en de 2e paar haakjes zijn zelfs verplicht in PHP (maar dat komt doordat het nog niet 100% in PHP werkt).
Je ziet dus dat je soms iets op een andere manier opschrijven om tot een oplossing te komen.
Gewijzigd op 09/04/2012 16:36:28 door Wouter J
Het voorbeeld van Wouter maar dan met een switch constructie:
Code (php)
Met het switch statement kijk je dus naar de waarde van $foo in dit geval. Elke case die jer eronder ziet beschrijft een mogelijke waarde. Als $foo == 'bax' dan wordt het eerste case statement uitgevoer en wordt $bar dus 'something'. De break die erachter staat zorgt dat de executie binnen het switch statement wordt gestaakt erna, zodat de andere statements niet worden uitgevoerd.
Als $foo == 'baz' dan krijg je dus de tweede en als alle zijn doorlopen en er geen match is gevonden dan wordt de default uitgevoerd, in dit geval $bar = 'nothing' dus.