Gebruik van elseif

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn Thomas

Martijn Thomas

21/02/2008 20:12:00
Quote Anchor link
Ik probeer het volgende werkende te krijgen, nu staat er bij action 2 ingevuld maar dit wordt via een form normaal ingevuld en dat werkt dus wel.

Maar het probleem is dat ik altijd als respons krijg:
"De gekozen actie door u: Keuze 1". Maar ook bij het kiezen voor een 2, 3, 4 of 5 bij de variabele action krijg ik nog geen andere respons.

Wat doe ik fout of wat mag hier niet?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$action
= 2; //The action the user choose to undertake
?>

De gekozen actie door u:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $action ?>
<br /><br />

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

if ($action = 1){
    echo "Keuze 1.";
}

elseif ($action = 2){
    echo "Keuze 2.";
}

elseif ($action = 3){
    echo "Keuze 3.";
}

elseif ($action = 4){
    echo "Keuze 4.";
}

else {
    echo "Er is iets niet goed gegaan, u heeft geen keuze gemaakt!";
}

?>
 
PHP hulp

PHP hulp

18/11/2024 05:21:19
 
Frank -

Frank -

21/02/2008 20:13:00
Quote Anchor link
= mag worden == om een vergelijking uit te voeren.
 
Martijn Thomas

Martijn Thomas

21/02/2008 20:16:00
Quote Anchor link
Geweldig! Dat was het!

Waarom moet het eigenlijk een == zijn?
 
Frank -

Frank -

21/02/2008 20:19:00
Quote Anchor link
Omdat je daarmee een vergelijking kunt maken. Dat geldt ook voor === wanneer 2 gegevens ook van hetzelfde type, bv. een integer, moeten zijn.
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
$var
= 1; // integer
$var2 = '1'; // string

if($var == $var2){
  echo 'verschillende types, wel gelijke waarde';
}

else {
  echo 'controle 1 mislukt';
}


if($var === $var2){
  echo 'gelijke types en gelijke waarde';
}

else {
  echo 'controle 2 mislukt';
}

?>

Edit: typoootjes...
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Joep

Joep

21/02/2008 20:24:00
Quote Anchor link
met = zet je variabele gelijk aan de waarde.
met == vergelijk je of de variabele de waarde heeft

Wat betreft je code, voor volgende keer, of voor nu, als je zoveel elseif jes hebt, doe je vaak net even iets fout. Prpbeer altijd de mogelijkheden van 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
switch($action)
{
case
1:
  echo "Keuze 1";
  break;
case
2:
  echo "Keuze 2";
  break;
case
3:
  echo "Keuze 3";
  break;
case
4:
  echo "Keuze 4";
  break;
default:

  echo "Onbekende keuze"
  break;
}

?>


of nog sneller in jou geval:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "Keuze " . $action . ".";
?>
 
Lode

Lode

21/02/2008 21:44:00
Quote Anchor link
En dan heb je ook nog default in een switch.
En je kan veel meer met switch();
Wat ik er van getest heb is het iig sneller als elle lange if/elseif/else statements...
Voor simpele dingen gewoon if/else if /else natuurlijk..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$blaat
= 100;
switch(true){ // geen $var
    case ($blaat < 50)    : echo '< 50 <br/>'.PHP_EOL; break;
    case (
$blaat == 50) :  echo '== 50 <br/>'.PHP_EOL; break;
    default               :
  echo 'standaard!<br/>'.PHP_EOL; break;
}

?>


EDIT:

en als je geen break gebruikt of return kan je ook meerdere statements laten 'doorlopen' zeg maar...
En ook kan je weer switches in een switch nesten...
Gewijzigd op 01/01/1970 01:00:00 door Lode
 
Frank -

Frank -

21/02/2008 22:03:00
Quote Anchor link
Lode schreef op 21.02.2008 21:44:
En ook kan je weer switches in een switch nesten...
Zo'n nest wordt vaak bewoont door bugs, het is maar de vraag of ja dat wilt...
 
Lode

Lode

21/02/2008 22:21:00
Quote Anchor link
Geen problemen mee. Maar kan me je bezorgdheid wel inbeelden.
Maar hezelfde kan natuurlijk met het nesten van if's/ else if's / else's uiteindelijk ook.
Gewijzigd op 01/01/1970 01:00:00 door Lode
 



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.