PHP 객체지향 가이드(2) 객체 인스턴스화 및 객체 멤버 사용

黄舟
풀어 주다: 2023-03-03 15:58:01
원래의
1047명이 탐색했습니다.

5. 객체 인스턴스화 방법
위에서 객체지향 프로그램의 단위가 객체라고 했지만 객체는 클래스를 통해 인스턴스화됩니다. 객체를 인스턴스화합니다.
클래스를 정의한 후 new 키워드를 사용하여 객체를 생성합니다.
코드 조각

$对象名称= new 类名称(); 
<?php 
class Person{ 
//下面是人的成员属性 
var $name; //人的名字 
var $sex; //人的性别 
var $age; //人的年龄 
//下面是人的成员方法 
function say(){ 
//这个人可以说话的方法 
echo "这个人在说话"; 
} function run(){ 
//这个人可以走路的方法 
echo "这个人在走路"; 
} 
} 
$p1=new Person(); 
$p2=new Person(); 
$p3=new Person(); 
?> 
$p1=new Person();
로그인 후 복사
이 코드는 클래스를 통해 인스턴스 객체를 생성하는 프로세스입니다. $p1은 우리가 인스턴스화하는 객체의 이름입니다. 마찬가지로 $p2 및

$p3도 우리의 객체입니다. 인스턴스가 나오는 개체의 이름, 클래스는 여러 개체를 인스턴스화할 수 있으며 각 개체는 독립적입니다. 위의 코드는 3명의 사람을 인스턴스화하는 것과 동일하며 각 사람 사이에는 연결이 없으며 그들이 모두라는 것만 보여줄 수 있습니다.
는 누구나 자신만의 이름, 성별, 나이 속성을 갖고 있으며, 클래스에 반영된 멤버 속성과 메소드만 있으면 인스턴스화할 수 있습니다. 다음과 같은 속성과 메서드가 포함되어 있습니다.
정수 및 부동 소수점 유형과 같은 PHP의 객체는 다양한 유형의 데이터를 저장하는 데 사용되는 데이터 클래스이기도 합니다.
런타임 중에 메모리에 로드되어야 하므로 객체가 메모리에 어떻게 반영됩니까? ? 메모리는 논리적으로
4개의 세그먼트, 즉 스택 공간 세그먼트, 힙 공간 세그먼트, 코드 세그먼트 및 초기화 정적 세그먼트로 나누어집니다.
프로그램의 다양한 선언은 서로 다른 메모리 세그먼트에 배치되며 스택 공간은 세그먼트 정수 1, 10, 100, 1000, 10000, 100000 등 같은 공간 길이를 차지하고 작은 공간
을 차지하는 데이터 유형을 저장하는 곳입니다. 메모리에서 차지하는 공간은 동일합니다. length,
둘 다 64비트와 4바이트입니다. 그러면 가변 길이를 가지며 많은 공간을 차지하는 데이터 유형의 데이터가 해당 메모리 세그먼트에 배치됩니다
? 이러한 데이터는 힙 메모리에 저장됩니다. 스택 메모리는 직접 접근이 가능한 반면, 힙 메모리는
직접 접근이 불가능한 메모리입니다. 우리의 객체는 큰 데이터 유형이고 가변 길이의 공간
을 차지하므로 객체는 힙에 배치되지만 객체 이름은 스택에 배치되므로 객체 이름은
입니다. 사용하기 위해.
$p1=new Person();
이 코드에서 $p1은 스택 메모리의 객체 이름이고, new Person()은 힙 메모리의 실제 객체입니다.
지정해 주세요. 아래 그림:

위 그림에서 볼 수 있듯이 $p1=new Person(); 등호 오른쪽이 실제 객체 인스턴스, 즉 힙 메모리의 엔터티입니다. 위 그림에서는 Person()이 3번 새로 생성되므로 힙에 3개의 공간이 열리고 3개의 인스턴스 개체가 생성됩니다. 각 개체
는 PHP에서 자체 공간을 사용합니다. 새로운 키워드가 나타나면
는 객체를 인스턴스화하고 힙에 자체 공간을 엽니다.
힙의 각 인스턴스 개체에는 속성이 저장됩니다. 예를 들어 이제 힙의 인스턴스 개체에는 성
이름, 성별 및 나이가 포함됩니다. 각 속성에는 주소가 있습니다.
$p1=new Person(); 등호 $p1의 오른쪽은 참조 변수입니다.
객체의 첫 번째 주소는 할당 연산자 "=를 통해 참조 변수 "$p1"에 할당됩니다. "이므로 $p1 객체의 첫 번째 주소를 저장하는 변수입니다. $p1은 스택 메모리에 배치됩니다. $p1은 힙에서 객체를 가리키는 포인터와 동일하므로 객체를 통해 연산할 수 있습니다. 참조 변수 $p1. 일반적으로
객체 참조를 객체라고 부릅니다.
6. 객체에서 멤버를 사용하는 방법
위에서 본 것처럼 PHP 객체에는 두 가지 유형의 멤버가 있는데, 하나는 멤버 속성이고 다른 하나는 멤버 메서드입니다.
, $p1=new Person();으로 객체를 선언할 수 있습니다. 객체의 멤버는 어떻게 사용하나요? 개체의 구성원에 액세스하려면
특수 연산자 "->"를 사용하여 개체 구성원의 액세스를 완료해야 합니다.
Object-> p2->age; $p3->sex;
Object->say(); $p2->run();
코드 조각


위의 예에서 볼 수 있듯이 object->properties 및 object-> 메서드를 사용하여 개체의 멤버에만 액세스해야 합니다.
두 번째는 없습니다. 개체의 멤버에 액세스하는 방법입니다.

위 내용은 PHP 객체 지향 가이드입니다. (2) 객체 인스턴스화 및 객체 멤버 사용 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

<?php 
class Person{ 
//下面是人的成员属性 
var $name; //人的名字 
var $sex; //人的性别 
var $age; //人的年龄 
//下面是人的成员方法 
function say(){ //这个人可以说话的方法 
echo "这个人在说话"; 
} 
function run(){ //这个人可以走路的方法 
echo "这个人在走路"; 
} 
} 
$p1=new Person(); //创建实例对象$p1 
$p2=new Person(); //创建实例对象$p2 
$p3=new Person(); //创建实例对象$p3 
//下面三行是给$p1对象属性赋值 
$p1->name=”张三”; 
$p1->sex=”男”; 
$p1->age=20; 
//下面三行是访问$p1对象的属性 
echo “p1对象的名字是:”.$p1->name.”<br>”; 
echo “p1对象的性别是:”.$p1->sex.”<br>”; 
echo “p1对象的年龄是:”.$p1->age.”<br>”; 
//下面两行访问$p1对象中的方法 
$p1->say(); 
$p1->run(); 
//下面三行是给$p2对象属性赋值 
$p2->name=”李四”; 
$p2->sex=”女”; 
$p2->age=30; 
//下面三行是访问$p2对象的属性 
echo “p2对象的名字是:”.$p2->name.”<br>” 
echo “p2对象的性别是:”.$p2->sex.”<br>”; 
echo “p2对象的年龄是:”.$p2->age.”<br>”; 
//下面两行访问$p2对象中的方法 
$p2->say(); 
$p2->run(); 
//下面三行是给$p3对象属性赋值 
$p3->name=”王五”; 
$p3->sex=”男”; 
$p3->age=40; 
//下面三行是访问$p3对象的属性 
echo “p3对象的名字是:”.$p3->name.”<br>”; 
echo “p3对象的性别是:”.$p3->sex.”<br>”; 
echo “p3对象的年龄是:”.$p3->age.”<br>”; 
//下面两行访问$p3对象中的方法 
$p3->say(); 
$p3->run(); 
?>
로그인 후 복사


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!