$null
is used to represent absent or undefined value.
$null
can be used as an empty placeholder for empty value in arrays:
PS C:\\> $array = 1, "string", $null
PS C:\\> $array.Count
3
When we use the same array as the source for ForEach-Object
, it will process all three items (including $null):
PS C:\\> $array | ForEach-Object {"Hello"}
Hello
Hello
Hello
Be careful! This means that ForEach-Object
WILL process even $null
all by itself:
PS C:\\> $null | ForEach-Object {"Hello"} # THIS WILL DO ONE ITERATION !!!
Hello
Which is very unexpected result if you compare it to classic foreach
loop:
PS C:\\> foreach($i in $null) {"Hello"} # THIS WILL DO NO ITERATION
PS C:\\>