$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:\>