Question Variable globale

Plus d'informations
il y a 15 ans 1 mois #4362 par jerome
Variable globale a été créé par jerome
Bonjour à tous,

Une question sur les variables globales, je sais qu'en powershell la déclaration des variables n'est pas nécessaire.
Cependant j'aimerai déclarer mes variables globales en début de script, si j'utilise la commande suivante:
[code:1]
$global:MaVariable
[/code:1]
MaVariable à une portée globale, cependant si j'essaye de lui affecter une valeur dans le corps du script, j'ai l'impression qu'elle perd la portée globale.
[code:1]
MaVariable = 2
[/code:1]
Est que je suis obligé de préciser la portée quand j'affecte une valeur à ma variable ou est-ce que je peux le faire en avance de phase.

Merci.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 mois #4364 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Variable globale
Salut,
dje81 écrit:

Est-ce que je suis obligé de préciser la portée quand j'affecte une valeur à ma variable

je dirais que cela dépend de l'usage que tu comptes en faire :
[code:1]
$global:«»x=20
function locale {$X=10;Write-host $X}
function locale2 {$X=10;Globale}
function globale {Write-host $X}
function globale2 {$global:«»X=15;Write-host $X}

write-host $x
locale
write-host $x
globale
write-host $x
locale2
write-host $x
globale2
write-host $x
[/code:1]
Dans la function locale2 on adresse la variable X du contexte courant.
dje81 écrit:

je sais qu'en powershell la déclaration des variables n'est pas nécessaire.

Oui, mais Powerwhell doit déterminer où se situe la pile la contenant. PS nous soulage d'une déclaration car il la prend en charge.

Il est donc recommandé de préfixer le nom de la variable avec l'indication de portée. C'est le seul manière, sans compliquer les choses, d'adresser la bonne variable.Surtout cela documente ton intention dans le code.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 mois #4365 par jerome
Réponse de jerome sur le sujet Re:Variable globale
Merci Laurent.
Donc si je comprends bien si je dois modifier ma variable globale à plusieurs endroit du script je devrais la préfixer systématiquement par sa portée.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 mois #4369 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Variable globale
dje81 écrit:

Donc si je comprends bien si je dois modifier ma variable globale à plusieurs endroit du script je devrais la préfixer systématiquement par sa portée.

Oui, mais pas seulement pour les affectations pour les lectures aussi.
Sinon il y a un risque potentiel d'en lire une autre de même nom mais de portée différente (locale).

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.070 secondes
Propulsé par Kunena