Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 在函数中设置多个全局变量_Powershell_Variables_Scope - Fatal编程技术网

Powershell 在函数中设置多个全局变量

Powershell 在函数中设置多个全局变量,powershell,variables,scope,Powershell,Variables,Scope,我的脚本中有多个全局变量,在函数中使用 $global:Row_array = @(); $global:Column_Array = @(); $global:Sorted_Array = @(); $global:totalrows = 0; $global:array=@(); $global:m_file; # Button Click Event Handler... $Run_It.add_Click({ for($i=0; $i -lt 6; $i++){

我的脚本中有多个全局变量,在函数中使用

$global:Row_array = @();
$global:Column_Array = @();
$global:Sorted_Array = @();
$global:totalrows = 0;
$global:array=@();
$global:m_file;

# Button Click Event Handler...
$Run_It.add_Click({
    for($i=0; $i -lt 6; $i++){
        $global:Row_array += $i
    }
    ...
    ...
 })
现在是否需要将
$global:
限定符放在此事件处理程序中的每个全局变量前面

或者我可以这样做:

$Run_It.add_Click({
    for($i=0; $i -lt 6; $i++){
        Row_array += $i
    }
    ...
    ...
    # At the very end...
    $global:Row_array = $Row_array;
    $global:Column_Array = $Column_Array;
    $global:Sorted_Array = $Sorted_Array;
    ...
})

我可以在所有变量的编辑器中进行全局替换,并将
$global:
放在前面,但我想知道是否有更优雅的方法。
ref
关键字有问题吗?另外,使用全局变量的函数是否是一个好主意是一个单独的讨论…我将它用于一个临时项目。

是的,您可以按照第二个示例的建议执行。谢谢Mathias。。。我试过了。它起作用了@索里森:把第二个作为答案是的,你可以按照第二个例子的建议去做。谢谢你,马蒂亚斯。。。我试过了。它起作用了@索里松:把第二个作为答案