PHP 커널이 모듈 초기화 작업을 수행하면 이 함수가 자동으로 로드되므로 stdClass 클래스의 등록 작업도 실행됩니다. stdClass 클래스는 멤버 변수도 없고 멤버 메서드도 없는 클래스입니다. 모든 magic 메서드, 상위 클래스, 인터페이스 등은 초기화 중에 NULL로 설정됩니다. PHP에서는 동적으로 클래스에 메서드를 추가할 수 없기 때문에 이 클래스는 일반적인 사용법이기도 한 동적 속성을 처리하는 데에만 사용할 수 있습니다. 따라서 다음 메소드는 set 인터셉터를 트리거하지 않습니다. stdclass는 기본 클래스로 사용할 수 있습니다. 가장 큰 특징은 정의할 때 멤버 변수를 지정할 필요 없이 자동으로 멤버 변수를 추가할 수 있다는 것입니다.
모든
php 변수1. stdclass 사용:
$andy = array(); $andy = (object)$andy; $andy->a = 1; $andy->b = 2; $andy->c = 3;
이렇게 하면 a, b, c의 양이 stdclass에 채워집니다. 빈 객체를 생성하려면 $andy = new Andy가 필요하고 먼저 Andy{} 클래스가 있어야 하기 때문에 문제가 줄어듭니다. 또 다른 예:
<?php $a = new stdClass(); $a->id = '11 '; $a->username = 'me'; print_r($a); ?>
는 stdClass Object( [id] => 11 [username] => me )를 출력합니다.
이 방법은 단지 다른 구문인array
사용을 대체하는 데 여러 번 사용됩니다. 2. 읽기:
stdClass Object ( [getWeatherbyCityNameResult] => stdClass Object ( [string] => Array ( [0] => 四川 [1] => 成都 [2] => 56294 [3] => 56294.jpg [4] => 2009-5-17 13:52:08 [5] => 26℃/19℃ [6] => 5月17日 阴转阵雨 ) ) )
사실 배열과 비슷하지만 액세스 방법이 약간 다릅니다. 우리는 일반적으로 배열에 액세스하기 위해 array['key']를 사용합니다.
이러한 종류의 stdClass의 경우 위의 예와 같이 $weather->getWeatherbyCityNameResult->string[0]이 이와 같이 속성에 액세스할 수 있으며 결과는 "Sichuan"이 됩니다.
3. 인스턴스화, 새로운 기능.
이 두 코드를 비교해 보세요:
<?php $a = array(1=>2,2=>3); $a = (object)$a; $a->id = '11 '; $a->username = 'me'; print_r($a); ?>
는 다음을 출력합니다: stdClass Object ( [1] => 2 [2] => 3 [id] => 11 [username] => me ) .
<?php $a = array(1=>2,2=>3); $a = (object)$a; $a = new stdClass(); $a->id = '11 '; $a->username = 'me'; print_r($a); ?>
는 다음을 출력합니다: stdClass Object ( [id] => 11 [username] => me ) .
new로 인스턴스화한 후에는 이전 배열이 지워지고 나중에 추가된 배열만 남게 됩니다. 인스턴스화되지 않으면 stdClass는 모든 요소를 유지합니다.
함수에서 전역 및static을 사용하고 새 stdclass가 참조되는 경우 &new stdclass는 유효하지 않습니다. 참조 사용을 피하고 새 stdclass를 직접 사용해야 합니다.
위 내용은 PHP에서 stdClass 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!