Intro till ASP - 05. Variabelhantering
Förord
Variablen är grundstenen i all programmering, variabler används för att lagra data och objekt samt presentera data i din kod.Innehåll
»»
»
»
Relaterade artiklar
» Intro till ASP - 06. Arrayer» Intro till ASP - 07. Villkorssatser
Hur fungerar variabler
I nästan alla programmeringsspråk så har man olika typer av variabler, typ: Tal, Strängar, Tecken och Object. Om vi tar Visual Basic som exempel så skriver man så här när man vill deklarera en variabel:
Dim iAge As Integer
När man deklarera en variabel så berättar man för datorns minne att jag behöver utrymme för att lagra ett tal (Integer) i minnet och datorn reserverar plats för detta tal i minnet.
För att hänvisa till verkligheten så tänk dig att du står framför en stor hylla med massor av fack. Där bestämmer du sedan att du behöver X fack för att lagra ett paket som du döpt till iAge för att du skall hittade det igen. Hur många fack som du behöver använda för att lagra ditt paket bestäms av hur stort ditt paket är, (Typen: Integer). De olika typerna av variabler tar olika stor plats i minnet och det beror på att de behöver lagra olika mycket data.
I VB-Script som man oftas använder till ASP så finns bara en typ av variabel på gott och ont, mest ont. Och det är Variant. Denna typ av variabel kan lagra vad som helst, allt från ett litet tecken till objekt. Detta gör det lätt för dig som programmerar eftersom du slipper tänka på vilken typ dina variabler är, men samtidigt så tar man onödigt med minne i anspråk för att lagra ett litet tecken.
Variabler i VB-Script
Efter som det endast finns en typ i VB-Script så skriver man inte ut vilken typ det är utan man deklarerar endast namnet på den variabel man vill ha:
Dim Age
Dim FirstName
Dim Connection
För att lättare vet vilken typ som man har tänkt sig med de olika variablerna så brukar man lägga till ett litet prefix och det kan se ut olika från olika programmerarer och är mest till för att du själv skall veta vilken typ det är 6 månader senare när du tittar på din kod.
Dim iAge
Dim sFirstName
Dim oConnection
Här har jag nu lagt till prefixet i till Age och där med sagt att jag tänker använda Integer. Till variablen FirstName lade jag till prefixet s vilket skall hjälpa mig att veta att det är en String. Och det sista då, kan du gissa? Visst är det o för ett Object.
Nu är VB-Script så förlåtande att du inte ens behöver deklarera dina variabler utan bara kan slänga in de hur som helst i din kod när du vill, detta är dock inget som jag rekommenderar dig att göra eftersom det försvårar för dig att veta vilka variabler som du använder samt om du går över till något annat programmeringspråk så som C++, C#, Java mm så måste du deklarera dina variabler innan de används, så det är lika bra att du gör rätt från början. Nu finns det ett sätt att tvinga dig till att deklarera din variabler innan de används och det är genom att man i sin kod skriver högst upp:
Option Explicit
Hur använder jag variabler i min kod
Variabler använder du hela tiden i din kod, bland annat till att lagra data i dem:
'-- deklarera variabler --
Dim iAge
Dim sFirstName
Dim oConnection
'-- lagra data i mina variabler --
iAge = 30
sFirstName = "Magnus"
set oConnection = server.createObject("ADODB.Connection")
Här har vi nu skapat 3 olika variabler av typen Variant som vi dock tänker använda som Integer, String och Objekt. Som vi ser så för att skapa en sträng har vi "" runt om texten medans när vi skapar tal inte har "" runt om.
Vad är set för något då? Jo Set använder man när man vill skapa en variabel som innehåller ett objekt,(egentligen så sparas inte objektet i variablen utan endast en referens till objektet men det spelar ingen roll för dig) så fort du har med objekt att göra så måste du sätta ordet set framför annars kommer du att få ett felmeddeland.
Om vi i vår kod vill skriva ut namnet och åldern så ser det ut så här:
'-- skriv ut namnet och åldern --
response.write "Namn:" & sFirstName & ", " & iAge & " år."
Det vi har gjort här är att vi har "byggt" ihop en ny sträng av lite text och våra variabler som vi sedan skriver ut på skärmen. Strängen bygger vi hop med & tecknet som lägger ihop olika sträng till en. Det som händer är att när kompilatorn kommer till din variabel så går den in i sitt minne och hämtar ut innehållet i minnet och skriver ut det. Hur vet då kompilatorn vad som är text och vad som är variabel? Jo som jag sa innan att när du skriver en text så sätter man "" runt om texten, det betyder att från det du satt första " och all text fram till nästa " för text och det som sedan kommer är en variabel.
Alltså kommer resultatet se ut så här:
Namn: Magnus, 30 år.
Omvandla från en typ till en annan
När man skall jämföra olika variabler med varandra så måste da vara av samma typ för att de skall match, ett klasiskt misstag som många gör är att man jämför ett tal med en sträng och blir förvånad när det inte fungerar.
'-- deklarera variabler --
Dim iAge
'-- ta emot ett värde från en annan sida --
iAge = request.form("Age")
'-- kolla om åldern är 30 --
if iAge = 30 then
'-- Åldern är 30
end if
Även om vi har matat in 30 som ålder på föregående sida så kommer vårt vilkor aldrig uppfyllas eftersom iAge inte är 30 utan "30". För att gör om en String till en Integer så använder vi CInt().
' -- ta emot ett värde från en annan sida --
iAge = CInt(request.form("Age"))
Nu kommer vårt vilkor att bli sant efter som vi nu jämför 30 med 30. Det finns många olika omvandlingsfunktioner och de kan man läsa mer om på:
Tänkte till sist berätta om en lite funktion som man kan använda för att kolla om variabelen är ett tal/kan omvandlas till ett tal eller är en sträng och den heter IsNumeric() och fungera på följande sätt:
'-- deklarerar variabler --
Dim MyVar, MyCheck
'-- kollar om värdet är endast innehåller siffror eller om det även innehåller bokstäver --
MyVar = 53
MyCheck = IsNumeric(MyVar) ' Returnerar True.
MyVar = "459.95"
MyCheck = IsNumeric(MyVar) ' Returnerar True.
MyVar = "45 Help" .
MyCheck = IsNumeric(MyVar) ' Returnerar False.
0 Kommentarer