Powershell:如何从foreach循环内部调用函数?

Powershell: how to call a function from inside of a foreach loop?

我正在测试是否可以根据 foreach 循环中的条件调用某个函数:

$BROKER = $args[0]    
$MARKETS = $args[1], $args[2], $args[3], $args[4], $args[5], $args[6]


foreach ($market in $MARKETS) {
    if ($market -like 'all') {
        &AllMarkets
        break
    }
    else {
        &CertainMarkets
    }
}


function AllMarkets {
    "Checking all markets"
}


function CertainMarkets {
    "Checking certain markets"
}

当我运行这样的脚本时:

.\script.ps1 broker all

我收到这个错误:

& : The term 'AllMarkets' is not recognized as the name of a cmdlet, function, script file, or operable program

如何从 foreach 循环内部调用这些函数?

function AllMarkets {
    "Checking all markets"
}


function CertainMarkets {
    "Checking certain markets"
}
$BROKER = $args[0]    
$MARKETS = $args[1], $args[2], $args[3], $args[4], $args[5], $args[6]


foreach ($market in $MARKETS) {
    if ($market -like 'all') {
        &AllMarkets
        break
    }
    else {
        &CertainMarkets
    }
}

函数应该在循环之前定义。否则,功能还不可见。