Psalm cannot guarantee the soundness of code that uses references to properties.
- Instance property assigned wrong type:
<?php
class A {
public int $b = 0;
}
$a = new A();
$b = &$a->b;
$b = ''; // Fatal error
- Static property assigned wrong type:
<?php
class A {
public static int $b = 0;
}
$b = &A::$b;
$b = ''; // Fatal error
- Readonly property reassigned:
<?php
class A {
public function __construct(
public readonly int $b,
) {
}
}
$a = new A(0);
$b = &$a->b;
$b = 1; // Fatal error