E0038 reports method calls on values that can be null. It is the null-method member of Phanalist’s bounded formal verification family (E0031-E0043). The family shares a Z3-backed engine that encodes path conditions and values, so a finding comes with a solver-backed counterexample rather than a heuristic guess.
if, switch, match, isset(), and short-circuit
conditions?->) are treated as safe@var, and return contractsE0038 shares the model limits, loop bounds, and interprocedural behavior described in E0031.
rules:
E0038:
php_version: "8.4"
check_nullability: true
See E0031 for the shared model limits, unknown_policy behavior, and
per-code configuration.