예를 들어 직원 관리 애플리케이션에는 EmPloyee 클래스가 포함될 수 있습니다. 그런 다음 이 클래스를 사용하여 Gonn 및 Sally와 같은 특정 인스턴스를 만들고 유지 관리할 수 있습니다.
미리 정의된 클래스를 기반으로 객체를 생성하는 것을 클래스 인스턴스화라고도 합니다.
객체는 다음과 같이 new 키워드를 사용하여 생성됩니다:
코드는 다음과 같습니다:
$employee = new Employee() ;
객체를 생성한 후 새로 인스턴스화된 객체는 클래스에 정의된 모든 속성과 동작을 갖습니다.
객체 인스턴스화 방법
객체 지향 프로그램의 단위는 객체인데, 객체는 클래스를 통해 인스턴스화됩니다. 우리의 클래스가 선언될 것이므로 다음 단계는 객체를 인스턴스화하는 것입니다. 클래스를 정의한 후 new 키워드를 사용하여 객체를 생성합니다.
코드는 다음과 같습니다.
class Person
{
//다음은 person
var $의 멤버 속성입니다. name; //사람 이름
var $sex; //사람 성별
var $age; //사람 나이
//여기에 사람의 멤버 메소드가 있습니다. ) //이 사람 말하는 방식
{
echo "이 사람이 말하고 있어요"
}
function run() //이 사람이 걷는 방식
{
echo " 이 사람은 걷고 있습니다";
$p1=new Person()
$p2=new Person(); new Person();
$p1=new Person();
이 코드는 클래스를 통해 인스턴스 객체를 생성하는 과정입니다. 마찬가지로 $p2, $p3도 인스턴스화하는 객체의 이름입니다. 클래스는 여러 객체를 인스턴스화할 수 있으며 각 객체는 독립적입니다. 위의 코드는 3명이 인스턴스화하는 것과 동일하며 연결이 없습니다. , 그것은 모두 인간이라는 것을 의미할 수 있습니다. 모든 사람은 자신의 이름, 성별, 연령 속성을 가지고 있으며, 클래스에 반영된 멤버 속성과 방법이 있습니다. 인스턴스화됨 개체에는 다음과 같은 속성과 메서드가 포함되어 있습니다.
정수 및 부동 소수점 유형과 같은 PHP의 객체도 데이터 클래스입니다. 이들은 다양한 유형의 데이터를 저장하는 데 사용됩니다. 그런 다음 객체는 어떻게 반영됩니까? 메모리? 논리적으로 말하면, 메모리는 대략 스택 공간 세그먼트, 힙 공간 세그먼트, 코드 세그먼트 및 초기화 정적 세그먼트의 4개 세그먼트로 나누어집니다. 프로그램의 서로 다른 선언은 서로 다른 메모리 세그먼트에 배치됩니다. 스택 공간 세그먼트는 동일한 저장 공간을 차지합니다. 정수 1, 10, 100, 1000, 10000, 100000 등과 같이 길이가 작고 공간을 차지하는 데이터 유형은 메모리에서 동일한 길이의 공간을 차지하며 모두 64비트와 4바이트입니다. 그렇다면 데이터 길이가 가변적이고 많은 공간을 차지하는 데이터 유형의 데이터는 해당 메모리 세그먼트의 어디에 배치되어야 할까요? 이러한 데이터는 힙 메모리에 저장됩니다. 스택 메모리에는 직접 액세스할 수 있지만 힙 메모리에는 직접 액세스할 수 없습니다. 우리 객체의 경우 대용량 데이터 유형이고 가변적인 길이의 공간을 차지하므로 객체는 힙에 배치되지만 객체 이름은 스택에 배치되므로 객체를 통해 사용할 수 있습니다. 이름. .
$p1=new Person(); 이 코드에서 $p1은 스택 메모리의 개체 이름이고 new Person()은 힙 메모리의 실제 개체입니다.
등호 오른쪽은 실제 객체 인스턴스, 즉 힙 메모리의 엔터티입니다. 여기에는 총 3번의 new Person()이 있으므로 힙에 3개의 공간이 열리고 3개의 인스턴스 객체가 생성됩니다. PHP에서는 각 객체가 서로 독립적이며 자체 공간을 사용합니다. there is a new 이 키워드가 나타나면 객체가 인스턴스화되고 힙에 자체 공간이 생성됩니다.
힙의 각 인스턴스 개체는 속성을 저장합니다. 예를 들어 힙의 인스턴스 개체는 이제 모든 저장소 이름, 성별 및 연령을 저장합니다. 각 속성에는 주소가 있습니다. $p1=new Person(); 등호 $p1의 오른쪽은 참조 변수입니다. 객체의 첫 번째 주소는 할당 연산자 "="를 통해 참조 변수 "$p1"에 할당되므로 $p1은 저장합니다. 객체의 첫 번째 주소 $p1은 스택 메모리에 위치하며, $p1은 힙의 객체를 가리키는 포인터와 동일하므로 일반적으로 참조 변수 $p1을 호출하기도 합니다. 객체는 객체를 참조합니다.
더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!