PHP 객체를 연관 배열로 변환
-
array키워드를 사용하여StdClass의 객체를 타입 캐스트하여 PHP에서 연관 배열로 변환 -
사용자 정의 클래스 내에서
StdClass의 객체를 사용하여 PHP에서 객체를 연관 배열로 변환 -
json_encode()및json_decode()함수를 사용하여 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개체를 만듭니다. car1및car2라는$object를 사용하여 두 개의 속성을 만듭니다. porsche및bugatti값으로 특성을 지정하십시오. 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변수에 할당합니다. 객체 속성의 두 값을Mustang및Manang으로 이름을 지정하고place1및place2변수에 저장합니다. $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 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