title: PHP7, JSON and Zend (decoding failed: syntax error)
body: <p>I recently upgraded to PHP 7.0.4 and nginx 1.8.1, my application uses the Zend Framework (Magento 1.9.2.1). Since that upgrade, our customers sometimes get an "Decoding failed: Syntax error" when submitting an orderm which is thrown in </p>
  
  <pre><code>public static function decode($encodedValue, $objectDecodeType = Zend_Json::TYPE_ARRAY)
  {
      $encodedValue = (string) $encodedValue;
      if (function_exists('json_decode') &amp;&amp; self::$useBuiltinEncoderDecoder !== true) {
          $decode = json_decode($encodedValue, $objectDecodeType);
  
          // php &lt; 5.3
          if (!function_exists('json_last_error')) {
              if (strtolower($encodedValue) === 'null') {
                  return null;
              } elseif ($decode === null) {
                  #require_once 'Zend/Json/Exception.php';
                  throw new Zend_Json_Exception('Decoding failed');
              }
          // php &gt;= 5.3
          } elseif (($jsonLastErr = json_last_error()) != JSON_ERROR_NONE) {
              #require_once 'Zend/Json/Exception.php';
              switch ($jsonLastErr) {
                  case JSON_ERROR_DEPTH:
                      throw new Zend_Json_Exception('Decoding failed: Maximum stack depth exceeded');
                  case JSON_ERROR_CTRL_CHAR:
                      throw new Zend_Json_Exception('Decoding failed: Unexpected control character found');
                  case JSON_ERROR_SYNTAX:
                      throw new Zend_Json_Exception('Decoding failed: Syntax error');
                  default:
                      throw new Zend_Json_Exception('Decoding failed');
              }
          }
  
          return $decode;
      }
  </code></pre>
  
  <p>I read about a bug that PHP7 and JSON decode behaves differently when encoding an empty string. Does anyone know if this bug is related to PHP7 or to my application/server?</p>
  
  <p>Thanks</p>