---
url: >-
  /statelake/scripting-reference/functions-and-procedures/variant-functions/ifnull.md
---

# IfNull

The **IfNull** function checks the variant **aValue1**, and if it is null (it has a vartype equal to 1), then it will return the replacement value of **aValue2**.

If **aValue1** is not null, then it will return its own value **aValue1**.

A variable can be forced to null.

Please also review [IfEmpty](/statelake/scripting-reference/functions-and-procedures/variant-functions/ifempty) and also the **String Function** [IfBlank](/statelake/scripting-reference/functions-and-procedures/string-functions/ifblank).

**Declaration**: Function IfNull( const aValue1, aValue2 : Variant) : Variant;

Several examples are illustrated in the following.

```pascal
procedure ScriptEvent (var Value : variant);
var
  aVarVar, bVarVar, cVarVar : variant;
begin
  aVarVar := null;                                         //aVarVar is set to NULL
  LogInfo('aVarVar = '+IntToStr(VarType(aVarVar)));        //NULL variant variable returns a VarType of 1
  bVarVar := 'Test';                                       //bVarVar is set to 'Test'

  LogInfo('');
  LogInfo('1st pass . . .');
  cVarVar := IfNull(aVarVar, 'Param1 is null');
  LogInfo('bVarVar = '+bVarVar);                           //bVarVar is 'Test'
  LogInfo('cVarVar = '+cVarVar);                           //cVarVar is 'Param1 is null'

  LogInfo('');
  LogInfo('2nd pass . . . ');
  cVarVar := IfNull(aVarVar, bVarVar + ' result!');         //aVarVar is NULL
  LogInfo('bVarVar = '+bVarVar);                            //bVarVar is 'Test'
  LogInfo('cVarVar = '+cVarVar);                            //cVarVar is 'Test result!' (ie. bVarVar+' result!')

  LogInfo('');
  LogInfo('3rd pass . . . ');
  cVarVar := IfNull(aVarVar, 'Result!');                    //aVarVar is NULL
  LogInfo('bVarVar = '+bVarVar);                            //bVarVar is 'Test'
  LogInfo('cVarVar = '+cVarVar);                            //cVarVar is 'Result!'

  LogInfo('');
  LogInfo('4th pass . . . ');
  cVarVar := IfNull(null, 'Param1 is the CONST null!');     //Param1 is 'null'
  LogInfo('bVarVar = '+bVarVar);                            //bVarVar is 'Test'
  LogInfo('cVarVar = '+cVarVar);                            //cVarVar is 'Param1 is the CONST null!'

  LogInfo('');
  LogInfo('5th pass . . . ');
  cVarVar := IfNull('We are Param1', 'We are Param2!');    //Param1 is 'We are Param1'
  LogInfo('bVarVar = '+bVarVar);                           //bVarVar is 'Test'
  LogInfo('cVarVar = '+cVarVar);                           //cVarVar is 'We are Param1'

 end;
```
