wat is sneller (if-statement)
Wat is sneller (en dus de juiste keuze) ervan uitgaande dat in de normale situatie A, B en C niet waar zijn? Of maakt het niks uit?
Variant 1:
// 3 regels code, 3 if-statements
of
Variant 2:
// 5 regels code, 1 if-statement
Zelf denk ik dat variant 2 de juiste keuze is, omdat nu de hele if-statement op 1 regel staat en in de normale situatie (A, B en C niet waar) de inhoud van de if-statement toch niet wordt uitgevoerd. Is dat een terechte gedachte?
Variant 1:
// 3 regels code, 3 if-statements
Code (php)
of
Variant 2:
// 5 regels code, 1 if-statement
Code (php)
Zelf denk ik dat variant 2 de juiste keuze is, omdat nu de hele if-statement op 1 regel staat en in de normale situatie (A, B en C niet waar) de inhoud van de if-statement toch niet wordt uitgevoerd. Is dat een terechte gedachte?
Vergelijken doe je met een dubbele = ( == )
verder dat ik dat het een performance verschil is die absoluut niet merkbaar is.
Als je met objecten gaat werken zal je een keer rekening moeten houden met performance.
verder dat ik dat het een performance verschil is die absoluut niet merkbaar is.
Als je met objecten gaat werken zal je een keer rekening moeten houden met performance.
Benchmarkje zegt dat methode 2 sneller is wanneer alle disjuncten onwaar zijn, en langzamer als een van hen waar is. In dat laatste geval evalueer je de drie condities bovendien tweemaal.
Ik ben het met Erik absoluut eens dat je op deze schaal beter geen klokcycli kan proberen uit te sparen--kies dan voor een taal die sneller loopt dan PHP, daar haal je veel meer winst mee.
Nog een kipnugget:
is natuurlijk equivalent met
Ik ben het met Erik absoluut eens dat je op deze schaal beter geen klokcycli kan proberen uit te sparen--kies dan voor een taal die sneller loopt dan PHP, daar haal je veel meer winst mee.
Nog een kipnugget:
is natuurlijk equivalent met
Bas Cost Budde op 23/11/2010 12:40:50:
`Ik ben het met Erik absoluut eens dat je op deze schaal beter geen klokcycli kan proberen uit te sparen--kies dan voor een taal die sneller loopt dan PHP, daar haal je veel meer winst mee.
Alle besparingen zijn meegenomen toch??? Die dubbele if check indien A, B en C niet waar zijn is niet erg, want er wordt in dat geval een error gegooid.
Gewijzigd op 23/11/2010 13:01:29 door Ozzie PHP
Klopt het dat '===' sneller is dan '=='?
Dat had ik ergens gelezen.
Dat had ik ergens gelezen.
@Mark, en Bas
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
echo '<pre>';
$a = 'string';
if($a)
{
echo 'if($a)'.PHP_EOL;
if($a == true)
{
echo 'if($a == true)'.PHP_EOL;
}
if($a == 'string')
{
echo 'if($a == "string")'.PHP_EOL;
}
if($a === 'string')
{
echo 'if($a === "string")'.PHP_EOL;
}
if($a === true)
{
echo 'if($a === true)'.PHP_EOL;
}
}
else
{
echo 'if($a) == false';
}
[/code]
Output:
[code]
if($a)
if($a == true)
if($a == "string")
if($a === "string")
[/code]
=== is een exacte vergelijking, terwijl == ook kijkt of de variabele is geset (true). Daarom krijg je als output geen "$a === true" terug :-)
echo '<pre>';
$a = 'string';
if($a)
{
echo 'if($a)'.PHP_EOL;
if($a == true)
{
echo 'if($a == true)'.PHP_EOL;
}
if($a == 'string')
{
echo 'if($a == "string")'.PHP_EOL;
}
if($a === 'string')
{
echo 'if($a === "string")'.PHP_EOL;
}
if($a === true)
{
echo 'if($a === true)'.PHP_EOL;
}
}
else
{
echo 'if($a) == false';
}
[/code]
Output:
[code]
if($a)
if($a == true)
if($a == "string")
if($a === "string")
[/code]
=== is een exacte vergelijking, terwijl == ook kijkt of de variabele is geset (true). Daarom krijg je als output geen "$a === true" terug :-)
==
checkt of waardes gelijk zijn
===
checkt of waardes gelijk zijn en of de variabelen van hetzelfde type zijn (boolean, string, int)
checkt of waardes gelijk zijn
===
checkt of waardes gelijk zijn en of de variabelen van hetzelfde type zijn (boolean, string, int)
Gewijzigd op 23/11/2010 14:28:24 door Ozzie PHP




