webForumDet fria alternativet

Korta If-satser i ASP?

ASP

4 svar · 631 visningar · startad av Kriko

Medlem sedan dec. 2006382 inlägg
Frågan#1

Jag har kollat runt en massa men inte hittat något om detta så jag fmisstänker att det inte existerar, men man vill ju ändå kolla om någon här vet något om det.

Jag söker liknande korta If-satser i ASP/VBScript som i PHP, liknande denna:

$foobar = $foo == $bar ? "asdf" : "aoeu";
Medlem sedan dec. 19996 721 inlägg
#2

Nej, någon dylik syntax finns inte i VBScript, men den finns i VBA och kallas "iif". Om man vill nyttja den i sina sidor kan man enkelt skriva ihop den själv, och t.ex. lägga den i en include-fil.

function iif(expr, trueVal, falseVal)
  if expr then
    iif = trueVal
  else 
    iif = falseVal
  end if
end function

och därefter nyttja den med

foobar=iif(foo=bar,"asdf","aoeu")
Medlem sedan maj 200010 687 inlägg
#3

Tänk dock på att varje värde kommer exekvera.
Så det är inte bra prestandamässigt om det är tunga grejer. T.ex.:

foobar = iif(foo = bar, heavestuff(), otherheavystuff())

Sen så kan man ju heller inte skriva så här:

foobar = iif(rs.EOF, "Finns inte.", rs("foobar"))

Då kommer den faila om rs.EOF = True.

Medlem sedan jan. 200711 inlägg
#4

Du kan ju även skriva på detta sätt för att korta av till viss del:

If foo = bar Then heavestuff() Else otherheavystuff()

Och vill du ha flera saker på varje rad markerar du bara var det borde vara ett radbyte med kolon ":". Detta rekommenderas dock inte pga koden blir lite väl svårläst.

Medlem sedan dec. 2006382 inlägg
#5

Tack för svaren... Det skogga skrev var dock inte riktigt vad jag menade...
Jag använder gärna kolon emellan flera rader vid vissa tillfällen, t ex:
Connection.Close : Set Connection = Nothing
Då tycker jag bara det blir mer lättläst...

264 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)