>  기사  >  백엔드 개발  >  PHP에서 객체를 배열 객체로 변환하는 방법

PHP에서 객체를 배열 객체로 변환하는 방법

PHPz
PHPz원래의
2023-04-19 09:20:28708검색

PHP에서는 객체와 배열 간 변환이 필요한 경우가 많습니다. 어떤 경우에는 객체의 속성과 메서드를 보다 편리하게 조작할 수 있도록 객체를 배열 객체로 변환해야 할 수도 있습니다. 이 글에서는 PHP에 내장된 몇 가지 함수를 사용하여 객체를 배열 객체로 변환하는 방법을 설명합니다.

1. Typecast를 사용하여 객체 변환

PHP의 Typecast(유형 변환)는 한 데이터 유형을 다른 데이터 유형으로 변환하는 방법입니다. 따라서 typecast를 사용하여 객체를 배열 객체로 변환할 수 있습니다. 다음 예에서는 이름, 나이 및 성별 속성을 사용하여 개체를 정의한 다음 개체를 배열 개체로 변환합니다.

class Person {
    public $name;
    public $age;
    public $gender;
}

$person = new Person();
$person->name = '张三';
$person->age = 18;
$person->gender = '男';

$array = (array) $person;
print_r($array);

출력:

Array
(
    [name] => 张三
    [age] => 18
    [gender] => 男
)

위 예에서는 $person Cast 개체를 $ 배열 개체로 변환합니다. (배열)을 사용하여 배열합니다. 배열 객체를 인쇄하면 $array에 $person의 속성과 값이 성공적으로 포함되어 있음을 알 수 있습니다.

객체에서 변환된 배열 객체에서 속성의 이름은 객체 속성의 이름이고, 속성의 값은 객체 속성의 값이라는 점을 참고하세요. 그러나 이 메서드는 객체의 전용 속성을 배열 객체 속성으로 변환할 수 없습니다. 전용 속성을 배열 객체 속성으로 변환해야 하는 경우 다른 변환 방법을 사용하세요.

2. get_object_vars() 함수를 사용하세요

PHP의 get_object_vars() 함수는 객체의 모든 속성과 속성값을 얻고 속성 이름과 속성값으로 구성된 연관 배열을 반환하는 데 사용할 수 있습니다. 이 함수의 반환 배열을 객체의 배열 객체로 표현할 수 있습니다. 다음은 get_object_vars() 함수를 사용하여 객체를 배열 객체로 변환하는 예입니다.

class Person {
    public $name;
    public $age;
    private $gender;
}

$person = new Person();
$person->name = '张三';
$person->age = 18;
$person->gender = '男';

$array = get_object_vars($person);
print_r($array);

출력 결과:

Array
(
    [name] => 张三
    [age] => 18
)

위 예에서는 $name 및 $ 공용 속성을 갖는 $person 객체를 정의합니다. age 및 개인 속성 $gender. 그런 다음 get_object_vars() 함수를 사용하여 이 객체를 배열 객체 $array로 변환합니다. get_object_vars() 함수는 비공개 속성 $gender를 제외하고 객체의 공개 속성과 값만 반환한다는 점에 유의하세요.

3. json_decode() 함수를 사용하세요.

PHP의 json_decode() 함수는 JSON 형식 문자열을 PHP 변수나 개체로 변환하는 데 사용할 수 있습니다. 객체를 변환할 때 json_decode() 함수는 typecast를 사용하여 배열 객체로 변환할 수 있는 stdClass 객체를 반환합니다. 다음은 json_decode() 함수를 사용하여 객체를 배열 객체로 변환하는 예입니다.

class Person {
    public $name;
    public $age;
    private $gender;
}

$person = new Person();
$person->name = '张三';
$person->age = 18;
$person->gender = '男';

$jsonStr = json_encode($person);
$array = (array) json_decode($jsonStr);
print_r($array);

출력 결과:

Array
(
    [name] => 张三
    [age] => 18
    [gender] => 男
)

위 예에서는 먼저 json_encode(를 통해 $person 객체를 JSON 문자열로 변환합니다. ) 함수 $jsonStr을 생성한 다음 json_decode() 함수를 통해 stdClass 객체로 변환합니다. 마지막으로 typecast를 사용하여 stdClass 객체를 배열 객체 $array로 변환합니다. 이 방법을 사용하면 객체의 전용 속성을 배열 객체 속성으로 변환할 수도 있습니다.

결론

PHP에는 객체를 배열 객체로 변환하는 여러 가지 메서드가 제공됩니다. 실제 필요에 따라 적절한 방법을 선택할 수 있습니다. typecast 메서드를 사용하는 경우 객체를 배열 객체로 캐스팅해야 하지만 프라이빗 속성을 배열 객체 속성으로 변환할 수는 없습니다. get_object_vars() 함수를 사용하면 객체의 public 속성과 값만 얻을 수 있습니다. json_decode() 함수를 사용하면 객체의 공개 속성과 비공개 속성을 모두 배열 객체 속성으로 변환할 수 있습니다.

위 내용은 PHP에서 객체를 배열 객체로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.