如果 属性 在进一步检查之前未被修改,如何告诉 psalm 保存 getter 状态?
How to tell psalm to save getter state if property wasn't modified before the further checks?
class A
{
private ?string $x = null;
public function getX(): ?null
{
return $this->x;
}
}
class B
{
public function __construct(string $y)
{
// Property initialization...
}
}
$a = new A();
if ($a->getX() !== null) {
$b = new B($a->getX());
}
对于此代码片段,psalm 将 return 出现类似 PossiblyNullOperand
或类似的错误。我知道这是一种预期的行为,可以这样解决:
$a = new A();
if (($x = $a->getX()) !== null) {
$b = new B($x);
}
但是 psalm 中是否有一个配置参数,它会忽略像 getters 这样总是 return 相同结果的方法的这些错误?
诗篇版本:4.18.x
Psalm 需要知道该函数具有一致的 return 值。
这是你可以用@psalm-mutation-free描述的东西:
https://psalm.dev/r/e3906e5985
class A
{
private ?string $x = null;
public function getX(): ?null
{
return $this->x;
}
}
class B
{
public function __construct(string $y)
{
// Property initialization...
}
}
$a = new A();
if ($a->getX() !== null) {
$b = new B($a->getX());
}
对于此代码片段,psalm 将 return 出现类似 PossiblyNullOperand
或类似的错误。我知道这是一种预期的行为,可以这样解决:
$a = new A();
if (($x = $a->getX()) !== null) {
$b = new B($x);
}
但是 psalm 中是否有一个配置参数,它会忽略像 getters 这样总是 return 相同结果的方法的这些错误?
诗篇版本:4.18.x
Psalm 需要知道该函数具有一致的 return 值。
这是你可以用@psalm-mutation-free描述的东西: https://psalm.dev/r/e3906e5985