Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 배열을 저장하기 위해 선호하는 방법(json_encode 또는 직렬화)?


요구 사항에 따라 다릅니다.

JSON은 다음 조건이 충족되지 않는 한 PHP 직렬화에 비해 더 빠릅니다-

  • 깊게 중첩된 배열이 저장됩니다.
  • 저장된 개체는 적절한 클래스로 직렬화 해제해야 합니다.
  • json_decode를 지원하지 않는 이전 PHP 버전 간의 상호 작용입니다.

아래 코드 줄은 json_encode-

를 사용하여 PHP 배열을 저장하는 데 사용할 수 있습니다.
json_encode($array, JSON_UNESCAPED_UNICODE)

JSON은 객체의 원래 클래스를 어디에도 저장하지 않지만 stdClass에 속하는 클래스 인스턴스로 복원할 수 있습니다.

직렬화 대신 json_encode를 사용하는 이유는 무엇입니까?

  • JSON은 직렬화에 비해 이식성이 훨씬 뛰어납니다.
  • __sleep() 및 __wakeup()의 기능은 JSON을 사용하여 활용할 수 없습니다.
  • 기본적으로 공개 속성은 JSON으로 직렬화됩니다. (PHP 버전이>=5.4인 경우 JsonSerializable을 구현하여 동작을 변경할 수 있습니다.)

예시

<?php
   // Array is declared
   $value = array(
      "name"=>"name_me",
      "email"=>"myemail.com"
   );
   // json_encode() function is used
   $json = json_encode($value);
   // Displaying output
   echo($json);
?>

출력

이것은 다음과 같은 출력을 생성합니다-

{"name":"name_me","email":"myemail.com"}