2

電話番号 (文字列) を先頭にゼロを付けて に渡すとjson_decode、最初のゼロ文字が削除され、浮動小数点数に変換されます。

$string = '09178882356'; //dynamic value
echo json_decode($string); //9178882356 will be echo

それを防ぐ方法は?

編集
Florentは、次のようなものを使用するソリューションを提供しました:

echo json_decode('"'.$string.'"');

動作します. しかし,$stringが実際の JSON 文字列の場合, 失敗します.

4

2 に答える 2

3

数字をデコードしています。コードを次のように変更する必要があります。

echo json_decode('"09178882356"');

編集:

動作し$stringますが、実際の JSON 文字列の場合は失敗します。

問題は、オブジェクトの種類がよくわからないことです。おそらく、実際の JSON 文字列をこの関数に送信するのをやめるか、関数の外で数値を引用符で囲む必要があります。

次のようなことを試すことができます:

if (is_number($str)) {
    $str = '"'.$str.'"';
}

echo json_decode($str);
于 2013-10-01T16:06:33.750 に答える