PHP类与对象

下面为网页输出结果;

 

 面向对象是设计思想的“升华”——面向过程是解决简单问题的自然的思维过程,面向对象是解决大规模的复杂问题的良好思想

1,定义类;定义类的语法中,只有这3种代码:

1.1定义属性(变量)

1.2定义方法(函数)

1.3定义常量(类常量)

对象的传值

php中,变量传值方式有2个:

值传递:    传递的时候,拷贝的是数据本身。默认都是值传递。

结果:传递完之后,有了2份同样的数据,但两个变量“相互独立”没有关系。

引用传递:    传递的时候,拷贝的是引用关系。需要使用“&”才能实现引用传递。

 

类中成员

一个类的内部可以有3种代码:

属性

方法

类常量

它们统称为“类中成员”

var是“public”一个别名,正式用public更好。

静态属性

对比来说:一般属性,他的值是隶属于该类的具体某个对象(虽然定义在类中),或者说,每个对象的同样的属性的值,有可能不一样。

静态属性就是:只隶属于类本身——也可以看做是所有对象的“共有数据”。

静态属性的使用:

类::$静态属性名;

对比普通属性的使用:

对象->普通属性名;           //普通属性也可以叫做“实例属性”,相应的,对象也叫“实例”

静态方法

如果在一个方法的前面加上static关键字修饰,则就变成了静态方法。

静态方法同样隶属于类,而不是隶属于具体对象。使用方法跟静态属性类似:

类名::静态方法名();

从理念上,可以认为,静态方法是只隶属于类,而为所有对象所“共有”。

 如果通过类名来调用静态方法,则该方法中不可以出现$this关键字。

构造方法

1,该方法名字是固定的,为:__construct();

2,该方法必须是普通方法(不能是静态方法)

3,通常该方法应该是public

4,通常该方法中使用$this这个关键字来对属性进行赋值

5,当new 类名()的时候,其实是在调用该构造方法

6,如果一个类中定义了构造方法,则实例化该类时就会调用该方法,且实例化时的参数需要跟构造方法的参数匹配

1,析构方法通常不太需要去定义。

2,析构方法不能调用。

3,析构方法不能有形参。

4,析构方法中可以用于清理一些在php代码结束后不能清理的数据,如生成的文件。

对象销毁的几个情形:

脚本程序运行结束,自动销毁;明确地unset()一个对象变量,则被销毁;改变对象变量的值,被销毁;

posted on 2018-06-04 20:17  最初的梦想DW  阅读(150)  评论(0编辑  收藏  举报

导航