странно, phpdoc'у больше доверяет
а с чего бы ему паниковать? Там же сравнение идет коректное ПРосто false всегда будет Но по типам никакой ошибки нет
Ну например то что сравнивать null и string в принципе бессмысленно
почему?
бессмыслено не значит не правильно Это надо другую тулзу PHPshtorm воде умеет такое находить
Потому что это разные типы
приравнивать ошибка А сравнивать типы в пхп не запрещено
А почему нельзя сравнивать то? Ну вот в базе у вас либо null у поля либо строка а в коде вам надо по совпадению строки что-то сделать почему нельзя сравнить с null и пройти дальше?
Ничего странного, в пхп иногда без докблоков никак, и для псалма они имеют наивысший приоритет. Ну типа программист иногда лучше знает что у него там с типами
ты же указал, что там может быть строка https://psalm.dev/r/1188480ba5
хоть string и является подтипом string|null, но это ж разные типы, и как-то это неочевидно, что можно сравнивать разные типы операцией сравнения с учетом типа
звучит будто ты сам не знаешь, чего хочешь. string|null может как совпасть с string(someString), так и нет. Если бы ты сравнивал null с string(someString) тебе бы по делу отстрелили - бесполезное сравнение, оно никогда не будет истинным
я хочу чтобы псалм ругался если я сравниваю разные типы сравнением с учетом типов. Если я сравниваю со строкой, очевидно я предполагаю что там строка, и чисто мысленным инферром могу дальше работать как со строкой, потому что было сравнение несравнимых типов, и стат-анализ на такое не ругнулся
они сравнимые
Обсуждают сегодня