1 else voor meer if statements
Dus dat het else statement alleen word uitgevoerd als alle if statements geen resultaat leveren.
En hoe moet ik dit dan doen als het mogelijk is?
Want bijv. als conditie 1 en 2 hebben geen resultaat en conditie3 heeft een resultaat dat conditie3 wel word uit gevoerd.
Dus dat else alleen resultaat geeft als alle condities geen resultaat geven.
Dat is hier het geval.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
als conditie 1 waar is {
statement 1
} anders als conditie 2 waar is {
statement 2
} anders {
statement 3
}
statement 1
} anders als conditie 2 waar is {
statement 2
} anders {
statement 3
}
Als conditie 1 niet waar is wordt er gekeken of conditie 2 waar is. Is die ook niet waar, dan kom je bij het else-blok, en wordt statement 3 uitgevoerd.
Is conditie 1 waar, dan blijft het bij statement 1.
Is conditie 1 niet waar, maar conditie 2 wel, dan zal alleen statement 2 uitgevoerd worden.
iH8 schreef op 29.10.2007 00:39:
Dat hangt maar net van de situatie af. Een switch is alleen handig bij veel elseif condities en korte statements.beter pak je een switch:
Als je veel code in je if, elseif en else statements hebt staan, zou ik daar toch echt geen switch voor willen gebruiken...
zo snel als je een tweede elseif erin gooit vind ik een switch al gerechtvaardigd. waarom het zou schelen of je veel of weinig code in de cases gooit weet ik niet.
Bovendien ben je in een switch gebonden aan de waarde van 1 enkele variabele. In een if/elseif/else constructie kun je veel uitgebreidere voorwaarden opnemen...
overzichtelijk is veel waard idd. ik ben zelf zo ver dat ik redelijk goed weet wanneer wat te gebruiken maar de topicstarter was niet eens van de keuze op de hoogte. vandaar mijn post.
Ik ga eens kijken wat ik kan met het switch statement..
EDIT,,
switch schiet ook niet op omdat het gewoon weg hetzelfde resultaat op levert..
Gewijzigd op 01/01/1970 01:00:00 door Nieko
post dan eens wat code
Nieko schreef op 29.10.2007 17:57:
oké het elseif gaat niet werken omdat ik niet bijv. de resultaten van conditie1 en 2 kan laten zien als deze resultaat hebben maar enkel vaan 1 van beide...
Ik ga eens kijken wat ik kan met het switch statement..
EDIT,,
switch schiet ook niet op omdat het gewoon weg hetzelfde resultaat op levert..
Ik ga eens kijken wat ik kan met het switch statement..
EDIT,,
switch schiet ook niet op omdat het gewoon weg hetzelfde resultaat op levert..
Ik snap de vraag niet. En een switch heeft andere mogelijkheden dan een if()/else.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Voor het geval dat jullie nog niet snappen zal ik hier een wat uitgebreider voorbeeld,
Ik heb 3 condities,
Code (php)
Als conditie 1 en 3 resultaten moeten geven moeten ze beide iets kunnen weergeven. Maar als conditie 2 een resultaat geeft moet hij dat ook geven. Pas als conditie 1, 2 of 3 geen resultaten meer geven dan pas moet else{} worden uitgevoerd.
Dit is wat ik wil, echter doet dit elseif niet en wat ik zag bij switch was dus ook niet wat ik bedoelde..
Ik hoop dat jullie me nou beter snappen :)
EDIT,,
Ik heb het al opgelost, had net na deze post een helder moment :).
Ik heb het nou zo gedaan:
Code (php)
Zo krijg ik dus alleen iets te zien als alle condities geen resultaat geven.
Gewijzigd op 01/01/1970 01:00:00 door Nieko
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$check_var=false;
if(conditie1){
$check_var = true;
//het uit te voeren scriptje
}
if(conditie2){
$check_var = true;
//het uit te voeren scriptje
}
if(conditie3){
$check_var = true;
//het uit te voeren scriptje
}
if(!check_var){
// hier wat er gaat gebeuren alleen wanneer allemaal niet zijn uitgevoerd
}
?>
$check_var=false;
if(conditie1){
$check_var = true;
//het uit te voeren scriptje
}
if(conditie2){
$check_var = true;
//het uit te voeren scriptje
}
if(conditie3){
$check_var = true;
//het uit te voeren scriptje
}
if(!check_var){
// hier wat er gaat gebeuren alleen wanneer allemaal niet zijn uitgevoerd
}
?>
of zo kan ook:
Code (php)
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Staan alle condities geheel los van elkaar of als conditie3 waar is dan is ook conditie1 waar. Maar niet andersom.
Zie ook mijn post (+ edit) die edit is nog korter qua code en je gebruikt geen extra variabele voor de controle.
Zie ook hoe ik in het 1e voorbeeld met 1 variabele werk, in plaats van 3 verschillende. Zoals jij het doet is het in ieder geval al omslachtiger.
Jou eerste script had ik ook al geprobeerd maar werkte niet helemaal bij mij, kan ook aan mij liggen natuurlijk..
*EDIT,
Het lag idd aan mij ;) had het bovenste niet gezien ($check_var = false;)...
Waar staat dat uitroepteken eigenlijk voor? Voor inverter?
Gewijzigd op 01/01/1970 01:00:00 door Nieko