1 else voor meer if statements

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nieko

Nieko

28/10/2007 21:26:00
Quote Anchor link
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?
 
PHP hulp

PHP hulp

16/11/2024 19:52:24
 
Joren de Wit

Joren de Wit

28/10/2007 21:30:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if(conditie1)
{
}

elseif(conditie2)
{
}

else
{
}

?>
 
Nieko

Nieko

28/10/2007 23:29:00
Quote Anchor link
Ja? Kan dat zo? Ik had op een andere site gelezen dat dan conditie1 perse hoog moet zijn wil conditie 2 werken.
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.
 
Jan Koehoorn

Jan Koehoorn

28/10/2007 23:32:00
Quote Anchor link
Dat is hier het geval.
 
Jelmer -

Jelmer -

28/10/2007 23:32:00
Quote Anchor link
Probeer het maar eens naar begrijpelijke taal te vertalen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
als conditie 1 waar is {
   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

iH8

29/10/2007 00:39:00
Quote Anchor link
beter pak je een switch:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php

$int
= 5;

switch ($int)
{
  case
1:
    print "integer is gelijk aan 1";
  break;
  case
2:
    print "integer is gelijk aan 2";
  break;
  case (
$int >= 10):
    print "integer is groter dan of gelijk aan 10";
  break;
  default:

    print "integer is niet gelijk aan 1 of 2 en kleiner dan 10";
}


?>
Gewijzigd op 01/01/1970 01:00:00 door iH8
 
Joren de Wit

Joren de Wit

29/10/2007 12:05:00
Quote Anchor link
iH8 schreef op 29.10.2007 00:39:
beter pak je een switch:
Dat hangt maar net van de situatie af. Een switch is alleen handig bij veel elseif condities en korte statements.

Als je veel code in je if, elseif en else statements hebt staan, zou ik daar toch echt geen switch voor willen gebruiken...
 
IH8

iH8

29/10/2007 12:12:00
Quote Anchor link
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.
 
Joren de Wit

Joren de Wit

29/10/2007 12:15:00
Quote Anchor link
Overzichtelijkheid?

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...
 
IH8

iH8

29/10/2007 12:26:00
Quote Anchor link
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.
 
Nieko

Nieko

29/10/2007 17:57:00
Quote Anchor link
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..
Gewijzigd op 01/01/1970 01:00:00 door Nieko
 
IH8

iH8

29/10/2007 18:15:00
Quote Anchor link
post dan eens wat code
 
- SanThe -

- SanThe -

29/10/2007 18:20:00
Quote Anchor link
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.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Nieko

Nieko

29/10/2007 19:00:00
Quote Anchor link
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,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?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.
Gewijzigd op 01/01/1970 01:00:00 door Nieko
 
Robert Deiman

Robert Deiman

29/10/2007 19:05:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
      }
?>

of zo kan ook:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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
      }
?>
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
- SanThe -

- SanThe -

29/10/2007 19:07:00
Quote Anchor link
Staan alle condities geheel los van elkaar of als conditie3 waar is dan is ook conditie1 waar. Maar niet andersom.
 
Nieko

Nieko

29/10/2007 19:11:00
Quote Anchor link
Zie edit mijn vorige post, daar kun je in zien dat het is opgelost :)

In ieder geval bedankt voor jullie hulp/inzet :)
Gewijzigd op 01/01/1970 01:00:00 door Nieko
 
Robert Deiman

Robert Deiman

29/10/2007 19:15:00
Quote Anchor link
@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.
 
Nieko

Nieko

29/10/2007 21:07:00
Quote Anchor link
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?
Gewijzigd op 01/01/1970 01:00:00 door Nieko
 
Robert Deiman

Robert Deiman

29/10/2007 21:18:00
Quote Anchor link
Het is een korte manier om te zeggen dat $check_var gelijk staat aan false:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    if($var != 1)// wanneer variabele ongelijk is aan 1
    if(!$var)
    //betekend hetzelfde als
    if($var == false)
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.