Improve the signature of `json_decode` function
The native json_decode function returns:
- null in case of an error
- an stdClass if the $assoc parameter is false
- an associative array if it's true
Since the safe implementation throws by default, the null value ia never returned. I thin we can improve the phpdoc return type of this function so that the return type is deduced depending on the value of $assoc parameter so that we can leverage better type checking using phpstan (https://phpstan.org/blog/phpstan-1-6-0-with-conditional-return-types)
Actually json_decode can return a null value, if you decode the null string:
$ php -r "var_dump(json_decode('null'));"
Command line code:1:
NULL
JSON isn't just arrays and objects. null, 1, 1.25, true, false, "string" - are all valid JSON values, so the function may return null|int|float|bool|string|array|stdClass even in case of valid JSON