构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

可能上面的描述大家还是不能很清楚的了解,我们就举例子向大家讲解下我们先创建一个类,并且初始化这个类。


1

2

3

4

5

6

7

8

9

10

11




​class​​ ​​Preson{​

​public​​ ​​$name​​​​;                     ​​​​//定义变量​

​public​​ ​​$age​​​​;​

​public​​ ​​$sex​​​​;​

​public​​ ​​$height​​​​;​

​}​

​$Preson1​​ ​​= ​​​​new​​ ​​Preson();​

​$Preson1​​​​->​​​​$name​​ ​​= ​​​​"大白"​​​​;        ​​​​//变量赋值​

​$Preson1​​​​->​​​​$age​​ ​​= 20;​

​$Preson1​​​​->​​​​$sex​​ ​​= ​​​​"女"​​​​;​

​$Preson1​​​​->​​​​$height​​ ​​= 180;​


可以看到,上述例子中赋值过程比较繁琐,如果变量很多的话,工作量将会非常大,很麻烦。所以,我们引入了构造方法。所以构造函数的作用就是用来初始化对象的。该方法可以没有参数,也可以有多个参数。定义构造函数也很简单,__construct(),值得注意的是函数construct前面是两个下划线"_".

了解了构造函数之后,我们用构造函数来重写上面的例子:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21




​class​​ ​​Preson{​

​public​​ ​​$name​​​​;                     ​​​​//定义变量​

​public​​ ​​$age​​​​;​

​public​​ ​​$sex​​​​;​

​public​​ ​​$height​​​​;​

​function​​ ​​__construct(​​​​$name​​​​,​​​​$age​​​​,​​​​$sex​​​​,​​​​$height​​​​){​

​$this​​​​->name = ​​​​$name​​​​;         ​​​​//为变量赋值​

​$this​​​​->age = ​​​​$age​​​​;​

​$this​​​​->sex = ​​​​$sex​​​​;​

​$this​​​​->height = ​​​​$height​​​​;​

​}​

​public​​ ​​function​​ ​​PlayBaskteBall(){​

​if​​​​(​​​​$this​​​​->height>175 || ​​​​$this​​​​->age < 22){​

​return​​    ​​$this​​​​->name . ​​​​"可以打篮球"​​​​;​

​}​​​​else​​​​{​

​return​​ ​​$this​​​​->name . ​​​​"不具备打球的条件"​​​​;​

​}​

​}​

​}​

​$Preson1​​ ​​= ​​​​new​​ ​​Preson(​​​​"大白"​​​​,​​​​"20"​​​​,​​​​"女"​​​​,​​​​"180"​​​​);​

​echo​​ ​​$​​​​$Preson1​​​​->PlayBaskteBall();​


构造方法是初始化对象时使用的,如果没有构造方法,那么PHP会自动生成一个。自动生成的构造方法没有任何参数,没有任何操作。

以上就是php面向对象之构造函数作用与方法的详细内容,