PHP 개발에서는 데이터 전송 및 처리를 용이하게 하기 위해 객체를 배열로 변환해야 하는 경우가 있습니다. 이 기사에서는 PHP에서 객체를 배열로 변환하는 방법을 소개합니다.
1. 변환을 위해 get_object_vars 함수를 사용하세요
PHP의 내장 함수 get_object_vars는 객체에 표시되는 모든 속성의 배열 표현을 가져올 수 있으며(키는 속성 이름, 값은 속성 값) 사용할 수 있습니다. 필요한 배열로 직접 반환되는 배열입니다.
샘플 코드:
class Car { public $brand = 'Audi'; public $model = 'A6'; private $price = 80000; public function __construct() { # code... } } $car = new Car(); $arr = get_object_vars($car); print_r($arr);
실행 결과:
Array ( [brand] => Audi [model] => A6 )
$price 속성이 비공개이므로 반환된 배열에 나타나지 않는 것을 알 수 있습니다.
2. 변환을 위해 json_decode 함수를 사용하세요
PHP 내장 함수 json_decode를 사용하여 객체를 JSON 형식의 문자열로 변환한 다음 배열로 변환할 수 있습니다.
샘플 코드:
class Car { public $brand = 'Audi'; public $model = 'A6'; private $price = 80000; public function __construct() { # code... } } $car = new Car(); $jsonStr = json_encode($car); $arr = json_decode($jsonStr, true); print_r($arr);
실행 결과:
Array ( [brand] => Audi [model] => A6 )
마찬가지로 $price 속성은 private이므로 변환된 배열에 나타나지 않습니다.
3. 변환을 위해 유형 캐스트를 사용하세요
PHP에서는 get_object_vars 함수와 json_decode 함수를 사용하여 객체를 배열로 변환하는 것 외에도 변환을 위해 캐스트를 사용할 수도 있습니다. 객체를 배열 유형으로 강제 변환할 수 있습니다. 반환된 배열의 키는 속성 이름이고 값은 속성 값입니다.
샘플 코드:
class Car { public $brand = 'Audi'; public $model = 'A6'; private $price = 80000; public function __construct() { # code... } } $car = new Car(); $arr = (array) $car; print_r($arr);
실행 결과:
Array ( [brand] => Audi [model] => A6 [*price] => 80000 )
get_object_vars 함수 및 json_decode 함수의 변환 결과와 달리 강제 유형 변환 후 배열에는 public 속성 외에 private 속성도 포함되는 것을 확인할 수 있습니다. *로 시작하는 태그는 비공개 속성을 나타냅니다.
객체에 __toString 메서드가 있는 경우 __toString 메서드의 반환 값은 캐스팅 시 배열의 첫 번째 요소(키가 0이고 값이 반환 값임)로 사용된다는 점에 유의해야 합니다. 배열.
4. 변환을 위해 리플렉션 사용
PHP의 리플렉션 메커니즘은 클래스, 개체 및 메서드를 분석하고 호출할 수 있습니다. 리플렉션은 개체의 속성과 메서드를 가져오는 기능을 제공하며 개체의 속성과 액세스 수준을 가져올 수 있습니다. .(공개, 비공개 또는 보호).
샘플 코드:
class Car { public $brand = 'Audi'; public $model = 'A6'; private $price = 80000; public function __construct() { # code... } } $car = new Car(); $reflection = new ReflectionObject($car); $arr = []; foreach ($reflection->getProperties() as $property) { $property->setAccessible(true); $arr[$property->getName()] = $property->getValue($car); } print_r($arr);
실행 결과:
Array ( [brand] => Audi [model] => A6 [price] => 80000 )
Reflection을 통해 객체 속성을 획득할 때 접근 수준(public, private, protected)에 의해 제한되지 않는 것을 확인할 수 있습니다. 이름과 속성 값이 배열에 포함됩니다.
요약하자면, 이 글에서는 PHP에서 객체를 배열로 변환하는 다양한 방법을 소개합니다. 실제 개발에서는 코드의 요구사항과 실제 상황에 따라 어떤 방법을 선택할지 결정해야 합니다.
위 내용은 PHP에서 obj를 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!