Jump to content

Global versus Local Variables


Recommended Posts

hello,

I wouldn't say that they should be avoided - you shouldn't unnecessarily create global variables though.
If you need a variable across a bunch of different functions, declaring it in the global scope can make sense. Otherwise keep it local.

Mostly my global vars tend to be Gui handles and control handles. I also usually have a few parameters at the top of the script that I declare globally, a few things like the script version - or the file paths that I'm working out of etc. But not much outside of that.

Link to comment
Share on other sites

  • Moderators

mr-es335,

A personal view.

Global variables should be avoided if at all possible - unless there is an obvious benefit, such as the path to an ini file used by several functions within the script; or where not using a Global variable will overly complicate the script by forcing massive parameter bloat when calling functions.

Why so? Because of the possibility of inadvertantly altering these Global variables from within a function. Changing their value deliberately from within a function is, of course, one of the reasons to use Global variables - but the risk of doing so unintentionally is always present. The use of a suitable Hungarian naming convention can reduce the chances of this considerably - altering a variable commencing with "$g_****" should ring a few alarm bells!

So I would suggest minimal use of Global  variables and the use of suitable names to help prevent possibly disastrous alterations to their content.

M23

 

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...