Empty string in json_decode doesn't set/reset json_last_error
| Bug #54484 | Empty string in json_decode doesn't set/reset json_last_error | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2011-04-07 14:24 UTC | Modified: | 2012-10-22 02:35 UTC |
|
||||||||||
| From: | wildcat at the-wildcat dot de | Assigned: | aharvey (profile) | |||||||||||
| Status: | Closed | Package: | JSON related | |||||||||||
| PHP Version: | 5.3.6 | OS: | Linux | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2011-04-07 14:24 UTC] wildcat at the-wildcat dot de
Description:
------------
If you decode an empty json value, the internal error state doesn't change.
Decode a valid json value and after that an empty value, the error state is 0
Decode an invalid json value and after that an empty value, the error state remains 4 (JSON_ERROR_SYNTAX) (I think it's the same for all error states, but haven't actually tested)
I'm not quite sure whether an empty string is valid json and should reset the error state to 0 or whether it is invalid json and should set the error state to 4. Because a valid empty json string is '""' and not ''
Test script:
---------------
<?php
error_reporting(E_ALL);
json_decode('{"test":"test"}');
var_dump(json_last_error());
json_decode("");
var_dump(json_last_error());
json_decode("invalid json");
var_dump(json_last_error());
json_decode("");
var_dump(json_last_error());
?>
Expected result:
----------------
int(0)
int(0)
int(4)
int(0)
OR
int(0)
int(4)
int(4)
int(4)
Actual result:
--------------
int(0)
int(0)
int(4)
int(4)
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2011-04-08 08:20 UTC] scottmac@php.net
[2011-04-08 09:59 UTC] aharvey@php.net
-Status: Open +Status: Assigned -Assigned To: +Assigned To: scottmac
[2011-06-01 11:44 UTC] iliaa@php.net
-Status: Assigned +Status: Closed -Assigned To: scottmac +Assigned To: iliaa
[2011-06-01 11:44 UTC] iliaa@php.net
[2012-10-22 02:35 UTC] aharvey@php.net
[2012-10-22 02:35 UTC] aharvey@php.net
-Status: Closed +Status: Re-Opened -Assigned To: iliaa +Assigned To: aharvey