The requirement for PHP 5.3 seems to boil down to the function json_last_error() which returns a errno to tell the programmer exactly what caused the failure of thier json_encode() or json_decode().
- json_decode()/json_encode() - (PHP 5 >= 5.2.0, PECL json >= 1.2.0)
- json_last_error() (PHP 5 >= 5.3.0)
Since this is for informational purposes only and doesn't drive function, a version of PHP that doesn't include the json_last_error() function could simply log a generic error on the encode/decode return a NULL result.
The reason for this is that a vast number of D6 modules, including the core, do things that cause errors to turn up in PHP 5.3. This version of PHP is much more strict on variables being passed by reference since all variables are passed by reference now.
Comments
Comment #1
MattA commentedAgreed, an error message shouldn't force D6 users to upgrade to PHP 5.3, even if they should. Especially since Drupal 6.17 and 6.19 brought a large number of PHP 5.3 fixes with them.