PHP 객체를 연관 배열로 변환

Subodh Poudel 2023년1월30일
  1. array키워드를 사용하여StdClass의 객체를 타입 캐스트하여 PHP에서 연관 배열로 변환
  2. 사용자 정의 클래스 내에서StdClass의 객체를 사용하여 PHP에서 객체를 연관 배열로 변환
  3. json_encode()json_decode()함수를 사용하여 PHP에서 객체를 연관 배열로 변환
PHP 객체를 연관 배열로 변환

array키워드를 사용하여StdClass의 객체를 형변환하는 연관 배열로 PHP 객체를 변환하는 방법을 소개합니다. var_dump()함수를 사용하여 연관 배열을 표시합니다.

두 번째 접근 방식은 사용자 정의 클래스의 생성자에서StdClass를 생성하는 연관 배열로 PHP 객체를 변환하는 또 다른 방법을 보여줍니다. array키워드를 사용하는 첫 번째 방법에서와 같이 객체를 연관 배열로 변환합니다. 이 방법은 객체 지향 접근 방식을 따릅니다.

또한json_encode()json_decode()함수를 사용하여 PHP에서 객체를 연관 배열로 변환하는 또 다른 방법을 소개합니다. StdClass를 사용하여 객체와 동적 속성을 생성합니다.

array키워드를 사용하여StdClass의 객체를 타입 캐스트하여 PHP에서 연관 배열로 변환

StdClass빈 클래스를 생성하여 PHP에서 객체를 생성하고 객체를 사용하여 속성을 생성 할 수 있습니다. 클래스의 개체는 속성에 직접 액세스 할 수 있습니다. 클래스에 대한 동적 속성을 만들 수도 있습니다. array객체를 사용하여 객체를 배열로 형변환 할 수 있습니다. var_dump()함수는 배열의 유형 및 값에 대한 정보를 덤프합니다.

예를 들어new연산자를 사용하여StdClass$object개체를 만듭니다. car1car2라는$object를 사용하여 두 개의 속성을 만듭니다. porschebugatti값으로 특성을 지정하십시오. array키워드를 사용하여$object변수를 타입 캐스트합니다. $object변수 앞에array키워드를 괄호로 묶고var_dump()함수를 사용하여 값을 덤프합니다. 아래 예제는 출력 섹션에 표시된 것처럼 객체를 연관 배열로 변환합니다. 배열의 각 요소에 대한 키 및 값 쌍을 표시합니다.

예제 코드 :

#php 7.x 
<?php
$object = new StdClass;
$object->car1 = "porsche";
$object->car2 = "bugatti";
var_dump( (array) $object );
?>

출력:

array(2) { ["car1"]=> string(7) "porsche" ["car2"]=> string(7) "bugatti" }

사용자 정의 클래스 내에서StdClass의 객체를 사용하여 PHP에서 객체를 연관 배열로 변환

클래스 생성자에서StdClass의 인스턴스를 생성하고array키워드를 사용하여 클래스의 객체를 연관 배열로 변환 할 수 있습니다. 클래스를 만들고 그 속성을 정의 할 수 있습니다. 클래스의 생성자는 클래스의 속성을 특정 값으로 초기화합니다. StdClass의 객체를 생성하고 클래스의 속성 중 하나로 할당 할 수 있습니다. new연산자는 클래스와 함께 생성자를 호출합니다. 호출 직전에array키워드를 사용하여 클래스의 객체를 연관 배열로 변환 할 수 있습니다.

예를 들어Motorcycle클래스를 생성합니다. private액세스 수정자를$name,$color$type으로 사용하여 세 개의 클래스 속성을 만듭니다. 클래스의 생성자를 만들고 생성자 내부에서 속성 값을 초기화합니다. name에는Husky를,color에는white를 쓰고type에는StdClass의 개체를 만듭니다. $this키워드를 사용하여 속성을 초기화합니다. 클래스 외부에서Motorcycle클래스를 호출하고array키워드를 사용하여 호출하기 전에 형변환합니다. var_dump()함수를 사용하여 형변환 된 배열에 대한 정보를 덤프합니다.

예제 코드 :

#php 7.x 
class Motorcycle{
    private $name;
    private $color;
    private $type;
    public function __construct(){
        $this->name = "Husky";
        $this->color = "white";
        $this->type = new StdClass;
    }
}
var_dump( (array) new Motorcycle );

출력:

array(3) { ["Motorcyclename"]=> string(5) "Husky" ["Motorcyclecolor"]=> string(5) "white" ["Motorcycletype"]=> object(stdClass)#2 (0) { } }

json_encode()json_decode()함수를 사용하여 PHP에서 객체를 연관 배열로 변환

json_encode()함수는 값을 JSON 객체로 인코딩하고json_decode()함수는 JSON 객체를 PHP 객체로 변환합니다. json_decode()함수의 두 번째 매개 변수 인 부울 값은 JSON 오브젝트가 변환되어야하는 것을 나타냅니다. true값은 JSON 객체를 연관 배열로 변환하고false값은 PHP 객체로 변환합니다.

예를 들어,StdClass의 개체를 만들고$object변수에 할당합니다. 객체 속성의 두 값을MustangManang으로 이름을 지정하고place1place2변수에 저장합니다. $object변수에json_encode()함수를 사용하고 값을$json변수에 저장합니다. 그런 다음$json변수에서json_decode()함수를 사용하고 부울 값true를 두 번째 매개 변수로 사용합니다. $array변수에 값을 저장합니다. var_dump()함수를 사용하여 변수를 덤프합니다.

아래 예에서$object변수는StdClass객체를 보유합니다. json_ecode()함수는 객체를 JSON 문자열로 변환합니다. json_decode()함수는 JSON 문자열을 연관 배열로 변환합니다.

예제 코드 :

#php 7.x 
<?php
$object = new StdClass;
$object->place1 = "Mustang";
$object->place2 = "Manang";
$json= json_encode($object);
$array = json_decode($json, true);
var_dump($array);
?>

출력:

array(2) { ["place1"]=> string(7) "Mustang" ["place2"]=> string(6) "Manang" }
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

관련 문장 - PHP Object