PHP基础类实例教程Word格式文档下载.docx

上传人:b****4 文档编号:16567732 上传时间:2022-11-24 格式:DOCX 页数:74 大小:34.81KB
下载 相关 举报
PHP基础类实例教程Word格式文档下载.docx_第1页
第1页 / 共74页
PHP基础类实例教程Word格式文档下载.docx_第2页
第2页 / 共74页
PHP基础类实例教程Word格式文档下载.docx_第3页
第3页 / 共74页
PHP基础类实例教程Word格式文档下载.docx_第4页
第4页 / 共74页
PHP基础类实例教程Word格式文档下载.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

PHP基础类实例教程Word格式文档下载.docx

《PHP基础类实例教程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《PHP基础类实例教程Word格式文档下载.docx(74页珍藏版)》请在冰豆网上搜索。

PHP基础类实例教程Word格式文档下载.docx

>

使用==符号比较两个对象,比较的仅仅是两个对象的内容是否一致。

当使用全等符(===)时,当且仅当两个对象指向相同类(在某一特定的命名空间中)的同一个对象时才相等。

是否在是同一个对象,两边指向的对象是否有同样的内存地址。

//比较两个对象

if($p===$p1){

\$p和\$p1是一个对象"

\$p和\$p1不是一个对象"

结果===比较的是两个变量是否一个对象。

一个等于符号(=)表示赋值,是赋值计算。

如果将对象赋予变量,是指变量将指向这个对象。

$p2=$p1;

//变量$p2指向$p1指向的对象

if($p2===$p1){

\$p2和\$p1指向一个对象"

\$p2和\$p1不指向一个对象"

$p=$p1;

//变量$p指向$p1指向的对象

\$p和\$p1指向一个对象"

PHP类实例教程(六):

构造函数

构造方法又称为构造函数,是对象被创建时自动调用的方法,用来完成类初始化的工作。

构造函数和其它函数一样,可以传递参数,可以设定参数默认值。

构造函数可以调用属性,可以调用方法。

构造函数可以被其它方法显式调用。

在PHP4中使用与类名同名的方法为构造函数。

在PHP5中依然支持了这种方式,但不建议再使用这种方式。

classPerson{

private$name;

publicfunction__construct($name){

$this->

name=$name;

在类被初始化的时候,这里的代码将会运行<

\$nameis$this->

name<

}

newPerson("

tom"

);

jack"

PHP类实例教程(七):

析构函数与PHP的垃圾回收

析构函数:

当某个对象成为垃圾或者当对象被显式销毁时执行。

GC(GarbageCollector)

在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾。

PHP会将其在内存中销毁。

这是PHP的GC(GarbageCollector)垃圾处理机制,防止内存溢出。

当一个PHP线程结束时,当前占用的所有内存空间都会被销毁,当前程序中的所有对象同样被销毁。

__destruct()析构函数,是在垃圾对象被回收时执行。

析构函数也可以被显式调用,但不要这样去做。

析构函数是由系统自动调用的,不要在程序中调用一个对象的析构函数。

析构函数不能带有参数。

程序结束前,所有对象被销毁。

析构函数被调用了。

classPerson{

publicfunction__destruct(){

析构函数在这里执行"

这里一般用来放置,关闭数据库,关闭文件等等收尾工作。

for($i=0;

$i<

5;

$i++){

$i"

//我们在这里看到,在PHP程序结束前,对象被销毁了。

当对象没有指向时,对象被销毁。

$p=null;

//我们在这里看到,析构函数在这里被执行了。

我们将$p设置为空或者第11行赋予$p一个字符串,这样$p之前指向的对象就成为了垃圾对象。

PHP将这个对象垃圾销毁。

unset变量

析构函数在这里执行<

$p1=$p;

//设定新引用变量$p1也指向这个对象

unset($p);

是否看到\$p被销毁,对象也被销毁呢?

unset($p1);

我们看到这里,析构函数被执行了"

unset一个引用变量时,unset销毁的是指向对象的变量,而不是这个对象。

PHP类实例教程(十):

类的重写(override)

如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

当对父类的方法进行重写时,子类中的方法必须和父类中对应的方法具有相同的方法名称,在PHP5中不限制输入参数类型、参数数量和返回值类型。

(这点和JAVA不同)

子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限。

声明方法时,如果不定义访问权限。

默认权限为public。

先设置一个父类,这个父类是“Dog”类,这个类描述了dog的特性。

Dog有2个眼睛,会跑,会叫。

就这样描述先。

我养了一直狗,是只小狗,符合Dog类的特性,但有所不同。

我的小狗有名字,我的小狗太小了,不会大声的叫,只会哼哼。

我们用继承的概念去实现这个设计。

//狗有两只眼睛,会汪汪叫,会跑

classDog

protected$eyeNumber=2;

//

//返回封装的属性方法

publicfunctiongetEyeNumber(){

return$this->

eyeNumber;

//狗会叫

publicfunctionyaff(){

return"

Dogyaff,wang..wang.."

//狗会跑

publicfunctionrun(){

Dogrun..running..."

$dog=newDog();

doghave"

.$dog->

getEyeNumber()."

eyes.<

echo$dog->

yaff()."

run();

//这是我的小狗,叫"

狗狗"

他还小不会汪汪叫,智慧哼哼。

classMyDogextendsDog

private$name="

publicfunctiongetName(){

name;

name."

yaff,heng...heng.."

$myDog=newMyDog();

echo$myDog->

getName()."

have"

.$myDog->

php

//狗有两只眼睛,会汪汪叫,会跑

classDog

{

//

//返回封装的属性方法

publicfunctiongetEyeNumber(){

return$this->

}

//狗会叫

publicfunctionyaff(){

return"

//狗会跑

publicfunctionrun(){

return"

}

classMyDogextendsDog

publicfunctiongetName(){

return$this->

重写方法与访问权限

PHP类实例教程(十一):

类中this关键字

PHP5中为解决变量的命名冲突和不确定性问题,引入关键字“$this”代表其所在当前对象。

$this在构造函数中指该构造函数所创建的新对象。

在类中使用当前对象的属性和方法,必须使用$this->

取值。

方法内的局部变量,不属于对象,不使用$this关键字取值。

局部变量和全局变量与$this关键字,使用当前对象的属性必须使用$this关键字。

局部变量的只在当前对象的方法内有效,所以直接使用。

局部变量和属性可以同名,但用法不一样。

在使用中,要尽量避免这样使用,以免混淆。

classA

private$a=99;

//这里写一个打印参数的方法

publicfunctionprintInt($a){

\$a是传递的参数$a"

\$this->

a是属性$this->

a"

$a=newA();

//这里的$a可不是类中的任何变量

$a->

printInt(88);

classA

//这里写一个打印参数的方法

publicfunctionprintInt($a){

echo"

//这里的$a可不是类中的任何变量

用$this调用对象中的其它方法

classMath

//两个数值比较大小

publicfunctionMax($a,$b){

return$a>

$b?

$a:

$b;

//三个数值比较大小

publicfunctionMax3($a,$b,$c){

$a=$this->

Max($a,$b);

//调用类中的其它方法

Max($a,$c);

$math=newMath();

最大值是"

.$math->

Max3(99,100,88);

classMath

//两个数值比较大小

publicfunctionMax($a,$b){

return$a>

//三个数值比较大小

publicfunctionMax3($a,$b,$c){

$a=$this->

//调用类中的其它方法

使用$this调用构造函数

调用构造函数和析构函数的方法一致。

private$a=0;

publicfunction__construct(){

a=$this->

a+1;

publicfunctiondoSomeThing(){

__construct();

a;

//这里的$a可不是类中的任何一个变量了

现在\$a的值是"

.$a->

doSomeThing();

publicfunction__construct(){

$this->

publicfunctiondoSomeThing(){

//这里的$a可不是类中的任何一个变量了

$this到底指的什么?

$this就是指当前对象,我们甚至可以返回这个对象使用$this。

publicfunctiongetASelf(){

return$this;

publicfunction__toString(){

这是类A的实例"

//创建A的实例

$b=$a->

getASelf();

//调用方法返回当前实例

echo$a;

//打印对象会调用它的__toString方法

publicfunctiongetASelf(){

return$this;

publicfunction__toString(){

//创建A的实例

//调用方法返回当前实例

//打印对象会调用它的__toString方法

通过$this传递对象

在这个例子中,我们写一个根据不同的年龄发不同工资的类。

我们设置处理年龄和工资的业务模型为一个独立的类。

classUser

private$age;

private$sal;

private$payoff;

//声明全局属性

//构造函数,中创建Payoff的对象

payoff=newPayoff();

publicfunctiongetAge(){

age;

publicfunctionsetAge($age){

age=$age;

//获得工资

publicfunctiongetSal(){

sal=$this->

payoff->

figure($this);

sal;

//这是对应工资与年龄关系的类.

classPayoff

publicfunctionfigure($a){

$sal=0;

$age=$a->

getAge();

if($age>

80||$age<

16){

$sal=0;

}elseif($age>

50){

$sal=1000;

}else{

$sal=800;

return$sal;

//实例化User

$user=newUser();

$user->

setAge(55);

echo$user->

getAge()."

age,hissalis"

.$user->

getSal();

setAge(20);

setAge(-20);

setAge(150);

PHP类实例教程(十二):

类中parent:

:

关键字

PHP5中使用parent:

来引用父类的方法。

parent:

可用于调用父类中定义的成员方法。

parent:

的追溯不仅于直接父类。

通过parent:

调用父类方法

!

--声明一个员工类,经理类继承自员工类-->

classemployee

protected$sal=3000;

sal+1200;

sal;

classManagerextendsemployee

//如果想让经理在员工工资的基础上多发1500元

//必须先调用父类的getSal()方法

//这里调用了父类的方法

sal+1500;

$emp=newemployee();

普通员工的工资是"

.$emp->

$manager=newManager();

经理的工资是:

"

.$manager->

classemployee

publicfunctiongetSal(){

classManagerextendsemployee

//如果想让经理在员工工资的基础上多发1500元

//必须先调用父类的getSal()方法

parent:

//这里调用了父类的方法

$manager=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1