[PHP] Is dit in een switch() op te lossen?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 22:22
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$fout = 0;
$fout_type = array();

if(strlen($_POST['blaat']) <= 5)
{
    array_push($fout_type, 'blaat');
}
elseif(strlen($_POST['blaat2']) <= 5)
{
    array_push($fout_type, 'blaat2');
}
elseif(strlen($_POST['blaat3']) <= 5)
{
    array_push($fout_type, 'blaat3');
}

if(count($fout_type) >= 1)
{
    $fout = 1;
}
?>


Nu vraag ik me dus af is dit korter te doen met een switch? Ik had geprobeerd te switchen op $_POST maar volgens mij kan dit niet :r

[ Voor 13% gewijzigd door Spixo op 20-10-2004 15:17 ]


Acties:
  • 0 Henk 'm!

  • Ajunne
  • Registratie: December 2001
  • Laatst online: 09-09 11:38

Ajunne

Uitje

Volgens mij kan dat inderdaad niet. Wat is er trouwens mis met deze code? Het werkt toch goed?

Acties:
  • 0 Henk 'm!

  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 22:22
Ajunne schreef op 20 oktober 2004 @ 15:18:
Volgens mij kan dat inderdaad niet. Wat is er trouwens mis met deze code? Het werkt toch goed?
Ehm ja in principe werkt het goed. Alleen zijn het ruim 45 if/elses, dan staat een switch tog netter 8)

Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 21-09 00:18
hij kan wel switchen op post, maar niet op zoiets

Je kan ook met foreach het in een array 'loopen'

[ Voor 35% gewijzigd door simon op 20-10-2004 15:20 ]

|>


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:44

gorgi_19

Kruimeltjes zijn weer op :9

En een for loop, welke je in een aparte functie zet?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Korter zal je deze code niet krijgen met een switch aangezien je niet zomaar ff $_POST kunt gebruiken en daar de waardes uithalen die je wilt.

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:34
hmm, laatst ook al een topic over zoiets geweest. Kan hem alleen niet vinden.. [PHP] Speciale 'Delphi-stijl' switch iig kan het ongeveer zo:
PHP:
1
2
3
4
5
6
7
switch (TRUE)
{
case (strlen($_POST['blaat']) <= 5): //code
    break;
case (strlen($_POST['blaat2']) <= 5): //code
    break;
}

[ Voor 24% gewijzigd door T-MOB op 20-10-2004 15:26 ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Ajunne
  • Registratie: December 2001
  • Laatst online: 09-09 11:38

Ajunne

Uitje

Ho maar. Wat ben je eigenlijk van plan met 45 variabelen over te sturen?

Acties:
  • 0 Henk 'm!

  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 22:22
gorgi_19 schreef op 20 oktober 2004 @ 15:20:
En een for loop, welke je in een aparte functie zet?
Nu je het zegt, daar heb ik nooit aan gedacht :9
T-MOB schreef op 20 oktober 2004 @ 15:21:
hmm, laatst ook al een topic over zoiets geweest. Kan hem alleen niet vinden.. iig kan het ongeveer zo:
PHP:
1
2
3
4
5
6
7
switch (TRUE)
{
case (strlen($_POST['blaat']) <= 5): //code
    break;
case (strlen($_POST['blaat2']) <= 5): //code
    break;
}
Ff testen zo...
Ajunne schreef op 20 oktober 2004 @ 15:22:
Ho maar. Wat ben je eigenlijk van plan met 45 variabelen over te sturen?
Veel invulvelden :?

[ Voor 59% gewijzigd door Spixo op 20-10-2004 15:24 ]


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Ajunne schreef op 20 oktober 2004 @ 15:22:
Ho maar. Wat ben je eigenlijk van plan met 45 variabelen over te sturen?
Idd, vraag ik me ook af :?

Kun je niet beter een array oversturen ipv 45 losse posts? Dan kun je die ook meteen in een switch (of for-lus) dumpen en ben je klaar.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

T-MOB schreef op 20 oktober 2004 @ 15:21:
hmm, laatst ook al een topic over zoiets geweest. Kan hem alleen niet vinden.. iig kan het ongeveer zo:
PHP:
1
2
3
4
5
6
7
switch (TRUE)
{
case (strlen($_POST['blaat']) <= 5): //code
    break;
case (strlen($_POST['blaat2']) <= 5): //code
    break;
}
imo kan je voor de leesbaarheid dan beter if-statements gebruiken.

Acties:
  • 0 Henk 'm!

  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 22:22
Ik heb even zitten kijken naar foreach() maar ik wil een variabele strlen() op kunnen geven voor elke var dus dat gaat helaas niet op. 8)7

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:34
Erkens schreef op 20 oktober 2004 @ 15:24:
[...]

imo kan je voor de leesbaarheid dan beter if-statements gebruiken.
Eensch.. was eigenlijk ook meer een antwoord op de vraag of het in een switch op te lossne was. Zelf lijkt me een foreach loopje nog overzichtelijker...

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:34
Ricardo87 schreef op 20 oktober 2004 @ 15:27:
Ik heb even zitten kijken naar foreach() maar ik wil een variabele strlen() op kunnen geven voor elke var dus dat gaat helaas niet op. 8)7
PHP:
1
2
3
4
5
6
7
$length = array (
'blaat' => 5,
'blaat2' => 7);

foreach ($_POST as $name -> $value)
{
if (strlen($value < $length[$name])) { array_push($fout_type, $name);}

[ Voor 17% gewijzigd door T-MOB op 20-10-2004 15:36 . Reden: lezen 8)7 ]

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 22:22
Bedankt voor jullie suggesties, ik denk dat ik het toch maar bij een if/else dinges houd en de waarde met dezelfde verplichte strlen() gewoon gelijk in een array gooien _/-\o_

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
je kunt ook
code:
1
2
<input type="text" name="blaat[1]"/>
<input type="text" name="blaat[2]"/>

gebruiken, en dan in php
PHP:
1
2
3
4
5
6
7
foreach ( $_POST['blaat'] as $index => $blaat )
{
  if ( strlen($blaat) < 5 )
  {
     array_push($fout_type, $blaat . $index);
  }
}

Noushka's Magnificent Dream | Unity

Pagina: 1