>  기사  >  백엔드 개발  >  정의되지 않은 클래스 PHP 객체를 만드는 방법

정의되지 않은 클래스 PHP 객체를 만드는 방법

醉折花枝作酒筹
醉折花枝作酒筹앞으로
2021-06-25 16:14:031545검색

PHP에서 클래스가 미리 준비되어 있지 않고 정의되지 않은 클래스의 객체를 생성해야 하는 경우 다음 세 가지 방법을 사용할 수 있습니다. 1. "new stdClass()", "new class{}(object)" 및 "( 물체)[]". 아래에서 에디터가 자세히 소개하겠습니다.

정의되지 않은 클래스 PHP 객체를 만드는 방법

PHP에서 클래스가 미리 준비되지 않아 정의되지 않은 클래스의 객체를 생성해야 하는 경우 다음 세 가지 방법을 사용할 수 있습니다.

  • new stdClass()

  • new class{ }

  • (object)[]

First는 stdClass입니다. 이 클래스는 빈 클래스 템플릿이며 PHP의 내부 예약 키워드이자 클래스 이름입니다. Java의 Object 기본 클래스로 간주할 수 있습니다. Java에서는 모든 클래스가 자연스럽게 Object 기본 클래스에서 상속됩니다. PHP의 stdClass는 완전히 비어 있는 클래스 템플릿입니다. 새로 생성된 클래스는 해당 클래스의 하위 클래스가 아닙니다. 하지만 이 클래스 템플릿을 사용하여 정의되지 않은 자체 클래스의 개체를 만들 수 있습니다. 물론 이 물체 안에는 아무것도 없습니다.

 $a = new stdClass();
var_dump($a);

새 클래스{}는 어떻습니까? 일정 기간 개발을 하며 프론트엔드 js나 기타 동적 언어를 접해본 사람이라면 이것이 익명 클래스임을 짐작할 수 있을 것이다. 일반적으로 매개변수 개체에서 매우 일반적입니다. 그것이 생성하는 객체는 속성 메소드를 가질 수 있습니다.

 $b = new class{
    public $p = 1;
};
var_dump($b);

마지막으로 볼 수 있는 것은 배열을 사용하여 객체를 생성하는 것입니다.

 $c = (object)[
    'p' => 1
];
var_dump($c);

분명히 배열 강제 변환으로 생성된 개체는 첫 번째 개체와 동일한 유형이며 속성을 가질 수도 있고 가지지 않을 수도 있습니다. 그러나 메소드를 사용할 수는 없습니다.

배열 강제 변환 방식으로 생성된 객체는 매우 직관적이고 이해하기 쉽습니다. 단지 속성 객체를 캡슐화하는 것이라면 이 방법을 사용하는 것이 더 우아하고 편안할 것입니다. 익명 클래스를 사용하여 복잡한 개체 생성을 생성할 수 있습니다. 자리 표시자만 필요한 일부 객체의 경우 stdClass 메서드를 사용할 수 있습니다. 물론 빈 배열을 사용하는 것도 매우 편리합니다.

배열 강제 변환은 유형 변환 규칙을 준수해야 한다는 점에 유의해야 합니다. 예를 들어 숫자 아래 첨자 문제입니다.

일상 개발에서 일부 인터페이스나 데이터베이스 ORM 프레임워크를 사용할 때 이러한 기능을 자주 사용합니다. 예를 들어 일부 ORM 프레임워크를 삽입하고 수정하려면 속성만 포함하는 개체를 가져와야 합니다. 이때 위의 방법을 이용하면 클래스 템플릿을 완전히 정의하지 않고도 유연하게 객체를 생성할 수 있다.

테스트 코드:

https://github.com/zhangyue0503/dev-blog/blob/master/php/201910/source/%E4%BC%98%E9%9B%85%E5%9C%B0%E5%88%9B%E5%BB%BA%E6%9C%AA%E5%AE%9A%E4%B9%89PHP%E5%AF%B9%E8%B1%A1.php

추천 학습: php 비디오 튜토리얼

위 내용은 정의되지 않은 클래스 PHP 객체를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제