이전 글에서는 "PHP에서 객체를 인스턴스화하고 객체 멤버에 액세스하는 방법은 무엇인가요?"를 가져왔습니다. "에서는 객체를 인스턴스화하고 객체 멤버에 액세스하는 방법을 자세히 소개합니다. 이 기사에서는 PHP의 생성자와 소멸자를 살펴보겠습니다. 모든 사람에게 도움이 되기를 바랍니다!
PHP 클래스의 생성자는 생성자라고도 합니다. new 키워드를 사용하여 개체를 인스턴스화하면 개체가 생성될 때 자동으로 호출될 수 있습니다. 해당 함수는 소멸자입니다. 소멸자의 역할은 생성자와 정반대입니다. 소멸자는 객체가 소멸되기 전에 작업을 수행할 수 있습니다. 그럼 이 두 가지 기능을 함께 살펴보겠습니다.
<strong><span style="font-size: 20px;">__construct()</span></strong>
: 생성자/메서드<strong><span style="font-size: 20px;">__construct()</span></strong>
:构造函数/方法
在PHP的类中,我们使用__construct()
作为类的构造函数,构造函数是当对象被创建时,类中被自动调用的第一个函数,并且一个类中只能存在一个构造函数,并且需要注意的是,如果构造函数中有参数的话,那么实例化也需要传入对应的参数。
构造函数创建的语法格式如下:
public function __construct(参数列表){ ... ... }
需要注意的是,其中的参数列表是可选的,不需要的时候可以省略。construct前面是两个下划线__
。
实例如下:
<?php class study{ public $study1, $study2, $study3,$study4; public function __construct($str1, $str2, $str3,$str4){ $this -> study1 = $str1; $this -> study2 = $str2; $this -> study3 = $str3; $this -> study4 = $str4; $this -> demo(); } public function demo(){ echo $this -> study1.'<br>'; echo $this -> study2.'<br>'; echo $this -> study3.'<br>'; echo $this -> study4.'<br>'; } } $object = new study('好好学习','天天向上','福如东海','寿比南山'); ?>
示例中的$this表示当前调用的对象。输出结果:
由上述结果,我们通过,我们通过__construct()
构造函数,就调用了类中创建的对象。
<strong><span style="font-size: 20px;">__destruct()</span></strong>
:析构函数/方法
刚才讲到的__construct()
构造函数,它会在对象被创建的时候调用,与之相对应的就是析构函数,析构函数的作用与构造函数相反,析构函数只有当对象从内存中删除之前才会被自动调用,在PHP中有垃圾回收机制,当对象不能被访问就会自动启动垃圾回收机制,析构函数就是垃圾回收对象前调用。
__destruct()
函数的语法格式如下:
public function __destruct(){ ... ... }
需要注意的是,与构造函数类似,destruct前面也是两个下划线__
;不同的是析构函数不能带有任何参数。
实例如下:
<?php class Website{ public $study1, $study2; public function __construct(){ echo '构造函数被调用了<br>'; } public function __destruct(){ echo '析构函数被调用了<br>'; } } $object = new Website(); echo '好好学习<br>'; echo '天天向上<br>'; ?>
输出结果:
由上述实例可以看出,构造函数与析构函数调用的时间不同,构造函数在对象被创建时自动调用,析构函数在对象被垃圾收集器收集前被调用。
<strong><span style="font-size: 20px;">$this</span></strong>
:当前对象
在PHP面对对象编程中,对象被创建之后,在对象中的每个成员方法里,都会存在一个特殊的对象引用“$this
”,与连接符->
__construct()
를 사용합니다. 생성자는 객체가 생성될 때 사용됩니다. 첫 번째 클래스에서 자동으로 호출되는 함수이며 클래스에는 생성자가 하나만 있을 수 있습니다. 생성자에 매개변수가 있는 경우 인스턴스화를 위해 해당 매개변수도 전달되어야 한다는 점에 유의해야 합니다.
생성자가 생성하는 구문 형식은 다음과 같습니다.
$this -> 成员属性; $this -> 成员方法(参数列表);매개변수 목록은 선택사항이며 필요하지 않은 경우 생략할 수 있다는 점에 유의하세요. 구문 앞에 두 개의 밑줄
__
이 옵니다. 예제는 다음과 같습니다. 예에서 <?php class Website{ public $name; public function __construct($name){ $this -> name = $name; $this -> name(); } public function name(){ echo $this -> name; } } $object = new Website('好好学习'); ?>$this는 현재 호출되는 객체를 나타냅니다. 출력 결과:
__construct()
생성자를 전달하여 클래스에서 생성된 객체를 호출했습니다.
<strong><span style="max-width:90%">__destruct()</span></strong>
: 소멸자/메서드🎜🎜방금 언급한 __construct()
생성자는 객체가 생성될 때 호출되며, 소멸자입니다. 소멸자는 생성자와 반대입니다. 소멸자는 객체가 메모리에서 삭제될 때까지 자동으로 호출되지 않습니다. PHP에는 객체에 액세스할 수 없으면 자동으로 재활용 메커니즘이 시작됩니다. , 소멸자는 개체의 가비지 수집 전에 호출됩니다. 🎜🎜🎜__destruct()
함수의 구문 형식은 다음과 같습니다: 🎜rrreee🎜생성자와 유사하게 destruct 앞에는 두 개의 밑줄 __이 있습니다. code>; 차이점은 소멸자는 어떤 매개변수도 취할 수 없다는 것입니다. 🎜🎜🎜예제는 다음과 같습니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜<img src="https://img.php.cn/upload/image/227/432/988/1635127650312688.png" title=" 1635127650312688.png " alt="클래스에서 생성자와 소멸자를 구별할 수 있습니다.">🎜🎜위의 예에서 볼 수 있듯이 생성자와 소멸자가 서로 다른 시점에 호출됩니다. 생성자는 객체 생성 시 자동으로 호출되고 소멸자는 호출됩니다. 이전에 가비지 수집기가 호출된 경우입니다. 🎜🎜<code><strong><span style="max-width:90%">$this</span></strong>
: 현재 개체🎜🎜PHP 개체 지향 프로그래밍에서는 개체가 생성된 후 개체의 각 멤버 메서드에 특수 개체 참조 "$this code>"는 커넥터 ->
와 함께 사용되며 특히 개체의 내부 멤버 간의 액세스를 완료하는 데 사용됩니다. 예는 다음과 같습니다. 🎜rrreee🎜클래스의 멤버 속성에 액세스할 때는 속성 이름만 따라가면 됩니다. $ 기호를 추가할 필요는 없습니다. $this는 객체 없이만 사용할 수 있습니다. , $this가 없습니다. 🎜🎜예제는 다음과 같습니다. 🎜🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜관심이 있으시면 "🎜PHP Video Tutorial🎜"을 클릭하여 PHP 지식에 대해 자세히 알아볼 수 있습니다. 🎜
위 내용은 클래스에서 생성자와 소멸자를 구별할 수 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!