json_encode 문자열 대 숫자
PHP json_encode 함수를 사용할 때 숫자가 문자열로 인코딩되는 문제가 발생할 수 있습니다. 숫자 연산에는 문자열을 사용할 수 없으므로 JavaScript로 작업할 때 예기치 않은 동작이 발생할 수 있습니다.
문제 이해
예를 들어 다음과 같은 배열이 있는 경우 this:
array('id' => 3)
json_encode는 다음 JSON을 출력합니다. 문자열:
"{ ["id": "3", ...)
id 속성이 따옴표로 묶여 문자열 값을 나타냅니다. JavaScript가 이 문자열을 발견하면 이를 그대로 해석하고 이에 대해 수행된 수치 계산이 실패합니다.
문자열 인코딩 방지
이 문제를 해결하려면 다음을 사용할 수 있습니다. json_encode를 호출할 때 JSON_NUMERIC_CHECK 플래그. 이 플래그는 인코딩하기 전에 숫자를 숫자 값으로 자동 변환하도록 PHP에 지시합니다.
$arr = array( 'row_id' => 1, 'name' => 'George' ); echo json_encode( $arr, JSON_NUMERIC_CHECK );
이 결과는 다음과 같습니다.
{"row_id":1,"name":"George"}
JSON_NUMERIC_CHECK 플래그를 사용하면 row_id 속성이 이제 실제 숫자가 됩니다. 문제 없이 JavaScript로 수치 연산을 수행할 수 있습니다.
위 내용은 `json_encode`가 때때로 숫자를 문자열로 반환하는 이유는 무엇이며 이를 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!