Saturday, April 26, 2008

Immediate If

Visual Basic programmers have a function at their disposal called IIf(), which is an abbreviation for Immediate If.


Example

result = IIf(2 + 2 = 5, "Correct", "Wrong")


The iif() function is sometimes more convenient than a full-blown if...then...else... control structure. Oddly enough, the function does not exist in VBScript.


Our PHP programmer friends have a superior equivalent, the ternary operator.


Example

$result = (2 + 2 = 5) ? 'Correct' : 'Wrong';


Unfortunately we can't recreate the ternary operator in ASP, but we can recreate the iif() function.


ASP

  1. function IIf(expression, truecondition, falsecondition)
  2.     if cbool(expression) then
  3.         IIf = truecondition
  4.     else
  5.         IIf = falsecondition
  6.     end if
  7. end function

1 comment:

Stephen R said...

Even better if you add an isNull check to the beginning. Your function crashes if expression evaluates to NULL.

if isNull()... elseif cbool()... else....