Global Variables Next: Up: Variables



Global Variables

A variable that has been declared global may be accessed from within a function body without having to pass it as a formal parameter.

A variable may be declared global using a global declaration statement. The following statements are all global declarations.

     global a
     global a b
     global c = 2
     global d = 3 e f = 5
     

A global variable may only be initialized once in a global statement. For example after executing the following code

     global gvar = 1
     global gvar = 2
     

the value of the global variable gvar is 1 not 2.

It is necessary declare a variable as global within a function body in order to access it. For example

     global x
     function f ()
       x = 1;
     endfunction
     f ()
     

does not set the value of the global variable x to 1. In order to change the value of the global variable x you must also declare it to be global within the function body like this

     function f ()
       global x;
       x = 1;
     endfunction
     

Passing a global variable in a function parameter list will make a local copy and not modify the global value. For example given the function

     function f (x)
       x = 0
     endfunction
     

and the definition of x as a global variable at the top level

     global x = 13
     

the expression

     f (x)
     

will display the value of x from inside the function as 0 but the value of x at the top level remains unchanged because the function works with a copy of its argument.

isglobal (name) Built-in Function
Return 1 if name is globally visible. Otherwise return 0. For example
          global x
          isglobal ("x")
               => 1