Voici l'extrait de code que j'essaie, le problème potentiel est que le tableau qui est déclaré en dehors de la fonction ne peut pas être utilisé dans la fonction testobjarray()
. Il affichera le nombre comme zéro dans la fonction testobjarray()
, mais dans addobjects()
je suis en mesure d'ajouter l'objet à la matrice et afficher le contenu de l'objet.La fonction ne remplit pas la variable globale
$Global:objectorray = @()
function addobjects() {
$object = New-Object PSObject
$object | Add-Member -MemberType NoteProperty -Name "Name" -Value "Pradeep RN"
$object | Add-Member -MemberType NoteProperty -Name "Age" -Value 24
$object | Add-Member -MemberType NoteProperty -Name "Profession" -Value "Software Engineer"
$objectorray += $object
Write-Host "in addobjects function" $objectorray
}
function testobjarray() {
Write-Host "in the another function" $objectorray.Count
}
addobjects
testobjarray
Toutes les informations dont vous avez besoin pour comprendre cela peuvent être trouvées dans ['Get-Help about_Scopes'] (https://msdn.microsoft.com/fr-fr/powershell/reference/5.1/microsoft.powershell. core/about/about_scopes). –
Notez que la modification de variables globales dans une fonction n'est pas une bonne pratique, car cela complique le dépannage. Il est préférable que la fonction renvoie l'objet et effectue l'opération d'ajout dans la portée de l'appelant. –