realtebo Posted February 18, 2015 Share Posted February 18, 2015 If i declare a variable as global at start of the script and then I use it into one function, when the function end, the global var has been modified or not? Link to comment Share on other sites More sharing options...
jdelaney Posted February 18, 2015 Share Posted February 18, 2015 (edited) If you change the value in a function, yes, it will modify the global by default. You can re-declare it as local, inside a function, then it won't update the global. example: Global $something = 1 Test() ConsoleWrite("outside: $somthing=" & $something & @CRLF) Test(False) ConsoleWrite("outside: $somthing=" & $something & @CRLF) Func Test($bReuseGlobal = True) If Not $bReuseGlobal Then Local $something = 2 Else $something = 3 EndIf ConsoleWrite(@TAB & "inside: $somthing=" & $something & @CRLF) EndFunc Edited February 18, 2015 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
water Posted February 18, 2015 Share Posted February 18, 2015 The Global var has been modified. Please see the help file for variables and scope. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
jdelaney Posted February 18, 2015 Share Posted February 18, 2015 (edited) Specifically: By default when variables are declared using Dim or assigned in a function they have local scope unless there is a global variable of the same name (in which case the global variable is reused). This can be altered by using the Local and Global keywords to declare variables and force the scope you want. Which I have demonstrated in my snippet. Edited February 18, 2015 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now