Is het mogelijk om voor meer if statements 1 else statement te doen?
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?
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 snap de vraag niet. En een switch heeft andere mogelijkheden dan een if()/else.
Mogelijkheden ja.. Maar in mijn geval blijft de manier van functioneren hetzelfde..

Voor het geval dat jullie nog niet snappen zal ik hier een wat uitgebreider voorbeeld,
Ik heb 3 condities,

<?php
if(conditie1){
//het uit te voeren script
}
if(conditie2){
//het uit te voeren script
}
if(conditie3){
//het uit te voeren script
}
else{
//het uit te voeren script
}
?>

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:

<?php
if(conditie1){
//het uit te voeren script
}
else{
$count1 = 1;
}
if(conditie2){
//het uit te voeren script
}
else{
$count2 = 1;
}
if(conditie3){
//het uit te voeren script
}
else{
$count3 = 1;
}

if($count1 + $count2 + $count3 = 3){
//het uit te voeren script
}
?>

Zo krijg ik dus alleen iets te zien als alle condities geen resultaat geven.

<?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
      }
?>

of zo kan ook:

<?php
 if(conditie1 || conditie2 || conditie3){
    if(conditie1){
        //het uit te voeren scriptje
       }
       if(conditie2){
       //het uit te voeren scriptje
       }
       if(conditie3){
       //het uit te voeren scriptje
       }
   else{
      // hier wat er gaat gebeuren alleen wanneer allemaal niet zijn uitgevoerd
      }
?>
Staan alle condities geheel los van elkaar of als conditie3 waar is dan is ook conditie1 waar. Maar niet andersom.
Zie edit mijn vorige post, daar kun je in zien dat het is opgelost :)

In ieder geval bedankt voor jullie hulp/inzet :)
@Nieko

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.
Dit doe ik omdat in ieder conditie statement een vergelijking plaats vind waardoor het (verwacht ik) moeilijk word om het zo te doen als jij zegt.
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?
Het is een korte manier om te zeggen dat $check_var gelijk staat aan false:


<?php
    if($var != 1)// wanneer variabele ongelijk is aan 1
    if(!$var)
    //betekend hetzelfde als 
    if($var == false)
?>

Reageren