PHP newer version fails decoding json "version like" string (ex: "0.7.4"->"0.7") -
executing code in php expect string "0.7.4"
remaining "0.7.4"
https://3v4l.org/gx4vm
$value = "0.7.4"; if(!empty($value)) { $jsonvalue = json_decode($value); if(!empty($jsonvalue)) $value = $jsonvalue; } print_r( $value,false);
and true every php version in aws php 5.6.9, , in php sandbox (5.6.4 ?), i'm getting 0.7
http://ideone.com/2uuohw
in code $value
can deserializable string or simple string ("['a','b']", "{'a':'10'}", "abc", "2500", etc.) , expect json decode properly. have no idea how avoid strange issue.
any idea? thanks
as stated, 0.7.4
not valid json (according json spec), php's json_decode
can decode scalar values, too.
php implements superset of json specified in original » rfc 4627 - encode , decode scalar types , null. rfc 4627 supports these values when nested inside array or object.
from: http://php.net/json_decode
if had $value ='"0.7.4"';
(7 characters), json_decode()
decode string 0.7.4
. since value 0.7.4
(5 characters, since it's missing double quotes), can't decoded.
your example @ https://3v4l.org/gx4vm failing decode $value
, printing out original value (see: https://3v4l.org/e3um2).
edit: weird reason, example @ http://ideone.com/2uuohw decoding 0.7.4
float 0.7
. shouldn't happen. should 0.7
if stated $value = "0.7":
(see: https://3v4l.org/h2w5m).
Comments
Post a Comment