Vecka 06, Måndag 6 Februari 2012 Prenumerera

Inlägg märkta ‘metoder’

Vanliga fel att se upp med

torsdag, 11 mars, 2010

Den senaste tiden har jag diskuterat med mina kollegor om det vanligaste PHP-felet att se upp med. Vi är överens om ett av de mest irriterande, ett glömt likamed tecken i en if-sats.

När man jämför två värden i PHP kan man använda dubba lika-med tecken, så här:

1
2
3
if ($mittnamn == 'Mattias') {
	echo 'Hello Mattias';
}

När man tilldelar värden till variabler används ett lika-med tecken:

1
$mittnamn = 'Mattias';

Tänk dig då vad som händer med den här koden:

1
2
3
if ($mittnamn = 'Mattias') {
	echo 'Hello Mattias';
}

Den jämför inte värden, den testar om det går att tilldela $mittnamn värdet ‘Mattias’. If-satsen som var till för kontrollera om variabeln $mittnamn har värdet ‘Mattias’ kommer nu alltid vara sant. Även om $mittnamn innehåller namnet ‘Vera’ kommer ‘Hello Mattias’ skrivas ut.

Eftersom det är fullt möjligt att använda en if-sats på båda visen genereras inget felmeddelande. Och är man lite trött och stirrat sig blind på samma skript länge kan det vara väldigt svårt att hitta.