mirror of
https://github.com/danog/psalm.git
synced 2024-11-27 04:45:20 +01:00
1.2 KiB
1.2 KiB
PossiblyNullArgument
Emitted when calling a function with a value that’s possibly null when the function does not expect it
<?php
function foo(string $s): void {}
foo(rand(0, 1) ? "hello" : null);
Common Problem Cases
Using a Function Call inside if
if (is_string($cat->getName()) {
foo($cat->getName());
}
This fails since it's not guaranteed that subsequent calls to $cat->getName()
always give the same result.
Possible Solutions
- Use a variable:
$catName = $cat->getName(); if (is_string($catName) { foo($catName); } unset($catName);
- Add
@psalm-mutation-free
to the declaration of the function
Calling Another Function After if
if (is_string($cat->getName()) {
changeCat();
foo($cat->getName());
}
This fails since psalm cannot know if changeCat()
does actually modify $cat
.
Possible Solutions
- Add
@psalm-mutation-free
to the declaration of the other function (here:changeCat()
) too - Use a variable: See above