> 백엔드 개발 > PHP 튜토리얼 > PHP에서 stdClass 클래스를 사용하는 방법은 무엇입니까?

PHP에서 stdClass 클래스를 사용하는 방법은 무엇입니까?

怪我咯
풀어 주다: 2023-03-13 17:06:01
원래의
1529명이 탐색했습니다.

PHP 커널이 모듈 초기화 작업을 수행하면 이 함수가 자동으로 로드되므로 stdClass 클래스의 등록 작업도 실행됩니다. stdClass 클래스는 멤버 변수도 없고 멤버 메서드도 없는 클래스입니다. 모든 magic 메서드, 상위 클래스, 인터페이스 등은 초기화 중에 NULL로 설정됩니다. PHP에서는 동적으로 클래스에 메서드를 추가할 수 없기 때문에 이 클래스는 일반적인 사용법이기도 한 동적 속성을 처리하는 데에만 사용할 수 있습니다. 따라서 다음 메소드는 set 인터셉터를 트리거하지 않습니다.

코드는 다음과 같습니다.

$user = new stdClass();
$user->name = 'gouki';
로그인 후 복사

이 코드는 무엇에 사용됩니까?

설명서를 열고

stdClass를 검색해 보면 설명서에 소개가 거의 없는 것을 다시 구글에서 검색해 보면 거의 모든 영어 설명이 나옵니다.
사실 stdClass는 PHP5에서만 인기를 얻었습니다. 그리고 stdClass는 zend의 예약 클래스이기도 합니다. 다른 효과는 없는 것 같습니다. 설명도 거의 없습니다. 또는 다음과 같이 이해할 수 있습니다. stdClass는 PHP의 기본 클래스입니다. 거의 모든 클래스가 이 클래스를 상속
하므로 언제든지 새 변수가 될 수 있으며 이 변수는
객체가 될 수 있습니다. 동시에 이 기본 클래스에는 특별한 기능이 있습니다. 즉, 메서드가 없습니다. new stdClass()의 변수를 사용할 때마다 $a->test()를 사용할 수 없습니다. 또는 이렇게 이해할 수도 있습니다. PHP5의 객체
고유성으로 인해 객체는 호출될 때마다 참조 주소 유형이므로 리소스를 덜 소비합니다.
다른 페이지에서 값을 할당하면 복사본을 참조하는 대신 직접 수정됩니다. 예:
코드는 다음과 같습니다.

$user = new stdClass();
$user->name = 'gouki';
$myUser = $user;
$myUser->name = 'flypig';
로그인 후 복사

PHP4 시대의 경우 이러한 코드는 시스템 리소스를 소비합니다. 이유:

$myUser = $user;

이렇게 하면 복사본이 생성됩니다. 따라서 PHP4에서는 다음과 같이 사용합니다.



코드는 다음과 같습니다.

$myUser = & $user;
로그인 후 복사

어떤 사람들은 왜 배열을 사용하지 않느냐고 합니다. 배열이 더 편리하지 않나요? 그리고 PHP와 같이 약한 유형의 프로그램의 경우 배열을 사용하는 것이 가장 편리합니다.

그렇습니다. 배열은 프로그램에서 사용하기에 가장 편리해야 합니다. 그러나 배열이 참조될 때마다($a = $b) 실제로 복사본이 생성됩니다. 또한 배열이 설정 해제된 후에도 여전히 메모리를 차지합니다. 들었습니다) 사람들이 말하는데 저는 테스트를 안해봤는데... 어떻게 테스트해야 할지 모르겠네요 아시는 분 계시면 알려주세요 감사합니다)

하지만 표준 클래스에도 arrayobject 함수가 있습니다. 배열을 객체로 직접 변환할 수 있는 SPL 라이브러리도 좋은 아이디어입니다.


위 내용은 PHP에서 stdClass 클래스를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿