很多站长朋友们都不太清楚php中构造方法的特点,今天小编就来给大家整理php中构造方法的特点,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP构造方法到底有什么用 2、 PHP类的构造方法 3、 PHP中构造函数与自定义函数区别 4、 PHP构造方法和析构方法 5、 PHP构造函数的特点? PHP构造方法到底有什么用构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。
对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。
当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
PHP类的构造方法构造方法是类中的一个特殊方法。当使用 new 操作符创建一个类的实例时,构造方法将会自动调用,其名称必须是 __construct() 。所以通常用它执行一些有用的初始化任务。该方法无返回值。
如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。
与构造方法对应的就是析构方法,析构方法会在某个对象的所有引用都被删除或者当对象被显式销毁之前执行的一些操作或者功能。析构函数不能带有任何参数,其名称必须是 __destruct() 。
同样,如果子类中定义了析构函数则不会暗中调用其父类的析构函数。要执行父类的析构函数,需要在子类的析构函数中调用 parent::__destruct()。
注意:在析构函数中抛出一个异常会导致致命错误。
<?php
class Construct{
protected $a;
protected $b;
function __construct($a,$b){ //定义构造函数
$this->a=$a;
$this->b=$b;
}
function __destruct(){ //重新定义为初始值
$result=0;
echo '恢复乘积的初始值:'.$result;
}
}
class son extends construct{
private $c;
function __construct($c){
parent::__construct(6,10); //调用父类的构造方法,使用方法:parent::__construct(); 有参数加参数
$this->c=$c;
}
function show(){
$result=$this->a*$this->b*$this->c;
print 'abc的乘积是:'.$result.' ';
}
function __destruct(){
parent::__destruct(); //调用父类的析构函数,使用方式:parent::__destruct();
}
}
$test=new son(12); //实例化对象
$test->show(); //abc的乘积是:720 恢复乘积的初始值:0
?>
PHP中构造函数与自定义函数区别构造方法:用户创建对象时,系统自动调用的方法;
功能:初始化类中必备数据的;
PHP5实现方法:
1)方法名和类名相同的方法
2)PHP中设置的魔术方法(用户执行了某种操作后,系统自动调用的方法):
__construct();
注意:1】如果没有定义构造方法,那么系统会自动的创建一个空魔术构造方法;
2】如果PHP4中的构造方法和PHP5中的构造方法,同时存在,那么PHP5中的构造方法优先使用;普通的成员方法和构造方法的区别和联系:
1】普通的方法如果定义的名字和类名相同,那么就变成构造方法
2】如果构造方法中有参数,那么参数列表要和创建对象时,类名后的小括号参数类表完全一样;
3】普通的方法主要是为了完成某个功能,而构造方法主要是初始化数据
4】普通的方法的可以有返回值,但是构造方法从语法上可以有返回值,但是从意义上不能有返回值;
PHP构造方法和析构方法什么是构造方法
构造方法是类的一种特殊的方法,它的主要作用是完成对新对象初始化.
特点:
1. 没有返回值.
2. 在创建一个新的对象时,系统会自动调用该类的构造方法完成对新对角的初始化.
语法:
php5: 修饰符 function __construct()
{
//code
}
php4: 修饰符 function 类名()
{
//code
}
注意:
1. php5里对两者都支持,如果两种构造方法同时存在的话,优先选择第一种.
2. 一个类里面默认有一个不带参数为空的构造方法,一旦自定义了一个构造方法,就会覆盖默认的构造方法.
所以说一个类有且只有一个构造方法.
3.一个类只能有一个构造方法.(不能重载)
4.构造方法默认的访问修饰符为public.
二.this关键字
this代表当前对象.可以理解为:谁调用它,它就代表谁.
注意事项:
this不在类定义的使用,只能在类定义的方法中使用.
三.实例
复制代码 代码如下:
<?php
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 "带参数的构造方法"."<br />";
}
//成员方法
function view()
{
//this的引用.
echo "姓名:".$this ->name.", 年龄:".$this ->age;
}
}
//new一个新的对象
//$p = new Person();
$p2 = new Person("李四",13);
$p2 ->view();
?>
结果如下:
带参数的构造方法
复制代码 代码如下:
<SPAN style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; FONT: 14px 微软雅黑; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: #ff00ff; WORD-SPACING: 0px" color="#ff00ff"> 姓名:李四, 年龄:13</SPAN>
四:析构方法:
析构方法是PHP5引入的新概念.主要作用:释放资源(比如:释放数据库链接,图片资源...).
语法:
function __destruct(){}
特点:
1.析构方法没有返回值.
2.主要作用是释放资源.并不是销毁对象本身.
3.在销毁对象前,系统自动调用该类的析构方法.
4.一个类最多只有一个析构方法.
五:例子:
复制代码 代码如下:
<?php
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."-->销毁<br />";
}
}
$p1= new Person("小一",18);
$p2= new Person("小二",17);
?>
结果:
姓名:小二, 年龄17-->销毁
姓名:小一, 年龄18-->销毁
分析结论:
1.析构方法会自动调用.
2.析构方法调用的顺序是先创建的对象后被销毁.
3.当一个对象没有引用,被垃圾回收机制确认为垃圾时,调用析构方法.
PHP构造函数的特点?在你new class的时候,执行构造函数,可以给类属性赋值,也可以注入依赖。
关于php中构造方法的特点的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php中构造方法的特点 php的构造函数是的详细内容...