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';
$myUser = $user;
이렇게 하면 복사본이 생성됩니다. 따라서 PHP4에서는 다음과 같이 사용합니다.
코드는 다음과 같습니다.
$myUser = & $user;
그렇습니다. 배열은 프로그램에서 사용하기에 가장 편리해야 합니다. 그러나 배열이 참조될 때마다($a = $b) 실제로 복사본이 생성됩니다. 또한 배열이 설정 해제된 후에도 여전히 메모리를 차지합니다. 들었습니다) 사람들이 말하는데 저는 테스트를 안해봤는데... 어떻게 테스트해야 할지 모르겠네요 아시는 분 계시면 알려주세요 감사합니다)
하지만 표준 클래스에도 arrayobject 함수가 있습니다. 배열을 객체로 직접 변환할 수 있는 SPL 라이브러리도 좋은 아이디어입니다.위 내용은 PHP에서 stdClass 클래스를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!