これは私にとって非常に困惑しています。なぜこれが起こっているのか分かりません。 XAMPP上でPHP 5.6.15でWindows 8.1 Enterprise Editionを実行している私はlocalhostでjson_decode()は異なる環境で異なる値を返します
<?php var_dump(json_decode('26-10-2017'));
戻り
PHP 5.5.9でのUbuntu 14.04 LTSを実行しているLinodeのボックスにNULL
ながら、 on LAMP(Sentora Panelを実行)
int(26)
私はこの現象を私に説明することができる人には多額の恩恵があります。
私はこれが有効なJSONではないことを知っていますが、出力の違いを引き起こす原因とこれを回避する方法を学習することを私は意図しています。
私は
function isValidJSON($string) {
json_decode($string);
return (json_last_error() == JSON_ERROR_NONE);
}
をしようとしていたという事実に、json_last_error()
を試してみましたが、すべてのエラーを表示していないようです。
<?php var_dump(json_decode('26-10-2017')); var_dump(json_last_error());
戻り
int(26)
int(0)
ありがとう!
これは、まずは有効なJSONではありません。異なる値を返す理由は興味深い(たぶんHHVMとPHPの違い、あるいは異なるバージョン...?)が、最終的には全く機能しないはずです。 – deceze
FWIWでは、一部の5.2.xバージョンのみがここでは 'null'以外のものを返します:https://3v4l.org/Y0DEH - いずれかのPHPバグです。 – deceze