>백엔드 개발 >PHP 튜토리얼 >PHP에서 STDCLASS란 무엇입니까? 사용하는 방법?

PHP에서 STDCLASS란 무엇입니까? 사용하는 방법?

伊谢尔伦
伊谢尔伦원래의
2017-06-30 10:10:203803검색

이 글은 주로 PHP에서 STDCLASS의 사용법을 소개하고, PHP에서 STDCLASS의 기능, 원리, 사용 방법 및 관련 측면을 Notes로 분석합니다. 필요한 친구들은

예제를 참고할 수 있습니다. 이 기사에서는 PHP에서 STDCLASS의 사용법을 설명합니다. 자세한 내용은 다음과 같습니다.

PHP의 STDCLASS는 개발 ​​응용 프로그램에서 많이 사용되지 않지만 PHP의 STDCLASS는 매우 유용합니다. WordPress의 여러 위치에서 stdClass는

object

(일반적으로 array 형식)를 정의한 다음 get_object_vars를 사용하여 정의된 객체를 배열로 "변환"합니다. 다음은 다음과 같습니다. 코드는 다음과 같습니다:

$tanteng = new stdClass();
$tanteng->name = 'tanteng';
$tanteng->email = 'xxx@qq.com';
$info = get_object_vars($tanteng);
print_r($info);
exit;

출력:

Array ( [name] => tanteng [email] => xxx@qq.com )

get_object_vars의 함수는 객체 속성으로 구성된 연관 배열을 반환하는 것입니다. 그 효과는 실제로 다음과 같이 배열을 정의하는 것과 동일합니다.

$tanteng = array();
$tanteng['name'] = 'tanteng';
$tanteng['email'] = 'xxx@qq.com';

다음과 같이 이해될 수 있습니다. stdClass는 내장 클래스이고 멤버

변수

가 없으며 멤버 메서드 가 없습니다. "빈" 개체 자체는 의미가 없지만 stdClass를 사용하여 이를 정의하면 어떤 이점이 있습니까? 다음 코드:

$user = new stdClass();
$user->name = 'gouki';
$user->hehe = 'hehe';
$myUser = $user;
$myUser->name = 'flypig';
print_r($user);
print_r($myUser);
print_r($user);

여기서 $myUser에는 $user 값이 할당됩니다. 새 메모리 저장 변수가 열리지 않은 경우에도 $myUser는 $myUser의 속성 페이지를 변경하여 $user의 속성을 변경합니다. 프로그램에 이러한 작업이 많으면 다음을 사용하여 새 복사본을 생성하지 않습니다. stdClass는 메모리 오버헤드를 절약할 수 있습니다.

실행 결과:

stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)
stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)
stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)

$user가 배열이고 $myUser에 할당된 경우 $myUser의 속성을 변경하면 $user가 선언한 stdClass 속성이 변경되는 것을 확인할 수 있습니다. , 복사본이 $myUser에 복사되어 시스템 오버헤드가 증가합니다.

물론 그 반대로 배열을 객체로 변환할 수도 있습니다:

$hehe['he1'] = 'he1';
$hehe['he2'] = 'he2';
$hh = (object) $hehe;
print_r($hh);

결과 인쇄:

stdClass Object ( [he1] => he1 [he2] => he2 )

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

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