PHP的构造方法,析构方法和this关键字详细介绍_PHP教程
一.什么是构造方法
构造方法是类的一种特殊的方法,它的主要作用是完成对新对象初始化.
特点:
1. 没有返回值.
2. 在创建一个新的对象时,系统会自动调用该类的构造方法完成对新对角的初始化.
语法:
php5: 修饰符 function __construct()
{
//code
}
php4: 修饰符 function 类名()
{
//code
}
注意:
1. php5里对两者都支持,如果两种构造方法同时存在的话,优先选择第一种.
2. 一个类里面默认有一个不带参数为空的构造方法,一旦自定义了一个构造方法,就会覆盖默认的构造方法.
所以说一个类有且只有一个构造方法.
3.一个类只能有一个构造方法.(不能重载)
4.构造方法默认的访问修饰符为public.
二.this关键字
this代表当前对象.可以理解为:谁调用它,它就代表谁.
注意事项:
this不在类定义的使用,只能在类定义的方法中使用.
三.实例
header("Conter-Type:text/html;charset=utf-8");
class Person
{
public $name; //成员变量
public $age;
// function __construct()
//{
// echo "不带参数的构造方法";
//}
function __construct($name,$age)
{
$this -> name = $name;
$this -> age = $age;
echo "带参数的构造方法"."
";
}
//成员方法
function view()
{
//this的引用.
echo "姓名:".$this ->name.", 年龄:".$this ->age;
}
}
//new一个新的对象
//$p = new Person();
$p2 = new Person("李四",13);
$p2 ->view();
?>
结果如下:
带参数的构造方法
姓名:李四, 年龄:13
四:析构方法:
析构方法是PHP5引入的新概念.主要作用:释放资源(比如:释放数据库链接,图片资源...).
语法:
function __destruct(){}
特点:
1.析构方法没有返回值.
2.主要作用是释放资源.并不是销毁对象本身.
3.在销毁对象前,系统自动调用该类的析构方法.
4.一个类最多只有一个析构方法.
五:例子:
header("Conter-Type:text/html;charset=utf-8");
class Person
{
public $name;
public $age;
//构造方法
function __construct($name,$age)
{
$this ->name = $name;
$this ->age = $age;
}
//析构方法
function __destruct()
{
echo "姓名:".$this->name.", 年龄".$this->age."-->销毁
";
}
}
$p1= new Person("小一",18);
$p2= new Person("小二",17);
?>
结果:
姓名:小二, 年龄17-->销毁
姓名:小一, 年龄18-->销毁
分析结论:
1.析构方法会自动调用.
2.析构方法调用的顺序是先创建的对象后被销毁.
3.当一个对象没有引用,被垃圾回收机制确认为垃圾时,调用析构方法.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 글은 Vue 소스 코드를 해석하는 데 도움이 될 것이며 이를 사용하여 Vue2의 다양한 옵션에서 속성에 액세스할 수 있는 이유를 소개하는 것이 모든 사람에게 도움이 되기를 바랍니다!

Vue2의 이 포인팅 문제로 인해 동료가 버그로 인해 화살표 기능이 사용되어 해당 소품을 얻을 수 없게 되었습니다. 제가 그에게 소개했을 때 그는 그것을 몰랐고, 그래서 저는 일부러 프론트엔드 커뮤니케이션 그룹을 살펴보았습니다. 지금까지 적어도 70%의 프론트엔드 프로그래머들은 오늘 그것을 이해하지 못하고 있습니다. 모든 것이 불분명하다면 이 링크를 아직 배우지 않았다면 큰 소리로 말해주세요.

PHP 특성은 생성자를 지원하지 않습니다. 특성은 개별적으로 인스턴스화할 수 없으므로 클래스에서만 참조할 수 있습니다. Trait 자체에는 생성자가 없기 때문에 Trait에서 생성자를 정의하는 것은 불가능합니다.

jQuery에서 this 키워드의 유연한 사용 jQuery에서 this 키워드는 현재 조작 중인 DOM 요소를 참조하는 데 사용되는 매우 중요하고 유연한 개념입니다. 이 키워드를 합리적으로 사용함으로써 페이지의 요소를 쉽게 조작하고 다양한 인터랙티브 효과와 기능을 얻을 수 있습니다. 이 기사에서는 특정 코드 예제를 결합하여 jQuery에서 이 키워드를 유연하게 사용하는 방법을 소개합니다. 간단한 이 예 먼저 간단한 이 예를 살펴보겠습니다. 우리가

이게 뭔가요? 다음 기사에서는 JavaScript에서 이에 대해 소개하고 다양한 함수 호출 방법의 차이점에 대해 설명하겠습니다. 도움이 되기를 바랍니다.

1. this 키워드 1. this 유형: 호출되는 개체는 해당 개체의 참조 유형입니다. 2. 사용법 요약 1. this.data;//Access 속성 2. this.func();//Access 메서드 3.this ( );//이 클래스의 다른 생성자를 호출합니다. 3. 사용법 설명 1.this.data가 멤버 메서드에 사용됩니다. 이것이 추가되지 않으면 어떻게 되는지 살펴보겠습니다. classMyDate{publicintyear;publicintmonth;publicintday; 월,월){예

JavaScript는 이 포인터를 어떻게 변경합니까? 다음 기사에서는 JS에서 이 포인터를 변경하는 세 가지 방법을 소개합니다. 이것이 도움이 되기를 바랍니다.

코드 유지 관리성을 향상시키기 위해 PHP8에서 ConstructorPropertyPromotion을 사용하는 방법은 무엇입니까? PHP8의 출시와 함께 몇 가지 새로운 언어 기능이 도입되었습니다. 그 중 하나가 ConstructorPropertyPromotion(생성자 속성의 약어)입니다. 이 기능을 사용하면 클래스 속성을 더 쉽게 정의하고 초기화할 수 있으므로 코드의 가독성과 유지 관리성이 향상됩니다. 이 기사에서는 생성자를 소개합니다.
