octave: Global Variables

 
 7.1 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.  Issuing a ‘clear
 gvar’ command does not change the above behavior, but ‘clear all’ does.
 
    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)
      Return true if NAME is a globally visible variable.
 
      For example:
 
           global x
           isglobal ("x")
              ⇒ 1
 
      See also: Seeisvarname XREFisvarname, Seeexist XREFexist.