The idea behind throwing warnings in arithmethics is good (3 + "dogs" is useless), but in RFC was forgotten special case which causes a lot of pain ever since PHP 7.1 - arithmethics with 1. empty strings and 2. NULLs. These should NOT emit warnings and should be silently converted in non-strict mode. This is how PHP worked ever for years. Emiting warnings on empty strings and NULLs would be however OK in strictly typed mode. It's particularly this commit, which should be fixed: https://github.com/php/php-src/commit/1e82ad8038d3100b7e27be870652c1f639a7200a .