HOWTO · PHP

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" }