Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [PHP] Wat is sneller: switch-case -> if-else (https://forum.scholieren.com/showthread.php?t=579390)

Triloxigen 25-08-2003 12:08

[PHP] Wat is sneller: switch-case -> if-else
 
Wat is sneller: switch-case of if-else

1 van die 2 zal vast wel sneller zijn, al is het maar een paar ms, welke is dan het snelste?

Koen 25-08-2003 12:40

Switch-case lijkt mij sneller, maar waarom probeer je 't niet gewoon? :)

Fade of Light 25-08-2003 12:40

Citaat:

In a switch statement, the condition is evaluated only once and the result is compared to each case statement. In an elseif statement, the condition is evaluated again. If your condition is more complicated than a simple compare and/or is in a tight loop, a switch may be faster.

Bron: php.net

Fade of Light 25-08-2003 12:43

Citaat:

Koen schreef op 25-08-2003 @ 13:40:
Switch-case lijkt mij sneller, maar waarom probeer je 't niet gewoon? :)
omdat het niet altijd in alle gevallen hetzelfde hoeft te zijn. Om het dan goed te testen moet je je uiteindelijke script op twee manieren schrijven en die dan vergelijken met elkaar. Redelijk wat werk...maarja ligt aan de grote van je script enzo...

Triloxigen 25-08-2003 12:44

Citaat:

Koen schreef op 25-08-2003 @ 13:40:
Switch-case lijkt mij sneller, maar waarom probeer je 't niet gewoon? :)
Omdat ik al had verwacht dat een antwoord al wel ergens beschikbaar is..

Citaat:

Fade of Light schreef op 25-08-2003 @ 13:40:
Bron: php.net
"may be faster"

lekker duidelijk..

Fade of Light 25-08-2003 13:02

Citaat:

Bootsman123 schreef op 25-08-2003 @ 14:01:
Als een variabele wel 100 mogelijke waardes kan hebben, dan ga ik geen switch-case maken. Doe dan maar een (langzamere) if-else, want dat programmeert in ieder geval sneller.
korte termijn dus...anderen prefereren lange termijn oplossingen :)

eddie 25-08-2003 14:12

Citaat:

Bootsman123 schreef op 25-08-2003 @ 14:01:
Als een variabele wel 100 mogelijke waardes kan hebben, dan ga ik geen switch-case maken. Doe dan maar een (langzamere) if-else, want dat programmeert in ieder geval sneller.
switch-case is veeeel overzichtelijker (imo dan)

Triloxigen 25-08-2003 14:14

Citaat:

Bootsman123 schreef op 25-08-2003 @ 14:01:
Als een variabele wel 100 mogelijke waardes kan hebben, dan ga ik geen switch-case maken. Doe dan maar een (langzamere) if-else, want dat programmeert in ieder geval sneller.
Waarom programmeert dat sneller?
Dat vind ik niet sneller eigenlijk :/

Harrie 25-08-2003 15:42

Citaat:

McLaren schreef op 25-08-2003 @ 15:14:
Wat is sneller
je merkt er geen hol van in een door-de-weekse pagina.

Triloxigen 25-08-2003 16:05

Citaat:

Harrie schreef op 25-08-2003 @ 16:42:
je merkt er geen hol van in een door-de-weekse pagina.
1. Dat is de vraag niet
2. wie zegt dat het een door-de-weekse pagina is
3. al is het dat, dan kan het nog veel uitmaken, ligt eraan wat het allemaal doet en de groote

Dus voordat je weer wat zegt, denk na..

Triloxigen 25-08-2003 18:13

Citaat:

Bootsman123 schreef op 25-08-2003 @ 18:29:
Zeg ons dan wat je wilt maken.
Dat is helemaal niet aan de orde,
ik wil gewoon weten wat sneller is :)

Triloxigen 25-08-2003 19:56

Citaat:

Bootsman123 schreef op 25-08-2003 @ 20:31:
Op php.net staat dat het sneller KAN zijn. En anders kun je misschien even een klein programmaatje schrijven waarbij je de tijd over de executie berekent.
Ja, maar er staat de omschrijving even los vertaald "Soms kan het sneller zijn"..
Dus soms wel, en soms niet..
Sinds wanneer kan een computer iets echt random doen>?

Harrie 25-08-2003 20:14

Citaat:

McLaren schreef op 25-08-2003 @ 20:56:
Ja, maar er staat de omschrijving even los vertaald "Soms kan het sneller zijn"..
Dus soms wel, en soms niet..
Sinds wanneer kan een computer iets echt random doen>?

als je een voetbalwedstrijd bekijkt.. hangt het van vele factoren af waar die bal heen gaat.. dus positie van spelers, de stand misschien wel het denkvermogen ed.

of zal ik eerst nog een paar x gaan denken voordat ik wat zeg :rolleyes:

Triloxigen 25-08-2003 20:30

Citaat:

Harrie schreef op 25-08-2003 @ 21:14:
als je een voetbalwedstrijd bekijkt.. hangt het van vele factoren af waar die bal heen gaat.. dus positie van spelers, de stand misschien wel het denkvermogen ed.

of zal ik eerst nog een paar x gaan denken voordat ik wat zeg :rolleyes:

Ja, je ijlt uit je nek..

Harrie 25-08-2003 20:35

Citaat:

McLaren schreef op 25-08-2003 @ 21:30:
Ja, je ijlt uit je nek..
als je dat niet begrijpt, is de massa van je bovengedeelte nihil..

ik bedoel ermee, dat je niet standaard kan zeggen welke sneller is..

deathz0rz 25-08-2003 20:48

http://deathz0rz.homeunix.net/test.php

source:

http://deathz0rz.homeunix.net/test.php?source

Droyd 25-08-2003 21:12

In QB was een select case sneller
(kweet niet juist wat een switch case is)
Bij If worden alle mogelijkheden doorlopen
bij een SELECT case (als het dat is wat je bedoelt) word de select case structuur beeindigd zodra de juiste voorwaarde gevonden is.
En dat kan al bij de eerste regel van de select case zijn.

Nu ja, het zou kunnen dat je hier helemaal niets aan hebt, maar ik probeer maar te helpen :)
edit: Oh als je een if else gebruikt ipv een nieuwe if zou et zoals jij zegt idd geen fuck mogen uitmaken :s Het komt eigenlijk op hetzelfde neer. Misschien toch een klein prog ervoor schrijven in php (ik kan zelf geen php, had het anders wel ff gedaan voor je)

deathz0rz 25-08-2003 21:31

Citaat:

Droyd schreef op 25-08-2003 @ 22:12:
In QB was een select case sneller
(kweet niet juist wat een switch case is)
Bij If worden alle mogelijkheden doorlopen
bij een SELECT case (als het dat is wat je bedoelt) word de select case structuur beeindigd zodra de juiste voorwaarde gevonden is.
En dat kan al bij de eerste regel van de select case zijn.

Nu ja, het zou kunnen dat je hier helemaal niets aan hebt, maar ik probeer maar te helpen :)
edit: Oh als je een if else gebruikt ipv een nieuwe if zou et zoals jij zegt idd geen fuck mogen uitmaken :s Het komt eigenlijk op hetzelfde neer. Misschien toch een klein prog ervoor schrijven in php (ik kan zelf geen php, had het anders wel ff gedaan voor je)

ja, switch in php=SELECT CASE in BASIC

van php.net:
It is important to understand how the switch statement is executed in order to avoid mistakes. The switch statement executes line by line (actually, statement by statement). In the beginning, no code is executed. Only when a case statement is found with a value that matches the value of the switch expression does PHP begin to execute the statements. PHP continues to execute the statements until the end of the switch block, or the first time it sees a break statement. If you don't write a break statement at the end of a case's statement list, PHP will go on executing the statements of the following case. For example:

Enlightenment 25-08-2003 22:25

Citaat:

McLaren schreef op 25-08-2003 @ 20:56:
Ja, maar er staat de omschrijving even los vertaald "Soms kan het sneller zijn"..
Dus soms wel, en soms niet..
Sinds wanneer kan een computer iets echt random doen>?

May be faster, betekent niet soms wel soms niet sneller. Het betekent dat het sneller kán zijn. Dus: óf sneller, óf niet.

En als je logisch nadenkt weet je ook waarom dat zo is; bij een if-then statement wordt de evaluatie elke keer opnieuw gemaakt, terwijl bij een switch-case deze maar één keer wordt gemaakt. Voor simpele string/numeric matches kun je dus het beste switch-case gebruiken.

Wil je meer weten, dan kun je dat zelf uitproberen door de execution time te vergelijken bij beide methodes, zoals gezegd.

Droyd 25-08-2003 22:35

Citaat:

Enlightenment schreef op 25-08-2003 @ 23:25:
De waarheid
Wat ik niet beter kan zeggen dan dit :)

Kawouter 25-08-2003 23:17

Citaat:

Enlightenment schreef op 25-08-2003 @ 23:25:
De waarheid
Idd, dat is zo, beter gezegd kan het niet !!!

micra 26-08-2003 09:32

Uuh als het goed is is witch-case wel sneller,

Maar het licht er natuurlijk ook wel aan hoeveel taqs je der in zet he ;)

want met een if-else kun je zo veel dingen als je maar wilt achter elkaar aan zetten,


PHP-code:

<?
if($submit) 
 {
   if($naam =="") 
     { 
       echo" u heeft geen naam ingevult";
      }
   else 
      {
   enz enz
?>

is natuurlijk langzamer dan:

PHP-code:

<?
 if($lid == "admin") 
  { 
   echo"welkom admin";
  }

dus ik denk dat het gewoon der aan licht hoe groot je script is

deathz0rz 26-08-2003 09:36

Citaat:

micra schreef op 26-08-2003 @ 10:32:
1 Uuh als het goed is is witch-case wel sneller,

2 Maar het licht er natuurlijk ook wel aan hoeveel taqs je der in zet he ;)

3 want met een if-else kun je zo veel dingen als je maar wilt achter elkaar aan zetten,

-php-

4 dus ik denk dat het gewoon der aan licht hoe groot je script is

1 ja
2 :confused:
3 dat kan met switch ook
4 dat heeft er al helemaal niks mee te maken

Triloxigen 26-08-2003 09:50

Citaat:

micra schreef op 26-08-2003 @ 10:32:
Uuh als het goed is is witch-case wel sneller,

Maar het licht er natuurlijk ook wel aan hoeveel taqs je der in zet he ;)

want met een if-else kun je zo veel dingen als je maar wilt achter elkaar aan zetten,


PHP-code:

xxx 

is natuurlijk langzamer dan:

PHP-code:



dus ik denk dat het gewoon der aan licht hoe groot je script is

Je hebt werkelijk geen idee waar het over gaat he...

eddie 26-08-2003 10:00

een switch is trouwens sneller bij zeer ingewikkelde/tijdrovende verglijkingen, zoals substrings, machten, zoeken in strings, etc, omdat de functie voor de substring maar een keer wordt uitgevoerd.

Dus
PHP-code:

switch( left$zin) )
{
  case 
'abcde': print 'huppeldepup1'; break;
  case 
'bcdef': print 'huppeldepup2'; break;
  case 
'cdefg': print 'huppeldepup3'; break;


is over het algemeen sneller dan
PHP-code:

if( left$zin) ==  'abcde'){ print 'huppeldepup1'; }
elseif( 
left$zin) == 'bcdef'){ print 'huppeldepup2'; }
elseif( 
left$zin) == 'cdefg'){ print 'huppeldepup3';} 

omdat in het slechtste geval hij 3 keer een left moet doen.

Triloxigen 26-08-2003 10:07

hmm,
zo had ik er nog niet eens over na gedacht :D

(y)


Alle tijden zijn GMT +1. Het is nu 13:50.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.