PHP는 객체 데이터를 배열로 변환합니다.
PHP를 사용하여 개발하다 보면 객체 데이터를 배열로 변환해야 하는 상황에 자주 직면하게 됩니다. PHP에서는 get_object_vars
함수를 사용하여 객체의 변수를 배열로 변환할 수 있습니다. get_object_vars
函数将对象中的变量转换成数组。
首先,让我们看一下 get_object_vars
函数的使用方法。该函数接受一个对象参数,并返回一个包含该对象中所有公共成员变量的关联数组,其中数组的键是成员变量的名称,数组的值是成员变量的值。以下是一个使用 get_object_vars
函数的示例代码:
class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $person = new Person("John", 25); $personArray = get_object_vars($person); print_r($personArray);
在上面的示例代码中,我们首先定义了一个 Person
类,并在构造函数中初始化 name
和 age
变量。接下来,我们创建了一个 Person
对象 $person
并将其赋给 $personArray
变量。最后,我们使用 print_r
函数打印了 $personArray
数组的内容。
运行上面的代码,我们将得到如下输出:
Array ( [name] => John [age] => 25 )
如上所述,get_object_vars
函数只返回公共成员变量,因此无法获取对象中的私有成员变量。如果我们需要获取对象中的所有成员变量,我们可以使用 PHP 反射机制中的 getProperties
方法。
以下是一个使用 ReflectionClass
类中的 getProperties
方法将对象的私有成员变量转换成数组的示例代码:
class Person { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } private function introduce() { echo "My name is " . $this->name . " and my age is " . $this->age . "."; } } $person = new Person("John", 25); $reflectedPerson = new ReflectionClass(get_class($person)); $properties = $reflectedPerson->getProperties(ReflectionProperty::IS_PRIVATE); $personArray = []; foreach ($properties as $property) { $property->setAccessible(true); $personArray[$property->getName()] = $property->getValue($person); } print_r($personArray);
在上面的示例代码中,我们定义了一个名为 Person
的类,并在构造函数中初始化私有变量 $name
和 $age
。接下来,我们创建了一个 Person
对象 $person
。
我们使用 ReflectionClass
类获取 $person
的类名,并通过类名创建一个反射类的实例 $reflectedPerson
。我们使用 getProperties
方法获取 $person
类中所有的私有成员变量,并将这些变量存储在 $properties
变量中。
在循环中,我们首先使用 setAccessible
方法将私有成员变量设置为可访问。接下来,我们使用 getName
方法获取变量的名称,并使用 getValue
方法获取该变量的值。最后,我们将变量名和变量值存储在 $personArray
数组中。
运行上面的代码,我们将得到如下输出:
Array ( [name] => John [age] => 25 )
在许多情况下,将对象数据转换成数组是必要的。使用 PHP 内置的 get_object_vars
函数和反射机制中的 getProperties
get_object_vars
함수 사용법을 살펴보겠습니다. 이 함수는 개체 매개변수를 받아들이고 개체의 모든 공용 멤버 변수를 포함하는 연관 배열을 반환합니다. 여기서 배열의 키는 멤버 변수의 이름이고 배열의 값은 멤버 변수의 값입니다. 다음은 get_object_vars
함수를 사용하는 샘플 코드입니다. 🎜rrreee🎜위 샘플 코드에서는 먼저 Person
클래스를 정의하고 생성자 name에서 초기화합니다.
및 age
변수. 다음으로, Person
객체 $person
을 생성하고 이를 $personArray
변수에 할당합니다. 마지막으로 print_r
함수를 사용하여 $personArray
배열의 내용을 인쇄합니다. 🎜🎜위 코드를 실행하면 다음과 같은 결과가 나옵니다. 🎜rrreee🎜위에서 언급한 것처럼 get_object_vars
함수는 공용 멤버 변수만 반환하므로 개체의 전용 멤버 변수는 가져올 수 없습니다. 객체의 모든 멤버 변수를 가져와야 하는 경우 PHP 리플렉션 메커니즘에서 getProperties
메서드를 사용할 수 있습니다. 🎜🎜다음은 ReflectionClass
클래스의 getProperties
메서드를 사용하여 개체의 전용 멤버 변수를 배열로 변환하는 샘플 코드입니다. 🎜rrreee🎜위에서 샘플 코드에서는 Person
이라는 클래스가 정의되고 개인 변수 $name
및 $age
가 생성자에서 초기화됩니다. 다음으로 Person
개체 $person
을 만듭니다. 🎜🎜ReflectionClass
클래스를 사용하여 $person
의 클래스 이름을 가져오고 클래스 이름을 통해 리플렉션 클래스 $reflectedPerson
의 인스턴스를 생성합니다. . getProperties
메서드를 사용하여 $person
클래스의 모든 비공개 멤버 변수를 가져오고 이러한 변수를 $properties
변수에 저장합니다. 🎜🎜루프에서는 먼저 setAccessible
메서드를 사용하여 액세스할 수 있도록 전용 멤버 변수를 설정했습니다. 다음으로 getName
메서드를 사용하여 변수 이름을 가져오고 getValue
메서드를 사용하여 변수 값을 가져옵니다. 마지막으로 변수 이름과 변수 값을 $personArray
배열에 저장합니다. 🎜🎜위 코드를 실행하면 다음과 같은 결과가 출력됩니다. 🎜rrreee🎜많은 경우 객체 데이터를 배열로 변환해야 합니다. PHP에 내장된 get_object_vars
함수와 리플렉션 메커니즘의 getProperties
메서드를 사용하여 이 작업을 쉽게 수행할 수 있습니다. 🎜위 내용은 PHP는 객체 데이터를 배열로 변환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8의 JIT 컴파일은 자주 실행되는 코드를 컴퓨터 코드로 컴파일하여 성능을 향상시켜 계산이 많은 응용 프로그램에 도움이되고 실행 시간을 줄입니다.

이 기사는 PHP 및 완화 전략의 OWASP Top 10 취약점에 대해 설명합니다. 주요 문제에는 PHP 응용 프로그램을 모니터링하고 보호하기위한 권장 도구가 포함 된 주입, 인증 파손 및 XSS가 포함됩니다.

이 기사는 코드 주입과 같은 취약점을 방지하기 위해 PHP 파일 업로드 보안에 대해 설명합니다. 파일 유형 유효성 검증, 보안 저장 및 오류 처리에 중점을 두어 응용 프로그램 보안을 향상시킵니다.

이 기사는 PHP의 대칭 및 비대칭 암호화에 대해 논의하여 적합성, 성능 및 보안 차이를 비교합니다. 대칭 암호화는 더 빠르고 벌크 데이터에 적합하지만 안전한 키 교환에는 비대칭이 사용됩니다.

이 기사에서는 PHP에서 강력한 인증 및 승인을 구현하여 무단 액세스를 방지하고 모범 사례를 자세히 설명하고 보안 향상 도구를 권장합니다.

기사는 PHP, 커버 단계, 보안 측정, 최적화 기술 및 Solutions의 일반적인 오류를 사용하여 데이터베이스에서 데이터 검색에 대해 논의합니다. 문자 수 : 159

이 기사는 CSRF 토큰, 동일한 사이트 쿠키 및 적절한 세션 관리를 포함하여 PHP의 CSRF 공격을 방지하는 전략에 대해 설명합니다.

이 기사는 MySQL 데이터베이스 상호 작용에 대한 PHP의 MySQLI_Query () 및 MySQLI_Fetch_Assoc () 함수에 대해 설명합니다. 그것은 그들의 역할, 차이점을 설명하고 그들의 사용의 실질적인 예를 제공합니다. 주요 논쟁은 USIN의 이점에 중점을 둡니다
