@oschonrock @Girgias @ramsey @cptwtf @IceWolf
Well... I'd say "usually" or "by default", not "never". You can set the type for a member in a class, and get an error if you try to assign it a value of an incompatible type.
...but that's a pretty new feature.
@woozle @Girgias @ramsey @cptwtf @IceWolf
yeah.. and it's also "shallow"... because the type information is "lost" as soon as you call a method on that type and chain a few more calls.
I have continued to try to use LSPs in php over the last 2 decades, they have very slowly got better, but as soon as you switch to what I call a "compile time statically typed language" the experience is night and day.