Protected[.<type>] <variable[.<type>]> [= <expression>] [, ...]
Protected allows a variable to be accessed only in a Procedure even if the same variable has been declared as Global in the main program. Protected in its function is often known as 'Local' from other BASIC dialects. Each variable can have a default value directly assigned to it. If a type is specified after Protected, the default type is changed for this declaration. Protected can also be used with arrays, lists and maps.

The value of the local variable will be reinitialized at each procedure call. To avoid this, you can use the keyword Static, to separate global from local variables while keeping their values.

Example: With variable

  Global a
  a = 10
  Procedure Change()
    Protected a
    a = 20 
  Debug a ; Will print 10, as the variable has been protected.

Example: With array

  Global Dim Array(2)
  Array(0) = 10
  Procedure Change()
    Protected Dim Array(2) ; This array is protected, it will be local.
    Array(0) = 20 
  Debug Array(0) ; Will print 10, as the array has been protected.