wat is sneller (if-statement)
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?
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.
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
Dat had ik ergens gelezen.
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)
Gewijzigd op 23/11/2010 14:28:24 door Ozzie PHP